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.

omap-l138 bootloader 实现分散加载问题?

Other Parts Discussed in Thread: OMAP-L138

Omap-l138 启动,RBL—>my_bootloader- arm_rtos / dspbios.

My_bootloader.bin  是AIS格式的文件,RBL负责把它加载到相应的内存去。但是,当my_bootloader把arm_rtos加载到内存的时候,如何实现以下链接文件时,正确加载arm_rtos?(arm_rtos.bin 或arm_rtos.hex)

我的链接文件link.cmd

MEMORY

{

SHAREDRAM: o = 0x80000000 l = 0x00020000

ARMRAM: o = 0xFFFF0000 l = 0x00002000

DDR_MEM: o = 0xc0000000 l = 0x2000000

}

SECTIONS

{

.boot > DDR_MEM

.cinit > SHAREDRAM /* Initialization Tables */

.pinit > SHAREDRAM /* C++ Constructor Tables */

.const > SHAREDRAM /* Constant Data */

.switch > DDR_MEM /* Jump Tables */

.text > DDR_MEM /* Executable Code */

.bss{ *(.bss) } > SHAREDRAM

.far > SHAREDRAM /* Far Global & Static Variables */

.stack > SHAREDRAM /* Software System Stack */

.svcstack > SHAREDRAM /* Supervisor Mode Stack */

.irqstack > SHAREDRAM /* IRQ Interrupt Stack */

.fiqstack > SHAREDRAM /* FIQ Interrupt Stack */

.sysmem > SHAREDRAM /* Dynamic Memory Allocation Area */

.cio > SHAREDRAM /* C I/O Buffer */

.intvecs > ARMRAM /* Interrupt Vectors */

.data > SHAREDRAM

}

要是我自已写bootloader的时候,是不是要把 .boot .switch .text section 搬到DDR_MEM相应的内存.

.cinit .pinit .const .bss .far .stack ...搬到SHAREDRAM

.intvecs 搬到ARMRAM的内存去呢?

如何实现以上各section的copy 到DDR 和 shareRAM中去?

我搞不太明白..没做过....

是不是要把相应的SECTION搬到相应的内存去?

假如:.boot section 是启动的,.map可知,程序入口地址是0xc8001000,难道我直接从NOR FLASH读出来,

搬到内存上去(搬到内存何处?),直接跳到入口地址.就行了?