Skip to content

Commit 3d65ace

Browse files
author
Arto Kinnunen
authored
Merge pull request #10950 from artokin/Update_freescale_K6xF_linker_files
Enable split heap in K64F/K66F devices
2 parents faf7f79 + d7190c8 commit 3d65ace

File tree

8 files changed

+37
-15
lines changed

8 files changed

+37
-15
lines changed

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_K66F/device/TOOLCHAIN_ARM_STD/MK66FN2M0xxx18.sct

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,12 @@ LR_IROM1 m_interrupts_start m_text_start+m_text_size-m_interrupts_start { ; lo
114114
RW_m_crash_data m_crash_report_ram_start EMPTY m_crash_report_ram_size { ; RW data
115115
}
116116
RW_m_data m_data_start m_data_size { ; RW data
117-
.ANY (+RW +ZI)
117+
.ANY2 (+RW +ZI)
118118
}
119119
RW_m_data_2 m_data_2_start m_data_2_size { ; RW data
120-
.ANY (+RW +ZI)
120+
.ANY1 (+RW +ZI)
121121
}
122-
RW_IRAM1 ImageLimit(RW_m_data_2) {
122+
RW_IRAM1 ImageLimit(RW_m_data_2) EMPTY 0 {
123123
}
124124
ARM_LIB_HEAP AlignExpr(+0, 16) EMPTY (m_data_2_start + m_data_2_size - Stack_Size - AlignExpr(ImageLimit(RW_IRAM1), 16)) { ; Heap region growing up
125125
}

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_K66F/device/TOOLCHAIN_GCC_ARM/MK66FN2M0xxx18.ld

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,14 @@ SECTIONS
225225
__data_end__ = .; /* define a global symbol at data end */
226226
} > m_data
227227

228+
.heap_0 :
229+
{
230+
. = ALIGN(8);
231+
__mbed_sbrk_start_0 = .;
232+
. += (ORIGIN(m_data) + LENGTH(m_data) - .);
233+
__mbed_krbs_start_0 = .;
234+
} > m_data
235+
228236
__DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
229237
text_end = ORIGIN(m_text) + LENGTH(m_text);
230238
ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
@@ -249,8 +257,10 @@ SECTIONS
249257
. = ALIGN(8);
250258
__end__ = .;
251259
PROVIDE(end = .);
260+
__mbed_sbrk_start = .;
252261
__HeapBase = .;
253262
. = ORIGIN(m_data_2) + LENGTH(m_data_2) - STACK_SIZE;
263+
__mbed_krbs_start = .;
254264
__HeapLimit = .;
255265
__heap_limit = .; /* Add for _sbrk */
256266
} > m_data_2

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/device/TOOLCHAIN_ARM_STD/MK64FN1M0xxx12.sct

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,12 @@ LR_IROM1 m_interrupts_start m_text_start+m_text_size-m_interrupts_start { ; load
118118
RW_m_crash_data m_crash_report_ram_start EMPTY m_crash_report_ram_size { ; RW data
119119
}
120120
RW_m_data m_data_start m_data_size { ; RW data
121-
.ANY (+RW +ZI)
121+
.ANY2 (+RW +ZI)
122122
}
123123
RW_m_data_2 m_data_2_start m_data_2_size { ; RW data
124-
.ANY (+RW +ZI)
124+
.ANY1 (+RW +ZI)
125125
}
126-
RW_IRAM1 ImageLimit(RW_m_data_2) {
126+
RW_IRAM1 ImageLimit(RW_m_data_2) EMPTY 0 {
127127
}
128128
ARM_LIB_HEAP AlignExpr(+0, 16) EMPTY (m_data_2_start + m_data_2_size - Stack_Size - AlignExpr(ImageLimit(RW_IRAM1), 16)) { ; Heap region growing up
129129
}

targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_MCU_K64F/device/TOOLCHAIN_GCC_ARM/MK64FN1M0xxx12.ld

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ SECTIONS
196196
. = ALIGN(8);
197197
__interrupts_ram_end__ = .; /* Define a global symbol at data end */
198198
} > m_data
199-
199+
200200
.crash_data_ram :
201201
{
202202
. = ALIGN(8);
@@ -209,6 +209,13 @@ SECTIONS
209209
__CRASH_DATA_RAM_END__ = .; /* Define a global symbol at data end */
210210
} > m_data
211211

212+
.heap_0 :
213+
{
214+
. = ALIGN(8);
215+
__mbed_sbrk_start_0 = .;
216+
. += (ORIGIN(m_data) + LENGTH(m_data) - .);
217+
__mbed_krbs_start_0 = .;
218+
} > m_data
212219

213220
__VECTOR_RAM = DEFINED(__ram_vector_table__) ? __VECTOR_RAM__ : ORIGIN(m_interrupts);
214221
__RAM_VECTOR_TABLE_SIZE_BYTES = DEFINED(__ram_vector_table__) ? (__interrupts_ram_end__ - __interrupts_ram_start__) : 0x0;
@@ -270,8 +277,10 @@ SECTIONS
270277
. = ALIGN(8);
271278
__end__ = .;
272279
PROVIDE(end = .);
280+
__mbed_sbrk_start = .;
273281
__HeapBase = .;
274282
. = ORIGIN(m_data_2) + LENGTH(m_data_2) - STACK_SIZE;
283+
__mbed_krbs_start = .;
275284
__HeapLimit = .;
276285
__heap_limit = .; /* Add for _sbrk */
277286
} > m_data_2

targets/targets.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1489,7 +1489,7 @@
14891489
"PSA"
14901490
],
14911491
"is_disk_virtual": true,
1492-
"macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED"],
1492+
"macros": ["CPU_MK64FN1M0VMD12", "FSL_RTOS_MBED", "MBED_SPLIT_HEAP"],
14931493
"inherits": ["Target"],
14941494
"detect_code": ["0240"],
14951495
"device_has": [
@@ -1781,7 +1781,7 @@
17811781
"PSA"
17821782
],
17831783
"is_disk_virtual": true,
1784-
"macros": ["CPU_MK66FN2M0VMD18", "FSL_RTOS_MBED"],
1784+
"macros": ["CPU_MK66FN2M0VMD18", "FSL_RTOS_MBED", "MBED_SPLIT_HEAP"],
17851785
"inherits": ["Target"],
17861786
"detect_code": ["0311"],
17871787
"device_has": [

tools/profiles/debug.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
"asm": [],
2727
"c": ["-D__ASSERT_MSG", "-std=gnu11"],
2828
"cxx": ["-fno-rtti", "-std=gnu++14"],
29-
"ld": ["--verbose", "--remove", "--show_full_path", "--legacyalign", "--keep=os_cb_sections"]
29+
"ld": ["--verbose", "--remove", "--show_full_path", "--legacyalign",
30+
"--any_contingency", "--keep=os_cb_sections"]
3031
},
3132
"ARM": {
3233
"common": ["-c", "--gnu", "-Otime", "--split_sections",
@@ -36,7 +37,7 @@
3637
"asm": [],
3738
"c": ["--md", "--no_depend_system_headers", "--c99", "-D__ASSERT_MSG"],
3839
"cxx": ["--cpp11", "--no_rtti", "--no_vla"],
39-
"ld": ["--show_full_path", "--keep=os_cb_sections"]
40+
"ld": ["--show_full_path", "--any_contingency", "--keep=os_cb_sections"]
4041
},
4142
"uARM": {
4243
"common": ["-c", "--gnu", "-Otime", "--split_sections",

tools/profiles/develop.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"asm": [],
2525
"c": ["-D__ASSERT_MSG", "-std=gnu11"],
2626
"cxx": ["-fno-rtti", "-std=gnu++14"],
27-
"ld": ["--show_full_path", "--legacyalign", "--keep=os_cb_sections"]
27+
"ld": ["--show_full_path", "--legacyalign", "--any_contingency",
28+
"--keep=os_cb_sections"]
2829
},
2930
"ARM": {
3031
"common": ["-c", "--gnu", "-Ospace", "--split_sections",
@@ -33,7 +34,7 @@
3334
"asm": [],
3435
"c": ["--md", "--no_depend_system_headers", "--c99", "-D__ASSERT_MSG"],
3536
"cxx": ["--cpp11", "--no_rtti", "--no_vla"],
36-
"ld": ["--show_full_path", "--keep=os_cb_sections"]
37+
"ld": ["--show_full_path", "--any_contingency", "--keep=os_cb_sections"]
3738
},
3839
"uARM": {
3940
"common": ["-c", "--gnu", "-Ospace", "--split_sections",

tools/profiles/release.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"asm": [],
2525
"c": ["-D__ASSERT_MSG", "-std=gnu11"],
2626
"cxx": ["-fno-rtti", "-std=gnu++14"],
27-
"ld": ["--show_full_path", "--legacyalign", "--keep=os_cb_sections"]
27+
"ld": ["--show_full_path", "--legacyalign", "--any_contingency",
28+
"--keep=os_cb_sections"]
2829
},
2930
"ARM": {
3031
"common": ["-c", "--gnu", "-Ospace", "--split_sections",
@@ -33,7 +34,7 @@
3334
"asm": [],
3435
"c": ["--md", "--no_depend_system_headers", "--c99", "-D__ASSERT_MSG"],
3536
"cxx": ["--cpp11", "--no_rtti", "--no_vla"],
36-
"ld": ["--show_full_path", "--keep=os_cb_sections"]
37+
"ld": ["--show_full_path", "--any_contingency", "--keep=os_cb_sections"]
3738
},
3839
"uARM": {
3940
"common": ["-c", "--gnu", "-Ospace", "--split_sections",

0 commit comments

Comments
 (0)