Skip to content

Commit b895bf6

Browse files
authored
Merge pull request #10401 from OpenNuvoton/nuvoton_nuc472_fix_crash_capture
NUC472: Support crash capture for no-XRAM configuration
2 parents 3b71f12 + faa28b5 commit b895bf6

File tree

4 files changed

+31
-5
lines changed
  • targets/TARGET_NUVOTON/TARGET_NUC472/device
    • TOOLCHAIN_ARM_MICRO/TARGET_NU_XRAM_UNSUPPORTED
    • TOOLCHAIN_ARM_STD/TARGET_NU_XRAM_UNSUPPORTED
    • TOOLCHAIN_GCC_ARM/TARGET_NU_XRAM_UNSUPPORTED
    • TOOLCHAIN_IAR/TARGET_NU_XRAM_UNSUPPORTED

4 files changed

+31
-5
lines changed

targets/TARGET_NUVOTON/TARGET_NUC472/device/TOOLCHAIN_ARM_MICRO/TARGET_NU_XRAM_UNSUPPORTED/NUC472.sct

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ LR_IROM1 MBED_APP_START MBED_APP_SIZE {
4242
*/
4343
ER_IRAMVEC AlignExpr(+0, 1024) EMPTY VECTOR_SIZE { ; Reserve for vectors
4444
}
45-
45+
46+
RW_m_crash_data AlignExpr(+0, 0x100) EMPTY 0x100 { ; Reserve for crash data storage
47+
}
48+
4649
RW_IRAM1 AlignExpr(+0, 16) { ; 16 byte-aligned
4750
.ANY (+RW +ZI)
4851
}

targets/TARGET_NUVOTON/TARGET_NUC472/device/TOOLCHAIN_ARM_STD/TARGET_NU_XRAM_UNSUPPORTED/NUC472.sct

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ LR_IROM1 MBED_APP_START {
3131
ER_IRAMVEC AlignExpr(+0, 1024) EMPTY (4*(16 + 142)) { ; Reserve for vectors
3232
}
3333

34+
RW_m_crash_data AlignExpr(+0, 0x100) EMPTY 0x100 { ; Reserve for crash data storage
35+
}
36+
3437
RW_IRAM1 AlignExpr(+0, 16) { ; 16 byte-aligned
3538
.ANY (+RW +ZI)
3639
}

targets/TARGET_NUVOTON/TARGET_NUC472/device/TOOLCHAIN_GCC_ARM/TARGET_NU_XRAM_UNSUPPORTED/NUC472.ld

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#define MBED_BOOT_STACK_SIZE 0x400
1515
#endif
1616

17+
M_CRASH_DATA_RAM_SIZE = 0x100;
1718
StackSize = MBED_BOOT_STACK_SIZE;
1819

1920
MEMORY
@@ -132,7 +133,19 @@ SECTIONS
132133
. += __vector_size;
133134
PROVIDE(__end_vector_table__ = .);
134135
} > RAM_INTERN
135-
136+
137+
.crash_data_ram :
138+
{
139+
. = ALIGN(8);
140+
__CRASH_DATA_RAM__ = .;
141+
__CRASH_DATA_RAM_START__ = .; /* Create a global symbol at data start */
142+
KEEP(*(.keep.crash_data_ram))
143+
*(.m_crash_data_ram) /* This is a user defined section */
144+
. += M_CRASH_DATA_RAM_SIZE;
145+
. = ALIGN(8);
146+
__CRASH_DATA_RAM_END__ = .; /* Define a global symbol at data end */
147+
} > RAM_INTERN
148+
136149
.data :
137150
{
138151
PROVIDE( __etext = LOADADDR(.data) );

targets/TARGET_NUVOTON/TARGET_NUC472/device/TOOLCHAIN_IAR/TARGET_NU_XRAM_UNSUPPORTED/NUC472_442.icf

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,23 @@ define symbol __ICFEDIT_intvec_start__ = MBED_APP_START;
1010
define symbol __ICFEDIT_region_ROM_start__ = MBED_APP_START;
1111
define symbol __ICFEDIT_region_ROM_end__ = MBED_APP_START + MBED_APP_SIZE - 1;
1212
define symbol __ICFEDIT_region_IRAM_start__ = 0x20000000;
13-
define symbol __ICFEDIT_region_IRAM_end__ = 0x20010000 - 1;
13+
define symbol __ICFEDIT_region_IRAM_end__ = 0x2000FF00 - 1;
14+
define symbol __region_CRASH_DATA_RAM_start__ = 0x2000FF00;
15+
define symbol __region_CRASH_DATA_RAM_end__ = 0x20010000 - 1;
1416
/*-Sizes-*/
1517
define symbol __ICFEDIT_size_cstack__ = MBED_BOOT_STACK_SIZE;
1618
define symbol __ICFEDIT_size_heap__ = 0x8000;
1719
/**** End of ICF editor section. ###ICF###*/
1820

1921

2022
define memory mem with size = 4G;
21-
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
22-
define region IRAM_region = mem:[from __ICFEDIT_region_IRAM_start__ to __ICFEDIT_region_IRAM_end__];
23+
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
24+
define region IRAM_region = mem:[from __ICFEDIT_region_IRAM_start__ to __ICFEDIT_region_IRAM_end__];
25+
define region CRASH_DATA_RAM_region = mem:[from __region_CRASH_DATA_RAM_start__ to __region_CRASH_DATA_RAM_end__];
26+
27+
/* Define Crash Data Symbols */
28+
define exported symbol __CRASH_DATA_RAM_START__ = __region_CRASH_DATA_RAM_start__;
29+
define exported symbol __CRASH_DATA_RAM_END__ = __region_CRASH_DATA_RAM_end__;
2330

2431
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
2532
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };

0 commit comments

Comments
 (0)