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.

如何使用U盘升级C6748的运行程序,求方案



     需求功能:插入U盘后,设备识别到U盘,设备读取指定程序文件,并将程序文件写到存储器指定位置。拔掉U盘,重新上电,设备正常运行。

    目前对我来说,U盘读写文件是可以实现的,写NAND也是可以实现的。那需求功能该如何实现?

  • 首先,确定你boot的方式,如用NAND方式自启动。

    然后,制作NAND启动程序固件,用dsp工程将固件烧写入NAND。

    如果可以从NAND顺利启动,则继续。

    再次,把固件放入U盘,按照约定位置,从U盘读取固件,烧写入NAND。

    如果上面的步骤也可以顺利自启动工作,

    最后在你的DSP运行的程序中,添加上面更新固件的代码,按照一定方式管理即可。

  • 其实我想实现的功能是IAP

    下面的文字是网上找到的

    //*************************************************************************************************************

    .--实现方法

      通常在用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,这两部分项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一个项目代码开始运行,它作如下操作:

      1)检查是否需要对第二部分代码进行更新

      2)如果不需要更新则转到4)

      3)执行更新操作

      4)跳转到第二部分代码执行

      第一部分代码必须通过其它手段,如JTAG或ISP烧入;第二部分代码可以使用第一部分代码IAP功能烧入,也可以和第一部分代码一道烧入,以后需要程序更新是再通过第一部分IAP代码更新。

      在第二部分代码开始执行时,首先需要把CPU的中断向量表映像到自己的向量表,然后再执行其他的操作。

    //**********************************************************************************************************

    现在主要问题是

    1)如何将第二段代码烧到NAND中,写入地址该如何确定?

    1)第二段代码如何从NAND加载到RAM中,加载始启地址该如何确定?

    2)怎样从第一段代码跳到第二段代码执行

    有没有相关资料可以参考一下?

    谢谢。