summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Schodet2016-08-03 11:03:09 +0200
committerNicolas Schodet2019-10-09 23:05:50 +0200
commit79ffe04c2feb6c42d915c3c7bbd3175a173d47b6 (patch)
tree8c01350119b81cba304d607022bb6e2d0e23ae53
parent3e4d6ce0beb81b99bcba9192e3855e1753599733 (diff)
ucoo/arch/ld: add F439 & F479 scripts, add more configuration options
-rw-r--r--ucoo/arch/ld/common.ld11
-rw-r--r--ucoo/arch/ld/stm32f1.ld6
-rw-r--r--ucoo/arch/ld/stm32f4.ld9
-rw-r--r--ucoo/arch/ld/stm32f439.ld16
-rw-r--r--ucoo/arch/ld/stm32f479.ld16
5 files changed, 56 insertions, 2 deletions
diff --git a/ucoo/arch/ld/common.ld b/ucoo/arch/ld/common.ld
index 8b5efb2..e74b075 100644
--- a/ucoo/arch/ld/common.ld
+++ b/ucoo/arch/ld/common.ld
@@ -43,6 +43,10 @@ SECTIONS
. = ALIGN(4);
_etext = .;
+ .nvram (NOLOAD) : {
+ *(.nvram*)
+ } >nvrammem
+
.data : {
_data = .;
*(.data*)
@@ -60,8 +64,11 @@ SECTIONS
/DISCARD/ : { *(.eh_frame) }
+ .heap (NOLOAD) : {
+ *(.heap*)
+ _heap = .;
+ } >heapmem
+
. = ALIGN(4);
end = .;
}
-
-PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
diff --git a/ucoo/arch/ld/stm32f1.ld b/ucoo/arch/ld/stm32f1.ld
index 2231ccb..9efdab5 100644
--- a/ucoo/arch/ld/stm32f1.ld
+++ b/ucoo/arch/ld/stm32f1.ld
@@ -3,4 +3,10 @@ MEMORY
rom (rx) : ORIGIN = 0x08000000, LENGTH = 256K
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
}
+
+REGION_ALIAS("nvrammem", rom);
+REGION_ALIAS("heapmem", ram);
+
INCLUDE common.ld
+
+PROVIDE(_stack = ORIGIN(ram) + LENGTH(ram));
diff --git a/ucoo/arch/ld/stm32f4.ld b/ucoo/arch/ld/stm32f4.ld
index f752426..cc1b911 100644
--- a/ucoo/arch/ld/stm32f4.ld
+++ b/ucoo/arch/ld/stm32f4.ld
@@ -1,6 +1,15 @@
MEMORY
{
rom (rx) : ORIGIN = 0x08000000, LENGTH = 1024K
+ ccm (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
+ /* SRAM1: 112K
+ * SRAM2: 16K */
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 128K
}
+
+REGION_ALIAS("nvrammem", rom);
+REGION_ALIAS("heapmem", ram);
+
INCLUDE common.ld
+
+PROVIDE(_stack = ORIGIN(ccm) + LENGTH(ccm));
diff --git a/ucoo/arch/ld/stm32f439.ld b/ucoo/arch/ld/stm32f439.ld
new file mode 100644
index 0000000..c888749
--- /dev/null
+++ b/ucoo/arch/ld/stm32f439.ld
@@ -0,0 +1,16 @@
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x08000000, LENGTH = 2048K
+ ccm (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
+ /* SRAM1: 112K
+ * SRAM2: 16K
+ * SRAM3: 64K */
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 192K
+}
+
+REGION_ALIAS("nvrammem", rom);
+REGION_ALIAS("heapmem", ram);
+
+INCLUDE common.ld
+
+PROVIDE(_stack = ORIGIN(ccm) + LENGTH(ccm));
diff --git a/ucoo/arch/ld/stm32f479.ld b/ucoo/arch/ld/stm32f479.ld
new file mode 100644
index 0000000..6602dbd
--- /dev/null
+++ b/ucoo/arch/ld/stm32f479.ld
@@ -0,0 +1,16 @@
+MEMORY
+{
+ rom (rx) : ORIGIN = 0x08000000, LENGTH = 2048K
+ ccm (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
+ /* SRAM1: 112K
+ * SRAM2: 16K
+ * SRAM3: 128K */
+ ram (rwx) : ORIGIN = 0x20000000, LENGTH = 256K
+}
+
+REGION_ALIAS("nvrammem", rom);
+REGION_ALIAS("heapmem", ram);
+
+INCLUDE common.ld
+
+PROVIDE(_stack = ORIGIN(ccm) + LENGTH(ccm));