一、制作应用程序的.bin文件
1.打开一个应用程序的工程文件,再打开KEILL设置界面,将IROM1的起始地址改为0x8010000,size改为0x70000。该意思表示制作的应用程序.bin文件从STM32的flash的0x8010000位置开始存放,同时还表示IAP引导程序最大只能占用0x10000大小。设置入下图
2.需要将应用程序.bin的中断向量表偏移0x10000位置大小
在应用程序主函数下面添加一句:SCB->VTOR = FLASH_BASE | 0x10000;
3.利用KEILL生成应用程序的.bin文件
在keill中利用keill自带的fromelf.exe插件来生成。具体需要在keill的设置选项的User中的After Build中添加入下语句:
C:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o C:\Users\Administrator\Desktop\GPIO-流水灯-自定义宏操作/Output/@L.bin C:\Users\Administrator\Desktop\GPIO-流水灯-自定义宏操作/Output/@L.axf 红色表示fromelf.exe插件的所在路径,蓝色表示
.hex和.axf等文件文件路径。如下图:设置完成编译即可生成。
二、IAP程序制作及使用
IAP程序需要利用串口将从串口助手传来的.bin文件接收下来,然后将该数据写入到STM32的以0x8010000为起始地址的FLASH中。然后再跳转到0x8010000地址去运行应用程序。