ST有参考程序,你可看一下关键代码,至于是通过GPRS、串口、RS485、USB等各种方式获取程序数据都是可以的
我的做法是在外面有个Flash存储器,下载的程序先放到Flash中,下载完成后进行升级
具体做法如下:
1.boot程序放在复位默认开始的地址,
2.应用主程序放在Boot程序后面,且完整的存储区开始的地方
3.每次复位,运行boot程序,在boot程序中检查是否需要更新程序,如果不需要,就跳转到应用车险开始的地址,执行正常程序。如果需要更新,(1)需要检查程序数据的完整性,(2)程序完整,则开始删除应用程序程序,(3)删除完成后,执行写入,将外部Flash存储的程序,写入CPU内对应的Flash内,(4)清除更新程序标志,(5)重启CPU
4.在应用程序中,除了执行正常的程序外,还要接受程序更新操作,即接收新的程序数据,并写入外部Flash中,写完后,记录更新程序标志,然后重启;
大概的流程就这些,有一些细节需要注意,这些细节不影响功能,但会增加程序的可靠性
(1)如何保证收到的程序文件是本身的
(2)如何保证程序的完整性