|
16 | 16 |
|
17 | 17 | /* Linker script to configure memory regions. */ |
18 | 18 |
|
19 | | -/* Default to no softdevice */ |
20 | | -#if !defined(MBED_APP_START) |
21 | | - #define MBED_APP_START 0x0 |
22 | | -#endif |
23 | | - |
24 | | -#if !defined(MBED_APP_SIZE) |
25 | | - #define MBED_APP_SIZE 0x100000 |
26 | | -#endif |
27 | | - |
28 | | -#if !defined(MBED_RAM_START) |
29 | | - #define MBED_RAM_START 0x20000000 |
30 | | - #define MBED_RAM_SIZE 0x40000 |
31 | | -#endif |
32 | | - |
33 | 19 | #if !defined(MBED_CONF_TARGET_BOOT_STACK_SIZE) |
34 | 20 | #define MBED_CONF_TARGET_BOOT_STACK_SIZE 0x800 |
35 | 21 | #endif |
36 | | - |
37 | | -#define MBED_RAM0_START MBED_RAM_START |
38 | | -#define MBED_RAM0_SIZE 0x100 |
39 | | - |
40 | | -#define MBED_CRASH_REPORT_RAM_START (MBED_RAM0_START + MBED_RAM0_SIZE) |
41 | 22 | #define MBED_CRASH_REPORT_RAM_SIZE 0x100 |
42 | 23 |
|
43 | | -#define MBED_RAM1_START (MBED_CRASH_REPORT_RAM_START + MBED_CRASH_REPORT_RAM_SIZE) |
44 | | -#define MBED_RAM1_SIZE (MBED_RAM_SIZE - (MBED_RAM0_SIZE + MBED_CRASH_REPORT_RAM_SIZE)) |
45 | | - |
46 | 24 | MEMORY |
47 | 25 | { |
48 | | - FLASH (rx) : ORIGIN = MBED_APP_START, LENGTH = MBED_APP_SIZE |
49 | | - RAM_NVIC (rwx) : ORIGIN = MBED_RAM0_START, LENGTH = MBED_RAM0_SIZE |
50 | | - RAM_CRASH_DATA (rwx) : ORIGIN = MBED_CRASH_REPORT_RAM_START, LENGTH = MBED_CRASH_REPORT_RAM_SIZE |
51 | | - RAM (rwx) : ORIGIN = MBED_RAM1_START, LENGTH = MBED_RAM1_SIZE |
| 26 | + FLASH (rx) : ORIGIN = MBED_CONFIGURED_ROM_BANK_IROM1_START, LENGTH = MBED_CONFIGURED_ROM_BANK_IROM1_SIZE |
| 27 | + RAM (rwx) : ORIGIN = MBED_RAM_BANK_IRAM1_START, LENGTH = MBED_RAM_BANK_IRAM1_SIZE |
52 | 28 | } |
53 | 29 |
|
54 | | - |
55 | 30 | OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") |
56 | 31 |
|
57 | 32 | /* Linker script to place sections and symbol values. Should be used together |
@@ -84,6 +59,28 @@ ENTRY(Reset_Handler) |
84 | 59 |
|
85 | 60 | SECTIONS |
86 | 61 | { |
| 62 | + /* RAM vector table */ |
| 63 | + .nvictable (NOLOAD) : |
| 64 | + { |
| 65 | + PROVIDE(__start_nvictable = .); |
| 66 | + KEEP(*(.nvictable)) |
| 67 | + PROVIDE(__stop_nvictable = .); |
| 68 | + } > RAM |
| 69 | + |
| 70 | + /* Crash data RAM (preserved across resets) */ |
| 71 | + .crash_data_ram (NOLOAD): |
| 72 | + { |
| 73 | + . = ALIGN(8); |
| 74 | + __CRASH_DATA_RAM__ = .; |
| 75 | + __CRASH_DATA_RAM_START__ = .; /* Create a global symbol at data start */ |
| 76 | + . += MBED_CRASH_REPORT_RAM_SIZE; |
| 77 | + __CRASH_DATA_RAM_END__ = .; /* Define a global symbol at data end */ |
| 78 | + |
| 79 | + /* Include any used-defined data in the crash data RAM */ |
| 80 | + KEEP(*(.keep.crash_data_ram)) |
| 81 | + *(.m_crash_data_ram) |
| 82 | + } > RAM |
| 83 | + |
87 | 84 | .text : |
88 | 85 | { |
89 | 86 | KEEP(*(.Vectors)) |
@@ -201,25 +198,6 @@ SECTIONS |
201 | 198 |
|
202 | 199 | __edata = .; |
203 | 200 |
|
204 | | - .nvictable (NOLOAD) : |
205 | | - { |
206 | | - PROVIDE(__start_nvictable = .); |
207 | | - KEEP(*(.nvictable)) |
208 | | - PROVIDE(__stop_nvictable = .); |
209 | | - } > RAM_NVIC |
210 | | - |
211 | | - .crash_data_ram : |
212 | | - { |
213 | | - . = ALIGN(8); |
214 | | - __CRASH_DATA_RAM__ = .; |
215 | | - __CRASH_DATA_RAM_START__ = .; /* Create a global symbol at data start */ |
216 | | - KEEP(*(.keep.crash_data_ram)) |
217 | | - *(.m_crash_data_ram) /* This is a user defined section */ |
218 | | - . += MBED_CRASH_REPORT_RAM_SIZE; |
219 | | - . = ALIGN(8); |
220 | | - __CRASH_DATA_RAM_END__ = .; /* Define a global symbol at data end */ |
221 | | - } > RAM_CRASH_DATA |
222 | | - |
223 | 201 | .noinit (NOLOAD) : |
224 | 202 | { |
225 | 203 | PROVIDE(__start_noinit = .); |
|
0 commit comments