-/*
- * MEMORY MAP
+/* (CC-BY-NC-SA) ROBIN KRENS - ROBIN @ ROBINKRENS.NL
+ *
+ * $LOG$
+ * 2019/7/20 - ROBIN KRENS
+ * Initial version
+ *
+ * $DESCRIPTION$
+ * Linker file for Cortex-M3 STM32 based boards
+ * Boards have similar FLASH and SRAM ORIGINs
+ * LENGTHs differs of course.
+ *
+ * _start flag is the first procedure to be
+ * executed (linked to beginning of FLASH at
+ * 0x08000000). The procedure should do some
+ * basic things, such as set up the stack and
+ * reset and hard fault handler (see start.asm)
+ * *
+ * _endofbss flag is used to calculate the end
+ * of .bss and the start of (a possible) kernel
+ * heap
+ *
+ * */
+
+KHEAP_SIZE = 0x100;
+
+MEMORY
{
FLASH (xr) : ORIGIN = 0x08000000, LENGTH = 512K
SRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K
-} */
+}
ENTRY(_start)
. = 0x0;
.text : ALIGN(4)
{
- /* (.vector_table */
+ /* (.vector_table */
*(.text)
-
- }
- . = 0x20000000;
- .data :
+ *(.rodata)
+ data_lma = .;
+ }
+ . = 0x20000000;
+ data_vma = .;
+ .data : AT (data_lma)
{
*(.data)
- }
- .bss : ALIGN(256)
+ }
+ data_end = .;
+ .bss : ALIGN(4)
{
*(.bss)
}
+ _endofbss = .;
+ _beginofheap = .;
+ . = . + KHEAP_SIZE;
+ . = ALIGN(8);
+ _endofheap = .;
}