|
29 | 29 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
30 | 30 |
|
31 | 31 | #if !defined(MBED_APP_START)
|
32 |
| - #define MBED_APP_START 0x08000000 |
| 32 | + #define MBED_APP_START 0x08000000 |
33 | 33 | #endif
|
34 | 34 |
|
| 35 | +; 1MB FLASH (0x100000) |
35 | 36 | #if !defined(MBED_APP_SIZE)
|
36 |
| - #define MBED_APP_SIZE 0x100000 |
| 37 | + #define MBED_APP_SIZE 0x100000 |
37 | 38 | #endif
|
38 | 39 |
|
39 |
| -#define MBED_RAM_START 0x20000000 |
40 |
| -#define MBED_RAM_SIZE 0x00018000 |
41 |
| -#define MBED_CRASH_REPORT_RAM_START (MBED_RAM_START) |
42 |
| -#define MBED_CRASH_REPORT_RAM_SIZE 0x100 |
43 |
| -#define MBED_RAM0_START (MBED_RAM_START + MBED_CRASH_REPORT_RAM_SIZE) |
44 |
| -#define MBED_RAM0_SIZE (MBED_RAM_SIZE - MBED_CRASH_REPORT_RAM_SIZE) |
| 40 | +; 128KB SRAM (0x20000) |
| 41 | +#if !defined(MBED_RAM_START) |
| 42 | + #define MBED_RAM_START 0x20000000 |
| 43 | +#endif |
| 44 | + |
| 45 | +; RW data 96k L4-SRAM1 |
| 46 | +#if !defined(MBED_RAM_SIZE) |
| 47 | + #define MBED_RAM_SIZE 0x18000 |
| 48 | +#endif |
| 49 | + |
| 50 | +#if !defined(MBED_RAM2_START) |
| 51 | +#define MBED_RAM2_START 0x10000000 |
| 52 | +#endif |
| 53 | + |
| 54 | +; RW data 32k L4-ECC-SRAM2 |
| 55 | +#if !defined(MBED_RAM2_SIZE) |
| 56 | +#define MBED_RAM2_SIZE 0x8000 |
| 57 | +#endif |
45 | 58 |
|
46 | 59 | #if !defined(MBED_BOOT_STACK_SIZE)
|
47 |
| - #define MBED_BOOT_STACK_SIZE 0x400 |
| 60 | + #define MBED_BOOT_STACK_SIZE 0x400 |
| 61 | +#endif |
| 62 | + |
| 63 | +; Total: 98 vectors = 392 bytes (0x188) to be reserved in RAM |
| 64 | +#if !defined(VECTOR_SIZE) |
| 65 | +#define VECTOR_SIZE 0x188 |
| 66 | +#endif |
| 67 | + |
| 68 | +; Crash report enabled as default |
| 69 | +#if !defined(MBED_CRASH_REPORT_RAM_SIZE) |
| 70 | +#define MBED_CRASH_REPORT_RAM_SIZE 0x100 |
48 | 71 | #endif
|
49 | 72 |
|
50 |
| -#define Stack_Size MBED_BOOT_STACK_SIZE |
| 73 | +;Vectors + Crash report - Fixed at start of RAM2 in sequence |
| 74 | +#define MBED_IRAM2_SIZE (MBED_RAM2_SIZE - VECTOR_SIZE - MBED_CRASH_REPORT_RAM_SIZE) |
| 75 | + |
| 76 | +#define MBED_CRASH_REPORT_RAM_START (MBED_RAM2_START + VECTOR_SIZE) |
| 77 | +#define MBED_IRAM2_START (MBED_CRASH_REPORT_RAM_START + MBED_CRASH_REPORT_RAM_SIZE) |
51 | 78 |
|
52 |
| -; 1MB FLASH (0x100000) + 128KB SRAM (0x20000) |
53 |
| -LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region |
| 79 | +; Minimum heap should be larger then smallest RAM bank (else can use |
| 80 | +; that bank for heap) and less then largest RAM bank. |
| 81 | +#define MINIMUM_HEAP 0x12000 |
| 82 | +#define RAM_FIXED_SIZE MBED_BOOT_STACK_SIZE |
54 | 83 |
|
55 |
| - ER_IROM1 MBED_APP_START MBED_APP_SIZE { ; load address = execution address |
| 84 | +;Splitting the RW and ZI section in IRAM1 (MBED_RAM_SIZE-MINIMUM_HEAP = 0x6000 available) |
| 85 | +;and IRAM2 (MBED_IRAM2_SIZE = 0x7D78 available) |
| 86 | +LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region |
| 87 | + |
| 88 | + ER_IROM1 MBED_APP_START MBED_APP_SIZE { ; load address = execution address |
56 | 89 | *.o (RESET, +First)
|
57 | 90 | *(InRoot$$Sections)
|
58 | 91 | .ANY (+RO)
|
59 | 92 | }
|
60 |
| - RW_m_crash_data MBED_CRASH_REPORT_RAM_START EMPTY MBED_CRASH_REPORT_RAM_SIZE { ; RW data |
| 93 | + |
| 94 | + RW_m_crash_data MBED_CRASH_REPORT_RAM_START EMPTY MBED_CRASH_REPORT_RAM_SIZE { ; RW data |
61 | 95 | }
|
62 |
| - RW_IRAM1 MBED_RAM0_START MBED_RAM0_SIZE-Stack_Size { ; RW data 96k L4-SRAM1 |
63 |
| - .ANY (+RW, +Last) |
| 96 | + |
| 97 | + RW_IRAM1 MBED_RAM_START (MBED_RAM_SIZE-MINIMUM_HEAP) { ; RW data |
| 98 | + .ANY (+RW +ZI) |
64 | 99 | }
|
65 |
| - ; Total: 98 vectors = 392 bytes (0x188) to be reserved in RAM |
66 |
| - RW_IRAM2 (0x10000000+0x188) (0x08000-0x188) { ; ZI data 32k L4-ECC-SRAM2 |
67 |
| - .ANY (+ZI) |
| 100 | + |
| 101 | + ARM_LIB_HEAP AlignExpr(+0, 16) EMPTY (MBED_RAM_SIZE-RAM_FIXED_SIZE+MBED_RAM_START-AlignExpr(ImageLimit(RW_IRAM1), 16)) { |
68 | 102 | }
|
69 |
| - ARM_LIB_STACK (MBED_RAM0_START+MBED_RAM0_SIZE) EMPTY -Stack_Size { ; stack |
| 103 | + |
| 104 | + RW_IRAM2 MBED_IRAM2_START MBED_IRAM2_SIZE { |
| 105 | + .ANY (+RW +ZI) |
70 | 106 | }
|
71 |
| -} |
72 | 107 |
|
| 108 | + ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -MBED_BOOT_STACK_SIZE { ; stack |
| 109 | + } |
| 110 | +} |
0 commit comments