stm32_IAP

来源:互联网 发布:虚拟现实软件 编辑:程序博客网 时间:2024/06/05 17:26

IAP的目的在于产品后期可以通过预留的通信寇对产品程序更新,如IO,串口等。            bootloader + IAP

当烧入IAP后,要执行以下操作:检测第二部分代码是否需要更新;如果不更新则执行第二部分代码,如果更新,就先要更新再执行。

一般芯片必须要通过GTAG|ISP烧入bootloader,再又bootloader执行烧入的IAP程序。

其实我的理解就是当烧写IAP程序时就相当于给bootloader的一个中段处理函数,先执行IAP,再返回继续执行。

但是IAP程序必须满足两个要去:1 新程序必须在IAP程序之后的某个偏移量x的地址开始   2必须将新程序的中段向量表相应的移动,移动个偏移量是x。


APP程序的生成步骤:

1、设置APP程序的起始地址和空间大小

App程序的其实地址可以在魔术棒中手动设置    需要注意的是设置的地址必须留给bootloader足够的空间,不然两者的地址会有冲突


2、设置中段向量表偏移量

中段向量表的偏移地址设置:SCB->VTOR寄存器

3、设置编译运行,生成bin文件

如何将hex文件生成bin文件         我的路径是:C:\Program Files 2\MDK\ARM\ARMCC\bin



hex文件和bin文件的区别:


bin文件只是纯粹的二进制文件,没有格式可言;而hex文件是包含数据长度,地址,数类型,数据,校验等信息

也就是说为什么烧写bin的时候要指明地址的原因了,而hex是不需要的。

1 0
原创粉丝点击