STM32 用cubemx移植IAP功能,实现串口升级

感谢网上的大神,通过你们的文章我终于测试iap升级通过了,具体iap功能我白嫖一段:程序上电先进入 bootloader代码功能,后面通过bootloader跳转到用户的功能代码中;

使用的开发板芯片:STM32F103VET6,串口1升级,PA0升级程序,PA1跳转到APP功能;

生成BIN文件,根据实际路径修改:D:\StudyPack\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o [email protected] #L

STM32 用cubemx移植IAP功能,实现串口升级_第1张图片

1、程序bootloader工程搭建:

STM32 用cubemx移植IAP功能,实现串口升级_第2张图片

STM32 用cubemx移植IAP功能,实现串口升级_第3张图片

STM32 用cubemx移植IAP功能,实现串口升级_第4张图片

STM32 用cubemx移植IAP功能,实现串口升级_第5张图片

STM32 用cubemx移植IAP功能,实现串口升级_第6张图片

STM32 用cubemx移植IAP功能,实现串口升级_第7张图片

STM32 用cubemx移植IAP功能,实现串口升级_第8张图片

STM32 用cubemx移植IAP功能,实现串口升级_第9张图片

STM32 用cubemx移植IAP功能,实现串口升级_第10张图片

2、搭建app工程:

STM32 用cubemx移植IAP功能,实现串口升级_第11张图片

STM32 用cubemx移植IAP功能,实现串口升级_第12张图片

STM32 用cubemx移植IAP功能,实现串口升级_第13张图片

STM32 用cubemx移植IAP功能,实现串口升级_第14张图片

3、功能验证:

STM32 用cubemx移植IAP功能,实现串口升级_第15张图片

注意:

1、查看移植是否成功可以debug搭建好的bootloader工程,查看跳转函数是否可以打断点;

2、如果不知道bin文件如何下载,可以先下载bootloader文件,然后debug配置好的app文件,通过跳转按键,查看是否跳转到app程序中;

3、生成的bin文件一定要以16进制发送,否则升级会失败,注意bin本身就是16进制代码,例如:bin是 12,发送时应该为 0x12;

例程下载连接git:https://gitee.com/My_Bulb/wl-open-projects/tree/master/STM32%E4%BE%8B%E7%A8%8B/STM32F103VET6-IAP%E5%8D%87%E7%BA%A7

例程下载连接 链接:https://pan.baidu.com/s/1rAKQZbCdrwY1nuB8tLSz4A   提取码:bp55 

调试软件下载:链接:https://pan.baidu.com/s/1MFk3eEeJ-mR61NJopCMjyA   提取码:ljpg 
 

参考连接:https://blog.csdn.net/wzy15965343032/article/details/88545225

————————————————————————————————————————

一、IAP升级多段数据升级问题:

1、每帧长度512字节,最后一帧如果小于512字节,那么就按照字节长度写入 ;

2、数据等于512字节格式:数据(512byte)+地址(2byte)+ CRC16校验(2byte);

3、数据小于512字节格式:数据(XXXbyte)+地址(2byte)+ CRC16校验(2byte);

你可能感兴趣的:(STM32学习,STM32,IAP)