aboutsummaryrefslogtreecommitdiffstats
path: root/boards/base/RaspberryPi/example-FreeRTOS/raspberrypi.ld
diff options
context:
space:
mode:
Diffstat (limited to 'boards/base/RaspberryPi/example-FreeRTOS/raspberrypi.ld')
-rw-r--r--boards/base/RaspberryPi/example-FreeRTOS/raspberrypi.ld70
1 files changed, 70 insertions, 0 deletions
diff --git a/boards/base/RaspberryPi/example-FreeRTOS/raspberrypi.ld b/boards/base/RaspberryPi/example-FreeRTOS/raspberrypi.ld
new file mode 100644
index 00000000..ece588b5
--- /dev/null
+++ b/boards/base/RaspberryPi/example-FreeRTOS/raspberrypi.ld
@@ -0,0 +1,70 @@
+/**
+ * BlueThunder Linker Script for the raspberry Pi!
+ *
+ *
+ *
+ **/
+MEMORY
+{
+ RESERVED (r) : ORIGIN = 0x00000000, LENGTH = 32K
+ INIT_RAM (rwx) : ORIGIN = 0x00008000, LENGTH = 32K
+ RAM (rwx) : ORIGIN = 0x00010000, LENGTH = 128M
+}
+
+ENTRY(_start)
+
+SECTIONS {
+ /*
+ * Our init section allows us to place the bootstrap code at address 0x8000
+ *
+ * This is where the Graphics processor forces the ARM to start execution.
+ * However the interrupt vector code remains at 0x0000, and so we must copy the correct
+ * branch instructions to 0x0000 - 0x001C in order to get the processor to handle interrupts.
+ *
+ */
+ .init : {
+ KEEP(*(.init))
+ } > INIT_RAM = 0
+
+ .module_entries : {
+ __module_entries_start = .;
+ KEEP(*(.module_entries))
+ KEEP(*(.module_entries.*))
+ __module_entries_end = .;
+ __module_entries_size = SIZEOF(.module_entries);
+ } > INIT_RAM
+
+
+ /**
+ * This is the main code section, it is essentially of unlimited size. (128Mb).
+ *
+ **/
+ .text : {
+ *(.text)
+ } > RAM
+
+ /*
+ * Next we put the data.
+ */
+ .data : {
+ *(.data)
+ } > RAM
+
+ .bss :
+ {
+ __bss_start = .;
+ *(.bss)
+ *(.bss.*)
+ __bss_end = .;
+ } > RAM
+
+ /**
+ * Place HEAP here???
+ **/
+
+ /**
+ * Stack starts at the top of the RAM, and moves down!
+ **/
+ _estack = ORIGIN(RAM) + LENGTH(RAM);
+}
+