我的想法是将应用程序和升级程序编成一个项目,也就是产生一个.out文件,好处是批量生产方便。运行步骤是:
1.程序上电后首先把所有的代码复制到RAM中运行;
2.执行正常的应用程序;
3.检测到串口或CAN的升级命令后,执行程序中的升级程序;
4.接收新的程序代码(HEX格式),接收的代码保存到RAM其它区内,这里假设RAM空间足够;
5.校验接收的程序是否完整,不正确则重新开始;
6.擦除所有FLASH;
7.将程序从RAM移到FLASH中;
8,复位,重启。
请大师门看看我的方案是否可行?
mangui zhang:可行。需要研究清楚代码引导加载等详细过程。其次RAM空间足够 肯定要外扩
我的想法是将应用程序和升级程序编成一个项目,也就是产生一个.out文件,好处是批量生产方便。运行步骤是:
1.程序上电后首先把所有的代码复制到RAM中运行;
2.执行正常的应用程序;
3.检测到串口或CAN的升级命令后,执行程序中的升级程序;
4.接收新的程序代码(HEX格式),接收的代码保存到RAM其它区内,这里假设RAM空间足够;
5.校验接收的程序是否完整,不正确则重新开始;
6.擦除所有FLASH;
7.将程序从RAM移到FLASH中;
8,复位,重启。
请大师门看看我的方案是否可行?
Seven Han:您可以参考F28M35双核串口升级思路:
e2echina.ti.com/…/121859
我的想法是将应用程序和升级程序编成一个项目,也就是产生一个.out文件,好处是批量生产方便。运行步骤是:
1.程序上电后首先把所有的代码复制到RAM中运行;
2.执行正常的应用程序;
3.检测到串口或CAN的升级命令后,执行程序中的升级程序;
4.接收新的程序代码(HEX格式),接收的代码保存到RAM其它区内,这里假设RAM空间足够;
5.校验接收的程序是否完整,不正确则重新开始;
6.擦除所有FLASH;
7.将程序从RAM移到FLASH中;
8,复位,重启。
请大师门看看我的方案是否可行?
user524568:
回复 mangui zhang:
谢谢你的回复,能说详细点吗?我想的是升级的时候就写一个项目的HEX文件(包含升级代码的应用程序),按照HEX文件的地址把代码写到相应的flash中就可以了。先不考虑RAM空间,还有哪些细节要考虑的呢?