summaryrefslogtreecommitdiff
path: root/openpcd/firmware/link/AT91SAM7S256-ROM-dfu-fullimage.ld
diff options
context:
space:
mode:
Diffstat (limited to 'openpcd/firmware/link/AT91SAM7S256-ROM-dfu-fullimage.ld')
-rw-r--r--openpcd/firmware/link/AT91SAM7S256-ROM-dfu-fullimage.ld145
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) }
personal git repositories of Harald Welte. Your mileage may vary