需求功能:插入U盘后,设备识别到U盘,设备读取指定程序文件,并将程序文件写到存储器指定位置。拔掉U盘,重新上电,设备正常运行。
目前对我来说,U盘读写文件是可以实现的,写NAND也是可以实现的。那需求功能该如何实现?
noaming:
首先,确定你boot的方式,如用NAND方式自启动。
然后,制作NAND启动程序固件,用dsp工程将固件烧写入NAND。
如果可以从NAND顺利启动,则继续。
再次,把固件放入U盘,按照约定位置,从U盘读取固件,烧写入NAND。
如果上面的步骤也可以顺利自启动工作,
最后在你的DSP运行的程序中,添加上面更新固件的代码,按照一定方式管理即可。
boyang liang:
回复 noaming:
其实我想实现的功能是IAP
下面的文字是网上找到的
//*************************************************************************************************************
.IAP是什么–实现方法
通常在用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,这两部分项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码开始运行,它作如下操作:
1)检查是否需要对第二部分代码进行更新
2)如果不需要更新则转到4)
3)执行更新操作
4)跳转到第二部分代码执行
第一部分代码必须通过其它手段,如JTAG或ISP烧入;第二部分代码可以使用第一部分代码IAP功能烧入,也可以和第一部分代码一道烧入,以后需要程序更新是再通过第一部分IAP代码更新。
在第二部分代码开始执行时,首先需要把CPU的中断向量表映像到自己的向量表,然后再执行其他的操作。
//**********************************************************************************************************
现在主要问题是
1)如何将第二段代码烧到NAND中,写入地址该如何确定?
1)第二段代码如何从NAND加载到RAM中,加载始启地址该如何确定?
2)怎样从第一段代码跳到第二段代码执行
有没有相关资料可以参考一下?
谢谢。