先大概记录大概步骤吧,免得忘了。

IAP程序

程序起始地址0x8000

1. 将0x8000-0x8080中断向量表备份到 0xFF70处

2. 将中断向量表拷贝到内存指定区域,注意内存的前16字节是虚拟寄存器,不能用。

3. 将IAP的中断修改为指向内存区域中的中断向量表。(需要中断向量表格式就会改了,前四字节不要动)

以上中断向量表完成,IAP程序可以正常运行。

APP程序

程序起始地址自定,我的是0xA000——通过修改IAR配置文件完成。

1. 将0xA000 开始的128字节的中断向量表拷贝到内存指定区域。

2. 程序可以正常运行。

加上跳转代码,以上IAP和APP可以正常运行。

程序烧写

 现在生成一个IAR.bin 和app.bin 一般都是用hex文件。

1. 合并2个bin文件,注意app的偏移,比如我的app地址0xA000,偏移是0xA000 - 0x8000 = 0x2000

2. 将合并的bin文件转换为hex文件。偏移是0x8000

下面给一个合并bin文件和转换成hex文件的链接,网上挺多的。找也好找。