Stm32里用IAP方式烧程序正常,但是发现掉电再上电之后,程序好像就不进主程序了

Stm32里用IAP方式烧程序正常,但是发现掉电再上电之后,程序好像就不进主程序了,第1张

使用仿真器烧写app并且仿真是直接运行的app,没有经过IAP跳转。掉电后重新上电运行app则要通过IAP进行跳转。

说白了,那你的IAP存在bug,多半是逻辑上的,自己在IAP里面多看看吧,找找原因。

typedef void (iapfun)(void);

定义函数指针

iapfun jump2app;

定义函数指针对象

jump2app=(iapfun)(vu32)(appxaddr+4);

为函数指针对象赋值

jump2app();

调用函数

以下是一个例子:

// 定义一个函数

void fun() { printf("fun\n");}

// 定义函数指针,

typedef void (lpfn)();

// 注意二者要匹配,否则会报错

lpfn p = fun;

// 调用函数p()效果同fun()

p();

函数指针的一个作用是可以将函数作为参数传递。

回忆一下c语言中的sort函数,用户可以自定义排序准则函数,然后将其提交给sort函数调用。

IAP升级要程序要十分严谨的,你把升级文件做个校验CRC或者别的校验,把串口接收到的数据直接写入到单片机内部FLASH,把APP所有数据写入完成,在从你写入的地址到结束的地址,

把里面数据进行校验,如果正确直接跳转IAP

以上就是关于Stm32里用IAP方式烧程序正常,但是发现掉电再上电之后,程序好像就不进主程序了全部的内容,包括:Stm32里用IAP方式烧程序正常,但是发现掉电再上电之后,程序好像就不进主程序了、c语言用法 typedef、用stm32f103RE单片机做IAP串口远程升级,APP大于ram,这个怎么办没有接外部flash。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9767984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存