在线升级是一个boot,一个APP,boot对APP升级,我能不能不要这里的boot,而是两个APP,分别为APP1区和APP2区,APP1和APP2是相互升级的,每个APP包含了升级程序和主程序。一开始下载APP1,串口接收到特殊帧时开始升级写进app2区,写完之后跳转至app2,app2也是接收到特殊命令帧开始升级,对app1区写,写完之后跳转至app1运行.....,当然重新上电运行哪个app由标志确定,这样可行吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
理论上可行,如果你的程序链接时是位置无关的话。
运行时自动获取当前FLASH地址,这样性能略低,但功能上没问题,需要编译器配合。
或支持MMU映射地址。
简单点就是,STM32上面不太可行,或不建议使用。
STM32上面常用的是 boot+app+swap
新APP先下载到SWAP,校验通过后再由boot复制到app区。
然后跳转过去运行。
swap区可以使用片内FLASH,也可以使用SPI FLASH等。
一周热门 更多>