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

tms570ls3137从flash拷贝代码到ram运行

各位大神,

我用GCC编译器生成了bootloader,请问怎么把代码从flash拷贝到ram运行?这是我的链接脚本文件:

/*----------------------------------------------------------------------------*/
/* sys_link.ld*/
/**/
/* (c) Texas Instruments 2009-2013, All rights reserved.*/
/**/
/*----------------------------------------------------------------------------*/
/* Entry Point */
ENTRY(_c_int00)

/* Highest address of the stack */
_estack = 0x8040000;/* end of 256K RAM */

/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x400;/* required amount of heap  */

/* Specify the memory areas */
MEMORY
{VECTORS(rx): ORIGIN = 0x00000000, LENGTH = 0x00000020FLASH  (rx): ORIGIN = 0x00000020, LENGTH = (0x0017FFE0 + 0x00180000)CPU_STACK (rw)  : ORIGIN = 0x08000000, LENGTH = 0x00001500 /* Stack is configured in sys_core.asm */RAM (xrw): ORIGIN = 0x08001500, LENGTH = 0x0003EB00MEMORY_B1 (rx)  : ORIGIN = 0x60000000, LENGTH = 0K
}

/* Define output sections */
SECTIONS
{/* The ISR vector goes first into RAM */.intvecs :{. = ALIGN(4);KEEP(*(.intvecs)) /* ISR vector */. = ALIGN(4);} >VECTORS/* The program code and other data goes into RAM */.text :{. = ALIGN(4);*(.text)/* .text sections (code) */*(.text*)/* .text* sections (code) */*(.glue_7)/* glue arm to thumb code */*(.glue_7t)/* glue thumb to arm code */*(.eh_frame)KEEP (*(.init))KEEP (*(.fini)). = ALIGN(4);_etext = .;/* define a global symbols at end of code */} >FLASH/* Constant data goes into RAM */.rodata :{. = ALIGN(4);*(.rodata)/* .rodata sections (constants, strings, etc.) */*(.rodata*)/* .rodata* sections (constants, strings, etc.) */. = ALIGN(4);} >FLASH.ARM.extab: { *(.ARM.extab* .gnu.linkonce.armextab.*) } >RAM.ARM : {__exidx_start = .;*(.ARM.exidx*)__exidx_end = .;} >FLASH.preinit_array:{PROVIDE_HIDDEN (__preinit_array_start = .);KEEP (*(.preinit_array*))PROVIDE_HIDDEN (__preinit_array_end = .);} >FLASH.init_array :{PROVIDE_HIDDEN (__init_array_start = .);KEEP (*(SORT(.init_array.*)))KEEP (*(.init_array*))PROVIDE_HIDDEN (__init_array_end = .);} >FLASH.fini_array :{PROVIDE_HIDDEN (__fini_array_start = .);KEEP (*(SORT(.fini_array.*)))KEEP (*(.fini_array*))PROVIDE_HIDDEN (__fini_array_end = .);} >FLASH/* used by the startup to initialize data */_sidata = LOADADDR(.data);/* Initialized data sections goes into RAM, load LMA copy after code */.data :{. = ALIGN(4);_sdata = .;/* create a global symbol at data start */*(.data)/* .data sections */*(.data*)/* .data* sections */. = ALIGN(4);_edata = .;/* define a global symbol at data end */} >RAM AT> FLASH/* Uninitialized data section */. = ALIGN(4);.bss :{/* This is used by the startup in order to initialize the .bss secion */_sbss = .;/* define a global symbol at bss start */__bss_start__ = _sbss;*(.bss)*(.bss*)*(COMMON). = ALIGN(4);_ebss = .;/* define a global symbol at bss end */__bss_end__ = _ebss;} >RAMPROVIDE ( end = _ebss );PROVIDE ( _end = _ebss );/* MEMORY_bank1 section, code must be located here explicitly*//* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */.memory_b1_text :{*(.mb1text)/* .mb1text sections (code) */*(.mb1text*)/* .mb1text* sections (code)  */*(.mb1rodata)/* read-only data (constants) */*(.mb1rodata*)} >MEMORY_B1/* Remove information from the standard libraries *//DISCARD/ :{libc.a ( * )libm.a ( * )libgcc.a ( * )}.ARM.attributes 0 : { *(.ARM.attributes) }
}

Susan Yang:

我看您在E2E上也发了帖子,并且有工程师回复了。请您继续跟踪该帖,QJ Wang是Hercules的资深专家

赞(0)
未经允许不得转载:TI中文支持网 » tms570ls3137从flash拷贝代码到ram运行
分享到: 更多 (0)