diff options
Diffstat (limited to 'openpcd/firmware/link/AT91SAM7S256-ROM-dfu-fullimage.ld')
-rw-r--r-- | openpcd/firmware/link/AT91SAM7S256-ROM-dfu-fullimage.ld | 145 |
1 files changed, 71 insertions, 74 deletions
diff --git a/openpcd/firmware/link/AT91SAM7S256-ROM-dfu-fullimage.ld b/openpcd/firmware/link/AT91SAM7S256-ROM-dfu-fullimage.ld index 9bb5163..3932e64 100644 --- a/openpcd/firmware/link/AT91SAM7S256-ROM-dfu-fullimage.ld +++ b/openpcd/firmware/link/AT91SAM7S256-ROM-dfu-fullimage.ld @@ -41,82 +41,79 @@ MEMORY SECTIONS { - . = 0x00000000; - /* first section is .text which is used for code */ - .text : { - src/start/Cstartup*.o (.text) - *(.dfu.func) - *(.dfu.struct) - } >FLASH - _etext_dfu = . ; - - .data : AT (_etext_dfu) { - _data_dfu = . ; - KEEP(*(.vectram)) - src/dfu.o (.data) + . = 0x00000000; + /* first section is .text which is used for code */ + .dfu.text 0x00100000: AT ( 0x00000000 ) { + src/start/Cstartup*.o (.text) + *(.dfu.func) + *(.dfu.struct) + . = ALIGN(4); + } >FLASH + + _etext_dfu = . ; + + .dfu.data 0x00200000: AT ( ADDR(.dfu.text) + SIZEOF(.dfu.text) - ADDR(.dfu.text) ) { + _data_dfu = . ; + *(.vectram) + src/os/dfu.o (.data) + . = ALIGN(4); + } >DATA + _edata_dfu = . ; - } >DATA - .text : { - . = 0x00002000; - *(.dfu.functab) - - . = 0x00002100; - *(.text) /* remaining code */ - - *(.glue_7t) *(.glue_7) - - } >FLASH - - . = ALIGN(4); - - /* .rodata section which is used for read-only data (constants) */ - - .rodata : - { - *(.rodata) - } >FLASH - - . = ALIGN(4); - - _etext = . ; - PROVIDE (etext = .); - - /* .data section which is used for initialized data */ - - .data : AT (_etext) - { - _data = . ; - *(.data) - SORT(CONSTRUCTORS) - . = ALIGN(4); - *(.fastrun) - } >DATA - . = ALIGN(4); - - _edata = . ; - PROVIDE (edata = .); - - /* .bss section which is used for uninitialized data */ - - .bss : - { - __bss_start = . ; - __bss_start__ = . ; - *(.bss) - *(COMMON) - } - . = ALIGN(4); - __bss_end__ = . ; - __bss_end__ = . ; - _end = .; - . = ALIGN(4); - .int_data : - { - *(.internal_ram_top) - }> STACK - - PROVIDE (end = .); + .dfu.functab 0x00102100: AT ( ADDR(.dfu.functab) - ADDR(.dfu.text) ) { + *(.dfu.functab) + . = ALIGN(4); + } >FLASH + + .text 0x00102200: AT ( ADDR(.text) - ADDR(.dfu.text) ) { + *(.text) /* remaining code */ + *(.glue_7t) *(.glue_7) + . = ALIGN(4); + } >FLASH + + + /* .rodata section which is used for read-only data (constants) */ + .rodata : AT ( ADDR(.text) + SIZEOF(.text) - ADDR(.dfu.text) ) { + *(.rodata*) + . = ALIGN(4); + } >FLASH + + _etext = . ; + PROVIDE (etext = .); + + /* .data section which is used for initialized data */ + .data : AT ( ADDR(.rodata) + SIZEOF(.rodata) - ADDR(.dfu.text) ) { + _data = . ; + *(.data) + SORT(CONSTRUCTORS) + . = ALIGN(4); + *(.fastrun) + . = ALIGN(4); + } >DATA + + _edata = . ; + PROVIDE (edata = .); + + /* .bss section which is used for uninitialized data */ + .bss : { + __bss_start = . ; + __bss_start__ = . ; + *(.bss) + *(COMMON) + } >DATA + + . = ALIGN(4); + __bss_end__ = . ; + __bss_end__ = . ; + _end = . ; + + . = ALIGN(4); + .int_data : { + *(.internal_ram_top) + } >STACK + + PROVIDE (end = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } |