Flash boot loader的运营机制,是每次从flash 中搬运一部分程序放入内部ram,运行完再搬入一部分。
还是一次性全部搬入?
如果是一部分搬入,对于在线升级下载程序,比如串口升级flash内部程序。
是否会存在覆盖之前原程序的问题。
Shine:
请问用的是哪款器件? 具体要看ROM bootloader文档里的说明。
user3541080:
回复 Shine:
使用的是DSP6713
Shine:
回复 user3541080:
emif boot mode最多只能搬移1k代码,如果您对代码超过1K,就需要写二次bootloader来搬移代码。
串口升级代码不就是要覆盖掉原来的程序吗?
user3541080:
回复 Shine:
我们的程序,大小为400K.第一次我们通过仿真器下载进入flash.当我们做成产品,就不会留出仿真器的接口了。这时我们更新程序,需要用到串口在线升级。1.我们在线升级程序覆盖了之前flash之前的程序,会不会造成问题。因为我们担心烧写flash这段程序会被新来的程序覆盖。
user3541080:
回复 Shine:
1K以内的是bootloader 程序,也就是搬移程序。我们一上电就会判断串口发过来的一个标志位,确定是否将串口发过来的数据烧写到flash。也就是在线升级程序。这一部分应该属于应用程序,不在1K以内的。
Shine:
回复 user3541080:
可以专门在flash里固定一块地址给flash烧写程序。
user3541080:
回复 Shine:
这个应该怎么固定,可以举例说明吗?
user3541080:
回复 Shine:
对于DSP6713,这个flash应该怎么固定,可以举例说明吗?
Shine:
回复 user3541080:
这个由您自己安排烧写代码放到flash的哪块地址,flash烧写程序和应用代码不覆盖就好了。
user3541080:
回复 Shine:
能否说明下,我这种方式下的数据流转。
是我理解的,从flash中搬一部分程序到内部ram,运行完之后再搬一部分运行?