先大概记录大概步骤吧,免得忘了。
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文件的链接,网上挺多的。找也好找。