]> rtime.felk.cvut.cz Git - sysless.git/commitdiff
LPC2xxx FLASH linker scripts cleaned to resemble RAM script
authorMarek P <marek@tesla.(none)>
Sat, 28 Mar 2009 14:50:31 +0000 (15:50 +0100)
committerMarek P <marek@tesla.(none)>
Sat, 28 Mar 2009 14:50:31 +0000 (15:50 +0100)
The only material change should be stack unaligned to 256-byte boundary
(I hope...)

arch/arm/mach-lpc21xx/libs/ldscripts/lpc2119.ld-mpflash [changed from file to symlink]
arch/arm/mach-lpc21xx/libs/ldscripts/lpc21xx.ld-flash
arch/arm/mach-lpc21xx/libs/ldscripts/lpc21xx.ld-mpflash [changed from file to symlink]
arch/arm/mach-lpc21xx/libs/ldscripts/lpc2xxx-128.ld-flash [new file with mode: 0644]
arch/arm/mach-lpc21xx/libs/ldscripts/lpc2xxx-256.ld-flash [new file with mode: 0644]

deleted file mode 100644 (file)
index 36829beec512e549cffab48426f1839796c7c2b6..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/***********************************************************************/\r
-/*  This file is part of the ARM Compiler package                      */\r
-/*  Copyright KEIL ELEKTRONIK GmbH 1992-2004                           */\r
-/***********************************************************************/\r
-/*                                                                     */\r
-/*  TARGET.LD:  Linker Script File                                     */\r
-/*                                                                     */\r
-/***********************************************************************/\r
-\r
-\r
-/*\r
-//*** <<< Use Configuration Wizard in Context Menu >>> *** \r
-*/\r
-\r
-STACK_SIZE = 0x400;\r
-\r
-/*\r
-// <h> Memory Configuration\r
-//   <h> Code (Read Only)\r
-//     <o>  Start <0x0-0xFFFFFFFF>\r
-//     <o1> Size  <0x0-0xFFFFFFFF>\r
-//   </h>\r
-//   <h> Data (Read/Write)\r
-//     <o2> Start <0x0-0xFFFFFFFF>\r
-//     <o3> Size  <0x0-0xFFFFFFFF>\r
-//   </h>\r
-// </h>\r
-*/\r
-\r
-/* Memory Definitions */\r
-\r
-MEMORY\r
-{\r
-  CODE (rx) : ORIGIN = 0x00000000, LENGTH = 0x0001e000\r
-  DATA (rw) : ORIGIN = 0x40000000, LENGTH = 0x00004000\r
-}\r
-\r
-STARTUP(crt0.o)\r
-INCLUDE board.ld               /* Allow to INPUT board specific files */\r
-\r
-/* Section Definitions */\r
-\r
-SECTIONS\r
-{\r
-  .ivec :\r
-  {\r
-    *(.ivec)                   /* interrupt entry points */\r
-  } > CODE\r
-\r
-  /* first section is .text which is used for code */\r
-  .text :\r
-  {\r
-    *crt0.o (.text)         /* Startup code */\r
-    *(.text)                   /* remaining code */\r
-\r
-    *(.glue_7t) *(.glue_7)\r
-\r
-  } >CODE =0\r
-\r
-  . = ALIGN(4);\r
-\r
-  /* .init_array - pointers to functions called before main */\r
-  PROVIDE (__init_array_start = .);\r
-  .init_array :\r
-  {\r
-    *(.init_array)\r
-  } >CODE =0\r
-  PROVIDE (__init_array_end = .);\r
-\r
-  . = ALIGN(4);\r
-\r
-  /* .rodata section which is used for read-only data (constants) */\r
-\r
-  .rodata :\r
-  {\r
-    *(.rodata)\r
-  } >CODE\r
-\r
-  . = ALIGN(4);\r
-\r
-  _etext = . ;\r
-  PROVIDE (etext = .);\r
-\r
-  /* .data section which is used for initialized data */\r
-  _datainit = LOADADDR(.data);\r
-  .data : AT (_etext)\r
-  {\r
-    _data = . ;\r
-    /* *!*!*!* */\r
-    PROVIDE (canload_id = .);\r
-    . += 4;\r
-    /* *!*!*!* */\r
-    *(.data)\r
-    SORT(CONSTRUCTORS)\r
-  } >DATA\r
-  . = ALIGN(4);\r
-\r
-  _edata = . ;\r
-   PROVIDE (edata = .);\r
-\r
-  /* .bss section which is used for uninitialized data */\r
-\r
-  .bss :\r
-  {\r
-    __bss_start = . ;\r
-    __bss_start__ = . ;\r
-    *(.bss)\r
-    *(COMMON)\r
-  } >DATA\r
-  . = ALIGN(4);\r
-  __bss_end__ = . ;\r
-  __bss_end__ = . ;\r
-\r
-  .stack ALIGN(256) :\r
-  {\r
-    . += STACK_SIZE;\r
-    PROVIDE (_stack = .);\r
-  } > DATA\r
-\r
-  _end = .;\r
-  PROVIDE (end = .);\r
-\r
-  /* Stabs debugging sections.  */\r
-  .stab          0 : { *(.stab) }\r
-  .stabstr       0 : { *(.stabstr) }\r
-  .stab.excl     0 : { *(.stab.excl) }\r
-  .stab.exclstr  0 : { *(.stab.exclstr) }\r
-  .stab.index    0 : { *(.stab.index) }\r
-  .stab.indexstr 0 : { *(.stab.indexstr) }\r
-  .comment       0 : { *(.comment) }\r
-  /* DWARF debug sections.\r
-     Symbols in the DWARF debugging sections are relative to the beginning\r
-     of the section so we begin them at 0.  */\r
-  /* DWARF 1 */\r
-  .debug          0 : { *(.debug) }\r
-  .line           0 : { *(.line) }\r
-  /* GNU DWARF 1 extensions */\r
-  .debug_srcinfo  0 : { *(.debug_srcinfo) }\r
-  .debug_sfnames  0 : { *(.debug_sfnames) }\r
-  /* DWARF 1.1 and DWARF 2 */\r
-  .debug_aranges  0 : { *(.debug_aranges) }\r
-  .debug_pubnames 0 : { *(.debug_pubnames) }\r
-  /* DWARF 2 */\r
-  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\r
-  .debug_abbrev   0 : { *(.debug_abbrev) }\r
-  .debug_line     0 : { *(.debug_line) }\r
-  .debug_frame    0 : { *(.debug_frame) }\r
-  .debug_str      0 : { *(.debug_str) }\r
-  .debug_loc      0 : { *(.debug_loc) }\r
-  .debug_macinfo  0 : { *(.debug_macinfo) }\r
-  /* SGI/MIPS DWARF 2 extensions */\r
-  .debug_weaknames 0 : { *(.debug_weaknames) }\r
-  .debug_funcnames 0 : { *(.debug_funcnames) }\r
-  .debug_typenames 0 : { *(.debug_typenames) }\r
-  .debug_varnames  0 : { *(.debug_varnames) }\r
-}\r
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..42324d07509be3876ff4c924c3899ea6e4d4a1a3
--- /dev/null
@@ -0,0 +1 @@
+lpc2xxx-128.ld-flash
\ No newline at end of file
index 506127a47e37cbbda98bc454a8c3dc1630b53611..0ac03337cc00944917761f810881139a35dd7fe9 120000 (symlink)
@@ -1 +1 @@
-lpc21xx.ld-mpflash
\ No newline at end of file
+lpc2xxx-256.ld-flash
\ No newline at end of file
deleted file mode 100644 (file)
index 0976253d292597b618b6673c765eceb805fd7d99..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/***********************************************************************/\r
-/*  This file is part of the ARM Compiler package                      */\r
-/*  Copyright KEIL ELEKTRONIK GmbH 1992-2004                           */\r
-/***********************************************************************/\r
-/*                                                                     */\r
-/*  TARGET.LD:  Linker Script File                                     */\r
-/*                                                                     */\r
-/***********************************************************************/\r
-\r
-\r
-/*\r
-//*** <<< Use Configuration Wizard in Context Menu >>> *** \r
-*/\r
-\r
-STACK_SIZE = 0x400;\r
-\r
-/*\r
-// <h> Memory Configuration\r
-//   <h> Code (Read Only)\r
-//     <o>  Start <0x0-0xFFFFFFFF>\r
-//     <o1> Size  <0x0-0xFFFFFFFF>\r
-//   </h>\r
-//   <h> Data (Read/Write)\r
-//     <o2> Start <0x0-0xFFFFFFFF>\r
-//     <o3> Size  <0x0-0xFFFFFFFF>\r
-//   </h>\r
-// </h>\r
-*/\r
-\r
-/* Memory Definitions */\r
-\r
-MEMORY\r
-{\r
-  CODE (rx) : ORIGIN = 0x00000000, LENGTH = 0x0003E000\r
-  DATA (rw) : ORIGIN = 0x40000000, LENGTH = 0x00004000\r
-}\r
-\r
-STARTUP(crt0.o)\r
-INCLUDE board.ld               /* Allow to INPUT board specific files */\r
-\r
-/* Section Definitions */\r
-\r
-SECTIONS\r
-{\r
-  .ivec :\r
-  {\r
-    *(.ivec)                   /* interrupt entry points */\r
-  } > CODE\r
-\r
-  /* first section is .text which is used for code */\r
-  .text :\r
-  {\r
-    *crt0.o (.text)         /* Startup code */\r
-    *(.text)                   /* remaining code */\r
-\r
-    *(.glue_7t) *(.glue_7)\r
-\r
-  } >CODE =0\r
-\r
-  . = ALIGN(4);\r
-\r
-  /* .init_array - pointers to functions called before main */\r
-  PROVIDE (__init_array_start = .);\r
-  .init_array :\r
-  {\r
-    *(.init_array)\r
-  } >CODE =0\r
-  PROVIDE (__init_array_end = .);\r
-\r
-  . = ALIGN(4);\r
-\r
-  /* .rodata section which is used for read-only data (constants) */\r
-\r
-  .rodata :\r
-  {\r
-    *(.rodata)\r
-  } >CODE\r
-\r
-  . = ALIGN(4);\r
-\r
-  _etext = . ;\r
-  PROVIDE (etext = .);\r
-\r
-  /* .data section which is used for initialized data */\r
-  _datainit = LOADADDR(.data);\r
-  .data : AT (_etext)\r
-  {\r
-    _data = . ;\r
-    /* *!*!*!* */\r
-    PROVIDE (canload_id = .);\r
-    . += 4;\r
-    /* *!*!*!* */\r
-    *(.data)\r
-    SORT(CONSTRUCTORS)\r
-  } >DATA\r
-  . = ALIGN(4);\r
-\r
-  _edata = . ;\r
-   PROVIDE (edata = .);\r
-\r
-  /* .bss section which is used for uninitialized data */\r
-\r
-  .bss :\r
-  {\r
-    __bss_start = . ;\r
-    __bss_start__ = . ;\r
-    *(.bss)\r
-    *(COMMON)\r
-  } >DATA\r
-  . = ALIGN(4);\r
-  __bss_end__ = . ;\r
-  __bss_end__ = . ;\r
-\r
-  .stack ALIGN(256) :\r
-  {\r
-    . += STACK_SIZE;\r
-    PROVIDE (_stack = .);\r
-  } > DATA\r
-\r
-  _end = .;\r
-  PROVIDE (end = .);\r
-\r
-  /* Stabs debugging sections.  */\r
-  .stab          0 : { *(.stab) }\r
-  .stabstr       0 : { *(.stabstr) }\r
-  .stab.excl     0 : { *(.stab.excl) }\r
-  .stab.exclstr  0 : { *(.stab.exclstr) }\r
-  .stab.index    0 : { *(.stab.index) }\r
-  .stab.indexstr 0 : { *(.stab.indexstr) }\r
-  .comment       0 : { *(.comment) }\r
-  /* DWARF debug sections.\r
-     Symbols in the DWARF debugging sections are relative to the beginning\r
-     of the section so we begin them at 0.  */\r
-  /* DWARF 1 */\r
-  .debug          0 : { *(.debug) }\r
-  .line           0 : { *(.line) }\r
-  /* GNU DWARF 1 extensions */\r
-  .debug_srcinfo  0 : { *(.debug_srcinfo) }\r
-  .debug_sfnames  0 : { *(.debug_sfnames) }\r
-  /* DWARF 1.1 and DWARF 2 */\r
-  .debug_aranges  0 : { *(.debug_aranges) }\r
-  .debug_pubnames 0 : { *(.debug_pubnames) }\r
-  /* DWARF 2 */\r
-  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }\r
-  .debug_abbrev   0 : { *(.debug_abbrev) }\r
-  .debug_line     0 : { *(.debug_line) }\r
-  .debug_frame    0 : { *(.debug_frame) }\r
-  .debug_str      0 : { *(.debug_str) }\r
-  .debug_loc      0 : { *(.debug_loc) }\r
-  .debug_macinfo  0 : { *(.debug_macinfo) }\r
-  /* SGI/MIPS DWARF 2 extensions */\r
-  .debug_weaknames 0 : { *(.debug_weaknames) }\r
-  .debug_funcnames 0 : { *(.debug_funcnames) }\r
-  .debug_typenames 0 : { *(.debug_typenames) }\r
-  .debug_varnames  0 : { *(.debug_varnames) }\r
-}\r
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..0ac03337cc00944917761f810881139a35dd7fe9
--- /dev/null
@@ -0,0 +1 @@
+lpc2xxx-256.ld-flash
\ No newline at end of file
diff --git a/arch/arm/mach-lpc21xx/libs/ldscripts/lpc2xxx-128.ld-flash b/arch/arm/mach-lpc21xx/libs/ldscripts/lpc2xxx-128.ld-flash
new file mode 100644 (file)
index 0000000..6005718
--- /dev/null
@@ -0,0 +1,123 @@
+/***
+ * LPC2xxx/128KB internal FLASH loadable by ISP
+ * uses internal FLASH up to 0x1e000 and whole 16KB RAM at runtime
+ *
+ * by Marek Peca <mp@duch.cz> 2008/10, 2009/03
+ * for ON-TRACK, Ltd.
+ * and Dept. of Control Engineering  http://dce.fel.cvut.cz/
+ ***/
+
+STARTUP(crt0.o)
+INCLUDE board.ld               /* Allow to INPUT board specific files */
+
+ENTRY(_start)
+STACK_SIZE = 0x400;
+
+/* Memory Definitions */
+MEMORY
+{
+  FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x0001e000
+  RAM   (rw) : ORIGIN = 0x40000000, LENGTH = 0x00004000
+}
+
+/* Section Definitions */
+
+SECTIONS
+{
+  .ivec :
+  {
+    *(.ivec)                   /* interrupt entry points */
+  } > FLASH
+
+  /* first section is .text which is used for code */
+  .text :
+  {
+    *crt0.o (.text)            /* Startup code */
+    *(.text)                   /* remaining code */
+    *(.glue_7)
+    *(.glue_7t)
+    . = ALIGN(4);
+    _etext = .;
+  } > FLASH
+
+  .rodata :
+  {
+    *(.rodata)                 /* read-only data (constants) */
+    *(.rodata*)
+    . = ALIGN(4);
+  } > FLASH
+
+  /* .init_array - pointers to functions called before main */
+  PROVIDE(__init_array_start = .);
+  .init_array :
+  {
+    *(.init_array)
+    . = ALIGN(4);
+  } > FLASH = 0
+  PROVIDE (__init_array_end = .);
+
+  /* .data section which is used for initialized data */
+  _datainit = LOADADDR(.data);
+  .data :
+  {
+    _data = .;
+    *(.data)
+    SORT(CONSTRUCTORS)
+    . = ALIGN(4);
+    _edata = .;
+  } > RAM  AT> FLASH
+
+  /* .bss section which is used for uninitialized data */
+  .bss (NOLOAD) :
+  {
+    __bss_start = .;
+    __bss_start__ = .;
+    *(.bss)
+    *(COMMON)
+    . = ALIGN(4);
+    __bss_end__ = .;
+  } > RAM
+
+  .stack :
+  {
+    . += STACK_SIZE;
+    PROVIDE (_stack = .);
+  } > RAM
+
+  _end = . ;
+  PROVIDE (end = .);
+
+  /* Stabs debugging sections.  */
+  .stab          0 : { *(.stab) }
+  .stabstr       0 : { *(.stabstr) }
+  .stab.excl     0 : { *(.stab.excl) }
+  .stab.exclstr  0 : { *(.stab.exclstr) }
+  .stab.index    0 : { *(.stab.index) }
+  .stab.indexstr 0 : { *(.stab.indexstr) }
+  .comment       0 : { *(.comment) }
+  /* DWARF debug sections.
+     Symbols in the DWARF debugging sections are relative to the beginning
+     of the section so we begin them at 0.  */
+  /* DWARF 1 */
+  .debug          0 : { *(.debug) }
+  .line           0 : { *(.line) }
+  /* GNU DWARF 1 extensions */
+  .debug_srcinfo  0 : { *(.debug_srcinfo) }
+  .debug_sfnames  0 : { *(.debug_sfnames) }
+  /* DWARF 1.1 and DWARF 2 */
+  .debug_aranges  0 : { *(.debug_aranges) }
+  .debug_pubnames 0 : { *(.debug_pubnames) }
+  /* DWARF 2 */
+  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
+  .debug_abbrev   0 : { *(.debug_abbrev) }
+  .debug_line     0 : { *(.debug_line) }
+  .debug_frame    0 : { *(.debug_frame) }
+  .debug_str      0 : { *(.debug_str) }
+  .debug_loc      0 : { *(.debug_loc) }
+  .debug_macinfo  0 : { *(.debug_macinfo) }
+  /* SGI/MIPS DWARF 2 extensions */
+  .debug_weaknames 0 : { *(.debug_weaknames) }
+  .debug_funcnames 0 : { *(.debug_funcnames) }
+  .debug_typenames 0 : { *(.debug_typenames) }
+  .debug_varnames  0 : { *(.debug_varnames) }
+}
diff --git a/arch/arm/mach-lpc21xx/libs/ldscripts/lpc2xxx-256.ld-flash b/arch/arm/mach-lpc21xx/libs/ldscripts/lpc2xxx-256.ld-flash
new file mode 100644 (file)
index 0000000..9365022
--- /dev/null
@@ -0,0 +1,123 @@
+/***
+ * LPC2xxx/256KB internal FLASH loadable by ISP
+ * uses internal FLASH up to 0x3e000 and whole 16KB RAM at runtime
+ *
+ * by Marek Peca <mp@duch.cz> 2008/10, 2009/03
+ * for ON-TRACK, Ltd.
+ * and Dept. of Control Engineering  http://dce.fel.cvut.cz/
+ ***/
+
+STARTUP(crt0.o)
+INCLUDE board.ld               /* Allow to INPUT board specific files */
+
+ENTRY(_start)
+STACK_SIZE = 0x400;
+
+/* Memory Definitions */
+MEMORY
+{
+  FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x0003e000
+  RAM   (rw) : ORIGIN = 0x40000000, LENGTH = 0x00004000
+}
+
+/* Section Definitions */
+
+SECTIONS
+{
+  .ivec :
+  {
+    *(.ivec)                   /* interrupt entry points */
+  } > FLASH
+
+  /* first section is .text which is used for code */
+  .text :
+  {
+    *crt0.o (.text)            /* Startup code */
+    *(.text)                   /* remaining code */
+    *(.glue_7)
+    *(.glue_7t)
+    . = ALIGN(4);
+    _etext = .;
+  } > FLASH
+
+  .rodata :
+  {
+    *(.rodata)                 /* read-only data (constants) */
+    *(.rodata*)
+    . = ALIGN(4);
+  } > FLASH
+
+  /* .init_array - pointers to functions called before main */
+  PROVIDE(__init_array_start = .);
+  .init_array :
+  {
+    *(.init_array)
+    . = ALIGN(4);
+  } > FLASH = 0
+  PROVIDE (__init_array_end = .);
+
+  /* .data section which is used for initialized data */
+  _datainit = LOADADDR(.data);
+  .data :
+  {
+    _data = .;
+    *(.data)
+    SORT(CONSTRUCTORS)
+    . = ALIGN(4);
+    _edata = .;
+  } > RAM  AT> FLASH
+
+  /* .bss section which is used for uninitialized data */
+  .bss (NOLOAD) :
+  {
+    __bss_start = .;
+    __bss_start__ = .;
+    *(.bss)
+    *(COMMON)
+    . = ALIGN(4);
+    __bss_end__ = .;
+  } > RAM
+
+  .stack :
+  {
+    . += STACK_SIZE;
+    PROVIDE (_stack = .);
+  } > RAM
+
+  _end = . ;
+  PROVIDE (end = .);
+
+  /* Stabs debugging sections.  */
+  .stab          0 : { *(.stab) }
+  .stabstr       0 : { *(.stabstr) }
+  .stab.excl     0 : { *(.stab.excl) }
+  .stab.exclstr  0 : { *(.stab.exclstr) }
+  .stab.index    0 : { *(.stab.index) }
+  .stab.indexstr 0 : { *(.stab.indexstr) }
+  .comment       0 : { *(.comment) }
+  /* DWARF debug sections.
+     Symbols in the DWARF debugging sections are relative to the beginning
+     of the section so we begin them at 0.  */
+  /* DWARF 1 */
+  .debug          0 : { *(.debug) }
+  .line           0 : { *(.line) }
+  /* GNU DWARF 1 extensions */
+  .debug_srcinfo  0 : { *(.debug_srcinfo) }
+  .debug_sfnames  0 : { *(.debug_sfnames) }
+  /* DWARF 1.1 and DWARF 2 */
+  .debug_aranges  0 : { *(.debug_aranges) }
+  .debug_pubnames 0 : { *(.debug_pubnames) }
+  /* DWARF 2 */
+  .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
+  .debug_abbrev   0 : { *(.debug_abbrev) }
+  .debug_line     0 : { *(.debug_line) }
+  .debug_frame    0 : { *(.debug_frame) }
+  .debug_str      0 : { *(.debug_str) }
+  .debug_loc      0 : { *(.debug_loc) }
+  .debug_macinfo  0 : { *(.debug_macinfo) }
+  /* SGI/MIPS DWARF 2 extensions */
+  .debug_weaknames 0 : { *(.debug_weaknames) }
+  .debug_funcnames 0 : { *(.debug_funcnames) }
+  .debug_typenames 0 : { *(.debug_typenames) }
+  .debug_varnames  0 : { *(.debug_varnames) }
+}