Skip to content

Commit b140fd0

Browse files
authored
Merge pull request #12369 from hugueskamba/hk-fixlpc1768-baremetal
LPC1768: Fix ARM toolchain baremetal by defining 2 memory region
2 parents 841b846 + 193e49c commit b140fd0

File tree

1 file changed

+19
-7
lines changed
  • targets/TARGET_NXP/TARGET_LPC176X/device/TOOLCHAIN_ARM_STD

1 file changed

+19
-7
lines changed

targets/TARGET_NXP/TARGET_LPC176X/device/TOOLCHAIN_ARM_STD/LPC1768.sct

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,22 @@
88
#define MBED_APP_SIZE 0x80000
99
#endif
1010

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+
1119
#if !defined(MBED_BOOT_STACK_SIZE)
1220
#define MBED_BOOT_STACK_SIZE 0x400
1321
#endif
1422

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)
1627

1728
LR_IROM1 MBED_APP_START MBED_APP_SIZE { ; load region size_region
1829
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
2839
}
2940
; 8_byte_aligned(49 vect * 4 bytes) = 8_byte_aligned(0xC4) = 0xC8
3041
; 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)
3344
}
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)) {
3546
}
36-
RW_IRAM2 0x2007C000 0x4000 { ; RW data, ETH RAM
47+
RW_IRAM2 0x2007C000 0x4000 { ; RW data, USB RAM
3748
.ANY (AHBSRAM0)
38-
.ANY2 (+RW +ZI)
3949
}
4050
RW_IRAM3 0x20080000 0x4000 { ; RW data, ETH RAM
4151
.ANY (AHBSRAM1)
42-
.ANY3 (+RW +ZI)
4352
}
4453
RW_IRAM4 0x40038000 0x0800 { ; RW data, CAN RAM
4554
.ANY (CANRAM)
4655
}
56+
57+
ARM_LIB_STACK (MBED_RAM_START+MBED_RAM_SIZE) EMPTY -MBED_BOOT_STACK_SIZE { ; stack
58+
}
4759
}

0 commit comments

Comments
 (0)