stm32_IAP

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是不需要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值