http://www.bravegnu.org/gnu-eprog/data-in-ram.html
SECTIONS { . = 0x00000000; .text : { crt0.o (.text); leds.o (.text); } etext = .; . = 0XA0000000; ram_sdata = .; .data ALIGN(4) : AT(etext){ *(.data) } .rodata ALIGN(4) : {*(.rodata)} ram_edata = .; data_size = ram_edata - ram_sdata;
.bss ALIGN(4) : { *(.bss) *(COMMON) } }
AT 是指明在flash上面的地址。 下面就是代码的从falsh上面拷贝代码到sdram。
ldr r0, =flash_sdata ldr r1, =ram_sdata ldr r2, =data_size
copy: ldrb r4, [r0], #1 strb r4, [r1], #1 subs r2, r2, #1 bne copy
转载请注明原文地址: https://ju.6miu.com/read-34283.html