概述
OTA升级
1:实现在线升级整体程序(基于stm32F4)
2:本次为编写关键点记录
bootload 工程事项
1: 前期准备事项
1>修改ROM大小,该大小是项目的使用的ROM空间也是跳转app的首地址stm32f407使用(0x8000)
2>编写汇编设置并跳转MSP
__asm void SET_MSP(uint32_t addr)
{
MSR MSP,r0
BX r14
}
3>定义函数指针
typedef void (*iapfun)(void);
iapfun jumpapp;
4>编写跳转函数
void iap_load_app(uint32_t app_addr)
{
//检查栈顶地址是否合法
if(((*(uint32_t*)app_addr)&0x2FFE0000)==0x20000000)
{
jump2app = (iapfun)*(uint32_t*)(app_addr + 4);
SET_MSP(*(uint32_t*)app_addr);
jump2app();
}else
printf("栈顶地址错误n");
}
2: main中判断是否有更新,这里只有跳转处理
if(flag == "y"){
if(((*(uint32_t*)(APP1_ADDR+4))&0xFF000000)==0x08000000)
iap_
最后
以上就是美丽朋友为你收集整理的STM32 OTA 升级的全部内容,希望文章能够帮你解决STM32 OTA 升级所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复