TI中文支持网
TI专业的中文技术问题搜集分享网站

有关28377D程序下载至FLASH中在GsRAM中RUN问题的咨询

存在两个问题:

第一:两个CPU的程序均采用下载到FLASH,在全局共享GsRAM中RUN的形式来执行,是否可行?是否存在什么隐患?

例如如下配置:

.cinit : > FLASHB PAGE = 0, ALIGN(4)
.pinit : > FLASHB, PAGE = 0, ALIGN(4)
.text : >> FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0, ALIGN(4)
codestart : > BEGIN PAGE = 0, ALIGN(4)
ramfuncs : LOAD = FLASHF,
RUN = RAMGS6 | RAMGS7 | RAMGS8 | RAMGS9,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
RUN_SIZE(_RamfuncsRunSize),
RUN_END(_RamfuncsRunEnd),
PAGE = 0, ALIGN(4)

试了一下,利用仿真器将程序分别烧写后运行正确,断电后在上电运行,似乎CPU2并没有运行。提示no symbols…

第二:在CPU1中打开IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH)这一段程序,运行CPU1和CPU2,CPU1程序一直停留在这里运行,是否CPU2中要给予相应的配置或者程序回馈给CPU1才能使CPU1正常运行???

rookiecalf:

初始化的时候搬移了代码没有?

存在两个问题:

第一:两个CPU的程序均采用下载到FLASH,在全局共享GsRAM中RUN的形式来执行,是否可行?是否存在什么隐患?

例如如下配置:

.cinit : > FLASHB PAGE = 0, ALIGN(4)
.pinit : > FLASHB, PAGE = 0, ALIGN(4)
.text : >> FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0, ALIGN(4)
codestart : > BEGIN PAGE = 0, ALIGN(4)
ramfuncs : LOAD = FLASHF,
RUN = RAMGS6 | RAMGS7 | RAMGS8 | RAMGS9,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
RUN_SIZE(_RamfuncsRunSize),
RUN_END(_RamfuncsRunEnd),
PAGE = 0, ALIGN(4)

试了一下,利用仿真器将程序分别烧写后运行正确,断电后在上电运行,似乎CPU2并没有运行。提示no symbols…

第二:在CPU1中打开IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH)这一段程序,运行CPU1和CPU2,CPU1程序一直停留在这里运行,是否CPU2中要给予相应的配置或者程序回馈给CPU1才能使CPU1正常运行???

shipeng long:

回复 rookiecalf:

有搬的

memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);

存在两个问题:

第一:两个CPU的程序均采用下载到FLASH,在全局共享GsRAM中RUN的形式来执行,是否可行?是否存在什么隐患?

例如如下配置:

.cinit : > FLASHB PAGE = 0, ALIGN(4)
.pinit : > FLASHB, PAGE = 0, ALIGN(4)
.text : >> FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0, ALIGN(4)
codestart : > BEGIN PAGE = 0, ALIGN(4)
ramfuncs : LOAD = FLASHF,
RUN = RAMGS6 | RAMGS7 | RAMGS8 | RAMGS9,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
RUN_SIZE(_RamfuncsRunSize),
RUN_END(_RamfuncsRunEnd),
PAGE = 0, ALIGN(4)

试了一下,利用仿真器将程序分别烧写后运行正确,断电后在上电运行,似乎CPU2并没有运行。提示no symbols…

第二:在CPU1中打开IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH)这一段程序,运行CPU1和CPU2,CPU1程序一直停留在这里运行,是否CPU2中要给予相应的配置或者程序回馈给CPU1才能使CPU1正常运行???

shipeng long:

回复 shipeng long:

第二个问题应该是与它BootRom的模式有关吧。。。可能

存在两个问题:

第一:两个CPU的程序均采用下载到FLASH,在全局共享GsRAM中RUN的形式来执行,是否可行?是否存在什么隐患?

例如如下配置:

.cinit : > FLASHB PAGE = 0, ALIGN(4)
.pinit : > FLASHB, PAGE = 0, ALIGN(4)
.text : >> FLASHB | FLASHC | FLASHD | FLASHE PAGE = 0, ALIGN(4)
codestart : > BEGIN PAGE = 0, ALIGN(4)
ramfuncs : LOAD = FLASHF,
RUN = RAMGS6 | RAMGS7 | RAMGS8 | RAMGS9,
LOAD_START(_RamfuncsLoadStart),
LOAD_SIZE(_RamfuncsLoadSize),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
RUN_SIZE(_RamfuncsRunSize),
RUN_END(_RamfuncsRunEnd),
PAGE = 0, ALIGN(4)

试了一下,利用仿真器将程序分别烧写后运行正确,断电后在上电运行,似乎CPU2并没有运行。提示no symbols…

第二:在CPU1中打开IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH)这一段程序,运行CPU1和CPU2,CPU1程序一直停留在这里运行,是否CPU2中要给予相应的配置或者程序回馈给CPU1才能使CPU1正常运行???

rookiecalf:

回复 shipeng long:

shipeng long

第二个问题应该是与它BootRom的模式有关吧。。。可能

赞(0)
未经允许不得转载:TI中文支持网 » 有关28377D程序下载至FLASH中在GsRAM中RUN问题的咨询
分享到: 更多 (0)