我使用TI的c6678 EVM开发板想要实现远程更新程序,利用multi_core_EMAC_boot工程实现了以太网boot。但
是当开发板掉点后程序丢失,再上电又得重新boot,有什么办法可以实现远程boot程序,掉电后程序不丢失?
Ryan BL:
感觉你对boot、loader、app镜像三者的分工和关系不是太清楚,把这三个东东搞清楚了,你的启动方案甚至更新方案才可能理顺。
我现在正进行的项目倒是跟你的很像,可以做个简单的方案推荐:
1. 工厂出厂的时候,板子自动从EMC_boot启动,加载EMAC镜像;
2.EMAC镜像初始化DDR等其他必要外设,而后执行如下操作;
2.1 从ftp读取正式的bootloader和默认应用镜像及在线升级程序并固化至预设的启动设备和镜像持久化设备;
2.2 固化MSP430镜像(该镜像在后续上电后会拉住dsp复位及MOOTMODE,在预设的上电复位时机释放DSP复位信号)
3. 自此,DSP启动的时候自动从MSP430控制的启动设备启动(boot)并按照固化的bootloader预设的方案load应用;
4. 固话的应用镜像包含socktc或其他升级接口的监听程序,一旦触发在线升级,DSP向MSP430记录相关信息而后向MSP430发送控制DSP复位的信号;
5. MSP430拉BOOTMODE为固化的启动方式识别的在线升级mode,而后复位DSP;
6.DSP进入在线升级程序;大致就是这样,涉及的流程图核方案细节就不太方便贴出来了,公司也有保密要求@_@
Shine:
如果以太网只是加载代码到DDR3上运行,掉电是会丢失。如果要掉电后不丢失,就需要以太网加载后的代码烧写到非易失性memory如nand flash,但是之后就需要从nand flash启动,以太网加载只是实现代码的更新。