lifei639156 发表于 2018-7-31 10:43
上面这两种是EMIFA ROM direct boot, 或者EMIFA ROM FAST BOOT without AIS,指的是从flash直接运行,那么对应的CMD文件也是要把程序的初始化段分配到NOR flash,示初始化段分配到RAM才能运行的。这种模式下是没有搬运过程的。
而你前面说的转成AIS能运行,说明你的程序的cmd一定是分配到RAM的,所以这个同样的工程在NOR fl ...
谢谢你的回答,你的回答对我很有用。我配置的cmd都在L2RAM中,所以从你的回答我不能把HEX运行成功。 我想按你说的把CMD配置文件改一下,使得生成的HEX,能运行在EMIFA ROM direct boot,或EMIFA ROM FAST BOOT without AIS模式!
请教问题1:下面是我设置的CMD总是报错,不晓得错在哪里?
请教问题2:EMIFA ROM direct boot和EMIFA ROM FAST BOOT without AIS是不是都必须是HEX格式,有没64x+系列的HEX这种格式说的说明呢?想学习一下生成的HEX数据格式!
请教问题3:我生成的AIS大约有40多KB的文件下载到NOR中可以运行。应用程序带TCP协议,启动起来后,拔掉CS2引脚,同样能运行。于是推测DSP内部Bootloader把Nor中应用程序全部读写到了L1P中了,并没有像网上所说DSP内部Bootloader先搬1K数据到内部运行,需用户开发二级bootloadr,再搬运用户引用程序。而是按AIS文件要求全部自动搬运完用户所有应用程序到内部L1P,运行起来后不再需要NOR,是这样的吗?
MEMORY
[
L2RAM: o = 0x10800000 l = 0x00020000
DDR2: o = 0x80000000 l = 0x10000000
FLASH: o = 0x42000000 l = 0x003FFE00
]SECTIONS
[
.text : [] > FLASH run = L2RAM, LOAD_START(0x42000000), RUN_START(0x10800000), SIZE(0x00007900)
.cinit : [] > FLASH run = L2RAM, LOAD_START(0x42007B14), RUN_START(0x10808d08), SIZE(0x0000020c)
.switch : [] > FLASH run = L2RAM, LOAD_START(0x42007B14), RUN_START(0x108091a8), SIZE(0x00000030)
/*.text : [] > FLASH run = 0x10800000, load=0x42000000
.cinit : [] > FLASH run = 0x10808d08, load=0x42007B14
.switch : [] > FLASH run = 0x108091a8, load=0x42007B14*/
.stack > L2RAM
.bss > L2RAM
.cio > L2RAM
.data > L2RAM
.sysmem > L2RAM
.far > L2RAM
.const > L2RAM .ddr2 > DDR2
]