我的想法是将应用程序和升级程序编成一个项目,也就是产生一个.out文件,好处是批量生产方便。运行步骤是:
1.程序上电后首先把所有的代码复制到RAM中运行;
2.执行正常的应用程序;
3.检测到串口或CAN的升级命令后,执行程序中的升级程序;
4.接收新的程序代码(HEX格式),接收的代码保存到RAM其它区内,这里假设RAM空间足够;
5.校验接收的程序是否完整,不正确则重新开始;
6.擦除所有FLASH;
7.将程序从RAM移到FLASH中;
8,复位,重启。
请大师门看看我的方案是否可行?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我的想法是将应用程序和升级程序编成一个项目,也就是产生一个.out文件,好处是批量生产方便。运行步骤是:
1.程序上电后首先把所有的代码复制到RAM中运行;
2.执行正常的应用程序;
3.检测到串口或CAN的升级命令后,执行程序中的升级程序;
4.接收新的程序代码(HEX格式),接收的代码保存到RAM其它区内,这里假设RAM空间足够;
5.校验接收的程序是否完整,不正确则重新开始;
6.擦除所有FLASH;
7.将程序从RAM移到FLASH中;
8,复位,重启。
请大师门看看我的方案是否可行?
谢谢你的回复,能说详细点吗?我想的是升级的时候就写一个项目的HEX文件(包含升级代码的应用程序),按照HEX文件的地址把代码写到相应的flash中就可以了。先不考虑RAM空间,还有哪些细节要考虑的呢?