搞了台别人家的设备。测试了下在线升级功能:
串口分了300多包把要升级的程序数据传输到设备里面,然后点击“升级”,设备一眨眼(重启)更新程序了~~~
芯片STM32F030,flash为64K
要升级的APP程序量大概54K
因为flash大小的限制,肯定是不能同时存储2份APP程序的,
那么问题来了:
到底是怎样实现程序的所有功能都能正常运行(显示、保护动作、串口通信等等),一边串口还在接收要写入Flash的程序数据的呢??
接收到的50多K的数据,及时用缓存,也不可能有这么大的RAM用来缓存啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
放在RAM中运行,在我接收数据的这段过程中,我程序的所有功能都还能正常运行吗?50多k的程序量,RAM有这么大空间吗?
那你首先要保证你的flash空间能放下至少2个APP。。。
正在了解,但是这设备的表象不像BootLoader啊,在BootLoader中不止接收数据、写flash操作、还要保留设备的其它所有功能,那代码量就大了啊,flash根本不够用啊
外部flash了解下?
我现在的思路就是BootLoader,硬件已成型,没有外扩flash,但是我的BootLoader无法实现像这货这样,一边接收数据还一边正常跑其它所有功能
一周热门 更多>