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读出来,
搬到内存上去(搬到内存何处?),直接跳到入口地址.就行了?