Support bare-metal build for NXP LPC1114

pull/12623/head
toyowata 2020-02-25 16:50:19 +09:00
parent a707fd133e
commit d6779bb930
8 changed files with 39 additions and 10 deletions

View File

@ -23,6 +23,11 @@
using namespace utest::v1;
// TODO HACK, replace with available ram/heap property
#if defined(TARGET_LPC1114)
#error [NOT_SUPPORTED] Insufficient heap for heap block device tests
#else
#define TEST_BLOCK_SIZE 128
#define TEST_BLOCK_DEVICE_SIZE 32*TEST_BLOCK_SIZE
#define TEST_BLOCK_COUNT 10

View File

@ -24,6 +24,11 @@
using namespace utest::v1;
// TODO HACK, replace with available ram/heap property
#if defined(TARGET_LPC1114)
#error [NOT_SUPPORTED] Insufficient heap for heap block device tests
#else
#define BLOCK_COUNT 16
#define BLOCK_SIZE 512

View File

@ -26,6 +26,11 @@
using namespace utest::v1;
// TODO HACK, replace with available ram/heap property
#if defined(TARGET_LPC1114)
#error [NOT_SUPPORTED] Insufficient heap for heap block device tests
#else
#define BLOCK_COUNT 16
#define BLOCK_SIZE 512

View File

@ -20,4 +20,3 @@ LR_IROM1 0x00000000 0x8000 { ; load region size_region (32k)
ARM_LIB_STACK (0x100000C0+0xF40) EMPTY -Stack_Size { ; stack
}
}

View File

@ -153,4 +153,4 @@ SECTIONS
/* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed with stack")
}
}

View File

@ -213,4 +213,3 @@ Reset_Handler:
def_irq_default_handler DEF_IRQHandler
.end

View File

@ -60,8 +60,9 @@ void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
static volatile uint32_t* vectors = (uint32_t*)NVIC_RAM_VECTOR_ADDRESS;
// Copy and switch to dynamic vectors if first time called
if((LPC_SYSCON->SYSMEMREMAP & 0x3) != 0x1) {
uint32_t *old_vectors = (uint32_t *)0; // FLASH vectors are at 0x0
if((LPC_SYSCON->SYSMEMREMAP & 0x3) != 0x1) {
// Add volatile qualifier to avoid armclang aggressive optimization
volatile uint32_t *old_vectors = (uint32_t *)0; // FLASH vectors are at 0x0
for(i = 0; i < NVIC_NUM_VECTORS; i++) {
vectors[i] = old_vectors[i];
}

View File

@ -266,7 +266,7 @@
"LPCTarget"
],
"core": "Cortex-M0",
"default_toolchain": "uARM",
"default_toolchain": "ARM",
"extra_labels": [
"NXP",
"LPC11XX_11CXX",
@ -278,7 +278,6 @@
],
"supported_toolchains": [
"ARM",
"uARM",
"GCC_ARM",
"IAR"
],
@ -295,11 +294,27 @@
"SLEEP",
"SPI",
"SPISLAVE",
"STDIO_MESSAGES"
"STDIO_MESSAGES",
"USTICKER"
],
"default_lib": "small",
"overrides": {
"tickless-from-us-ticker": true,
"boot-stack-size": "0x300"
},
"supported_c_libs": {
"arm": [
"std", "small"
],
"gcc_arm": [
"std", "small"
],
"iar": [
"std"
]
},
"c_lib": "small",
"release_versions": [
"2"
"2", "5"
],
"device_name": "LPC1114FN28/102",
"detect_code": [