diff options
Diffstat (limited to 'os')
31 files changed, 99 insertions, 5 deletions
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x4.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x4.ld index d63d89d8c..3a809ddb6 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x4.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x4.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x6.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x6.ld index 328351cdf..71b738110 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x6.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x6.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x8.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x8.ld index 24b8f0d6c..429eba77a 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x8.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F030x8.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F051x8.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F051x8.ld index 55ea322a8..26466f115 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F051x8.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F051x8.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F072xB.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F072xB.ld index 5c75b2399..e44d43730 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F072xB.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F072xB.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F100xB.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F100xB.ld index 304ab77c4..76c19c669 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F100xB.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F100xB.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xB.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xB.ld index 99653d259..22eba093e 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xB.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xB.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xD.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xD.ld index 4f1409332..1952b614c 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xD.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xD.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xE.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xE.ld index a8f249632..8af8a3c7b 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xE.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xE.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xE_maplemini_bootloader.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xE_maplemini_bootloader.ld index 64895a4ba..73fbc5209 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xE_maplemini_bootloader.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xE_maplemini_bootloader.ld @@ -50,4 +50,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xG.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xG.ld index bf795887e..f40b46ff1 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xG.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F103xG.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F107xC.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F107xC.ld index 6d382f617..f10a7a53b 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F107xC.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F107xC.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F302x8.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F302x8.ld index 2d5461957..a78e033a6 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F302x8.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F302x8.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F303xC.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F303xC.ld index d01491695..518e96f0d 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F303xC.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F303xC.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F334x8.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F334x8.ld index 0121c5b67..cfd9698e1 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F334x8.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F334x8.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F373xC.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F373xC.ld index 1e6a22f23..96d58449c 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F373xC.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F373xC.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F401xC.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F401xC.ld index 3b78c3e27..798e255bb 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F401xC.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F401xC.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F401xE.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F401xE.ld index 7feed0a6c..235ae50ea 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F401xE.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F401xE.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F405xG.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F405xG.ld index e061f7dcb..151ec0dba 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F405xG.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F405xG.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F407xG.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F407xG.ld index 291eaf00e..4ced890b6 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F407xG.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F407xG.ld @@ -48,4 +48,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F411xC.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F411xC.ld index 794070294..b3f91a45b 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F411xC.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F411xC.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F411xE.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F411xE.ld index 14e191a31..010f8d4d2 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F411xE.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F411xE.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F429xI.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F429xI.ld index e1e1902e9..81248e10c 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F429xI.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F429xI.ld @@ -48,4 +48,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L052x6.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L052x6.ld index 4655e3fbe..e5ebcb88a 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L052x6.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L052x6.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L052x8.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L052x8.ld index 417adf567..faccde1ec 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L052x8.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L052x8.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L053x8.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L053x8.ld index eb5f14e14..108e7f2c3 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L053x8.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L053x8.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L151x6.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L151x6.ld index 8505b74cb..5352ae208 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L151x6.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L151x6.ld @@ -39,4 +39,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L152xB.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L152xB.ld index 334075283..32ffdf596 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L152xB.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L152xB.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L152xE.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L152xE.ld index e2e89310c..d6ad839a2 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L152xE.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L152xE.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L476xG.ld b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L476xG.ld index c88c78a94..060e79072 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L476xG.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/ld/STM32L476xG.ld @@ -47,4 +47,7 @@ REGION_ALIAS("DATA_RAM", ram0); /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0);
+/* RAM region to be used for the default heap.*/
+REGION_ALIAS("HEAP_RAM", ram0);
+
INCLUDE rules.ld
diff --git a/os/common/ports/ARMCMx/compilers/GCC/rules.ld b/os/common/ports/ARMCMx/compilers/GCC/rules.ld index 0ecb156cc..70c0bc3cd 100644 --- a/os/common/ports/ARMCMx/compilers/GCC/rules.ld +++ b/os/common/ports/ARMCMx/compilers/GCC/rules.ld @@ -224,9 +224,13 @@ SECTIONS . = ALIGN(4);
__ram7_free__ = .;
} > ram7
-}
-/* Heap default boundaries, it is defaulted to be the non-used part
- of ram0 region.*/
-__heap_base__ = __ram0_free__;
-__heap_end__ = __ram0_end__;
+ /* The default heap uses the (statically) unused part of a RAM section.*/
+ .heap (NOLOAD) :
+ {
+ . = ALIGN(8);
+ __heap_base__ = .;
+ . = ORIGIN(HEAP_RAM) + LENGTH(HEAP_RAM);
+ __heap_end__ = .;
+ } > HEAP_RAM
+}
|