8
8
#define MBED_APP_SIZE 0x80000
9
9
#endif
10
10
11
+ #if !defined(MBED_RAM_START)
12
+ #define MBED_RAM_START 0x10000000
13
+ #endif
14
+
15
+ #if !defined(MBED_RAM_SIZE)
16
+ #define MBED_RAM_SIZE 0x00008000
17
+ #endif
18
+
11
19
#if !defined(MBED_BOOT_STACK_SIZE)
12
20
#define MBED_BOOT_STACK_SIZE 0x400
13
21
#endif
14
22
15
- #define Stack_Size MBED_BOOT_STACK_SIZE
23
+ ; 8_byte_aligned(49 vect * 4 bytes) = 8_byte_aligned(0xC4) = 0xC8
24
+ #define VECTOR_SIZE 0xC8
25
+
26
+ #define RAM_FIXED_SIZE (MBED_BOOT_STACK_SIZE+VECTOR_SIZE+0x20)
16
27
17
28
LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region
18
29
ER_IROM0 MBED_APP_START 0x2FC { ; load address = execution address
@@ -28,20 +39,21 @@ LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region
28
39
}
29
40
; 8_byte_aligned(49 vect * 4 bytes) = 8_byte_aligned(0xC4) = 0xC8
30
41
; 32KB (RAM size) - 0xC8 (NIVT) - 32 (topmost 32 bytes used by IAP functions) = 0x7F18
31
- RW_IRAM1 0x100000C8 0x7F18-Stack_Size {
32
- .ANY1 (+RW +ZI)
42
+ RW_IRAM1 (MBED_RAM_START+VECTOR_SIZE) (MBED_RAM_SIZE-VECTOR_SIZE-0x20) { ; RW data
43
+ .ANY (+RW +ZI)
33
44
}
34
- ARM_LIB_STACK (0x100000C8+0x7F18) EMPTY -Stack_Size { ; stack
45
+ ARM_LIB_HEAP AlignExpr(+0, 16) EMPTY (MBED_RAM_SIZE-RAM_FIXED_SIZE+MBED_RAM_START-AlignExpr(ImageLimit(RW_IRAM1), 16)) {
35
46
}
36
- RW_IRAM2 0x2007C000 0x4000 { ; RW data, ETH RAM
47
+ RW_IRAM2 0x2007C000 0x4000 { ; RW data, USB RAM
37
48
.ANY (AHBSRAM0)
38
- .ANY2 (+RW +ZI)
39
49
}
40
50
RW_IRAM3 0x20080000 0x4000 { ; RW data, ETH RAM
41
51
.ANY (AHBSRAM1)
42
- .ANY3 (+RW +ZI)
43
52
}
44
53
RW_IRAM4 0x40038000 0x0800 { ; RW data, CAN RAM
45
54
.ANY (CANRAM)
46
55
}
56
+
57
+ ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -MBED_BOOT_STACK_SIZE { ; stack
58
+ }
47
59
}
0 commit comments