aboutsummaryrefslogtreecommitdiff
path: root/link.ld
diff options
context:
space:
mode:
authorVictor Mignot <victor@vmignot.fr>2025-07-22 15:14:14 +0200
committerVictor Mignot <victor@vmignot.fr>2025-07-23 15:08:17 +0200
commitf6a2143e22f577abafea5190b242471da6e34896 (patch)
treef2465b65f11a8b9d83c467d4658ffd7257e8b0e9 /link.ld
downloadnanji-f6a2143e22f577abafea5190b242471da6e34896.tar.gz
cortex-m4f: bootstrap code
Diffstat (limited to 'link.ld')
-rw-r--r--link.ld51
1 files changed, 51 insertions, 0 deletions
diff --git a/link.ld b/link.ld
new file mode 100644
index 0000000..9f2e79d
--- /dev/null
+++ b/link.ld
@@ -0,0 +1,51 @@
+MEMORY {
+ FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x80000
+ RAM (rwx): ORIGIN = 0x20000000, LENGTH = 0x10000
+}
+
+SECTIONS {
+ .vector_table ORIGIN(FLASH) :
+ {
+ *(.vector_table .vector_table.*);
+ } > FLASH
+
+ .text :
+ {
+ *(.text .text.*);
+ } > FLASH
+
+ .rodata :
+ {
+ *(.rodata .rodata.*);
+ } > FLASH
+
+ .bss : ALIGN(4)
+ {
+ __bss_start = .;
+
+ *(.bss .bss.*);
+
+ . = ALIGN(4);
+ __bss_end = .;
+ } > RAM
+
+ .data : ALIGN(4)
+ {
+ __data_start = .;
+
+ *(.data .data.*);
+
+ . = ALIGN(4);
+ __data_end = .;
+ } > RAM AT > FLASH
+
+ __data_lma = LOADADDR(.data);
+
+ /DISCARD/ :
+ {
+ *(.ARM.exidx .ARM.exidx.*);
+ }
+
+ /* Start the stack from the end of the RAM */
+ __stack_top = ORIGIN(RAM) + LENGTH(RAM);
+}