IAP & ICP
来源:互联网 发布:恶灵附身2优化这么样 编辑:程序博客网 时间:2024/06/14 16:37
STM32 的中断向量表的设置主要是用在IAP 程序中,如果是普通的 flash 中只有一个程序,一般不需要设置这个。顾名思义,这个表存放的是中断服务函数的入口地址,当发生中断时,CPU来这个表中查询,以此获取中断函数的入口地址。
STM32编程方式:
①在线编程(ICP,In-Circuit Programming):
通过JTAG/SWD协议或者系统加载程序(Bootloader)下载用户应用程序到微控制器中。
② 在程序中编程(IAP,In Application Programming):
通过任何一种通信接口(如IO端口,USB,CAN,UART,I2C,SPI等)下载程序或者应用数据到存储器中。也就是说,STM32允许用户在应用程序中重新烧写闪存存储器中的内容。然而,IAP需要至少有一部分程序已经使用ICP方式烧到闪存存储器中(Bootloader)。
在不需要操作硬件平台的情况下实现升级(远程)。
如上图:STM32复位后,还是从0X08000004地址取出复位中断向量的地址,并跳转到复位中断服务程序,在运行完复位中断服务程序之后跳转到IAP的main函数。在执行完IAP以后(即将新的APP代码写入STM32的FLASH,灰底部分。新程序的复位中断向量起始地址为0X08000004+N+M),跳转至新写入程序的复位向量表,取出新程序的复位中断向量的地址,并跳转执行新程序的复位中断服务程序,随后跳转至新程序的main函数,如图标号②和③所示。在main函数执行过程中,如果CPU得到一个中断请求,PC指针仍强制跳转到地址 0X08000004中断向量表处,而不是新程序的 中断向量表程序再根据我们设置的中断向量表偏移量,跳 转到对应中断源新的中断服务程序中。在执行完中断服务程序后,程序返回main函数继续运行。
0 0
- IAP & ICP
- ISP IAP ICP
- ICP、ISP和IAP
- ISP、IAP、ICP介绍
- ISP,IAP,ICP之间的区别
- ISP,IAP,ICP之间的区别
- stm8-----falsh ICP and IAP学习笔记
- ISP,IAP,ICP之间的区别
- 单片机ISP、IAP和ICP几种烧录方式的区别
- ISP、ICP、IAP三种编程方式区别总结
- 单片机ISP、IAP和ICP几种烧录方式的区别
- ISP、IAP、ICP烧写方式的区别
- ISP、IAP、ICP烧写方式的区别
- ISP、IAP、ICP烧写方式的区别
- 单片机ISP、IAP和ICP几种烧录方式的区别
- ISP、IAP、ICP烧写方式的区别
- 单片机ISP、IAP和ICP几种烧录方式的区别
- 单片机ISP、IAP和ICP几种烧录方式的区别
- pecl安装mongodb
- 在Linux环境下搭建基于Nginx的rtmp服务器
- Unity3D的UGUI——Canvas
- gdb调试多线程出现的死锁
- 百度地图删除圆形或线形的覆盖物
- IAP & ICP
- vim 设置自动生成文件头
- Android关于Dex拆分(MultiDex)技术详解
- openwrt移植到tiny210编译出现的问题
- java中选择排序和冒泡排序
- 欢迎使用CSDN-markdown编辑器
- 开源一个C# Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
- Android和java开发常见错误和异常整合
- android studio中gradle更新办法