aboutsummaryrefslogtreecommitdiff
path: root/linker/linker_script.ld
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2020-11-24 13:46:41 -0700
committerJosh Rahm <joshuarahm@gmail.com>2020-11-24 13:46:41 -0700
commit93b063fedfcf7409a67df035170ea5670cad22e1 (patch)
treea23321a7465d966b1ccf196ca00e65a70c9f9110 /linker/linker_script.ld
parentb040195d31df6ad759f16ea3456471897f55daa1 (diff)
downloadstm32l4-93b063fedfcf7409a67df035170ea5670cad22e1.tar.gz
stm32l4-93b063fedfcf7409a67df035170ea5670cad22e1.tar.bz2
stm32l4-93b063fedfcf7409a67df035170ea5670cad22e1.zip
Moved action to top level.
Removed old iterations of the project and moved the files from 02-usart to the root directory since that's the sole place where the action is and that subproject has outgrown its initial title.
Diffstat (limited to 'linker/linker_script.ld')
-rw-r--r--linker/linker_script.ld55
1 files changed, 55 insertions, 0 deletions
diff --git a/linker/linker_script.ld b/linker/linker_script.ld
new file mode 100644
index 0000000..9a9f5b3
--- /dev/null
+++ b/linker/linker_script.ld
@@ -0,0 +1,55 @@
+MEMORY
+{
+ flash : org = 0x08000000, len = 256k
+ sram1 : org = 0x20000000, len = 48k
+ sram2 : org = 0x10000000, len = 16k
+}
+
+SECTIONS
+{
+ /* This is where the code goes. */
+ . = ORIGIN(flash);
+ .text : {
+ *(.vectors); /* All .vector sections go here. */
+ *(.text); /* All .text sections go here. */
+ } >flash
+
+ .data : {
+ /* Data segment as defined in the flash. */
+ INIT_DATA_VALUES = LOADADDR(.data);
+
+ /* Data segment where it will be in memory. */
+ DATA_SEGMENT_START = .;
+ *(.data);
+ DATA_SEGMENT_STOP = .;
+
+ INIT_ROUTINES_FLASH_START =
+ LOADADDR(.data) + (DATA_SEGMENT_STOP - DATA_SEGMENT_START);
+
+ INITS_START = .;
+ *(.init0);
+ *(.init1);
+ *(.init2);
+ *(.init3);
+ *(.init4);
+ *(.init5);
+ *(.init6);
+ *(.init7);
+ INITS_END = .;
+
+ INIT_ROUTINES_FLASH_STOP =
+ LOADADDR(.data) + (INITS_END - DATA_SEGMENT_START);
+
+ /* Align by 4 so we can optimize the copier to use uint32's. */
+ . = ALIGN(0x04);
+
+ *(.noinit);
+ } >sram1 AT>flash
+
+ BSS_START = .;
+ .bss : {
+ *(.bss);
+ . = ALIGN(0x04);
+ } > sram1
+ BSS_END = .;
+}