打印
[STM32F4]

在ucos中进行IAP操作,出现死机

[复制链接]
761|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
koala889|  楼主 | 2022-4-2 18:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    由于正常运行时的程序不可能是单单bootload程序,而是运行在ucos 下的包含bootload的完整的程序,现将1M容量的FLASH分成3个区域包含bootload的程序储存在A区域0x08000000-0x08040000,运行IAP程序的区域B区域0x08040000-0x080A0000,暂存IAP程序的区域B区域0x080A0000-0x08100000,当需要进行IAP升级的时候,运行有bootload的程序就通过串口或网口接收升级的.bin文件暂存在flash的C区域,接受完毕后校验程序没有问题后,再将其复制到运行区B,负载完成后自动跳转进B区域运行。
    现在在UCOS中运行IAP后就死机,怀疑是否因为IAP只是UCOS中的一个任务,运行时被其他任务中断,不能完成跳转,是否需要关闭其他任务,怎么关闭?
可以肯定接收程序正确,复制程序正确,将bootload程序换成不含UCOS的就可以正常跳转运行IAP,只要换回UCOS就死机。

使用特权

评论回复
沙发
d1ng2x| | 2022-4-27 16:44 | 只看该作者
BootLoader不需要用ucos吧,可以不用ucos的

使用特权

评论回复
板凳
lix1yr| | 2022-4-27 17:10 | 只看该作者
可以这样流程,在APP中检测是否有升级标记,然后跳转到IAP上,再执行升级程序

使用特权

评论回复
地板
tpgf| | 2022-5-2 09:34 | 只看该作者
有必要这样操作吗

使用特权

评论回复
5
keaibukelian| | 2022-5-2 09:38 | 只看该作者
每次都会死机吗

使用特权

评论回复
6
labasi| | 2022-5-2 09:57 | 只看该作者
每次都需要运行吗

使用特权

评论回复
7
paotangsan| | 2022-5-2 10:05 | 只看该作者
可以放在其他地方进行吗

使用特权

评论回复
8
renzheshengui| | 2022-5-2 10:13 | 只看该作者
单单做标记还不够安全

使用特权

评论回复
9
wakayi| | 2022-5-2 10:21 | 只看该作者
关掉其他任务啊

使用特权

评论回复
10
carpsnow| | 2022-5-3 10:12 | 只看该作者
升级与否,可以在boot中判断,每次用boot引导
而不要在正常运行的程序中升级

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

473

帖子

2

粉丝