From 49cdbbfe5d425391ae735c4bbc30866eec1e3d12 Mon Sep 17 00:00:00 2001 From: ban4jp Date: Sun, 25 May 2014 18:03:50 +0900 Subject: [PATCH] [KLXX] Added RPC + RTOS support --- libraries/rpc/parse_pins.cpp | 24 ++++++++++++------------ libraries/rtos/rtx/RTX_CM_lib.h | 3 +++ libraries/rtos/rtx/RTX_Conf_CM.c | 6 +++--- libraries/tests/mbed/rpc/main.cpp | 4 ++++ workspace_tools/tests.py | 21 ++++++++++----------- 5 files changed, 32 insertions(+), 26 deletions(-) diff --git a/libraries/rpc/parse_pins.cpp b/libraries/rpc/parse_pins.cpp index 1e69015c7a..d0779441f6 100644 --- a/libraries/rpc/parse_pins.cpp +++ b/libraries/rpc/parse_pins.cpp @@ -26,7 +26,7 @@ PinName parse_pins(const char *str) { static const PinName pin_names[] = {dp1, dp2, dp4, dp5, dp6, dp9, dp10, dp11 , dp13, dp14, dp15, dp16, dp17, dp18, dp23 , dp24, dp25, dp26, dp27, dp28}; -#elif defined(TARGET_LPC4088) +#elif defined(TARGET_LPC4088) static const PinName pin_names[] = {p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 , p15, p16, p17, p18, p19, p20, NC, NC, p23 , p24, p25, p26, p27, p28, p29, p30, p31, p32 @@ -43,19 +43,19 @@ PinName parse_pins(const char *str) { } return port_pin((PortName)port, pin); -#elif defined(TARGET_KL25Z) || defined(TARGET_K64F) - if (str[0] == 'P' && str[1] == 'T') { // PTx_n - uint32_t port = str[2] - 'A'; - uint32_t pin = str[3] - '0'; // PTxn - uint32_t pin2 = str[4] - '0'; // PTxnn +#elif defined(TARGET_KL25Z) || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_K64F) + if (str[0] == 'P' && str[1] == 'T') { // PTxn + uint32_t port = str[2] - 'A'; + uint32_t pin = str[3] - '0'; // PTxn + uint32_t pin2 = str[4] - '0'; // PTxnn - if (pin2 <= 9) { - pin = pin * 10 + pin2; - } - return port_pin((PortName)port, pin); + if (pin2 <= 9) { + pin = pin * 10 + pin2; + } + return port_pin((PortName)port, pin); #endif -#if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) +#if defined(TARGET_LPC1768) || defined(TARGET_LPC11U24) || defined(TARGET_LPC2368) } else if (str[0] == 'p') { // pn uint32_t pin = str[1] - '0'; // pn uint32_t pin2 = str[2] - '0'; // pnn @@ -66,7 +66,7 @@ PinName parse_pins(const char *str) { return NC; } return pin_names[pin - 5]; -#elif defined(TARGET_LPC4088) +#elif defined(TARGET_LPC4088) } else if (str[0] == 'p') { // pn uint32_t pin = str[1] - '0'; // pn uint32_t pin2 = str[2] - '0'; // pnn diff --git a/libraries/rtos/rtx/RTX_CM_lib.h b/libraries/rtos/rtx/RTX_CM_lib.h index 8c0e2815fc..5524f94ffa 100644 --- a/libraries/rtos/rtx/RTX_CM_lib.h +++ b/libraries/rtos/rtx/RTX_CM_lib.h @@ -223,6 +223,9 @@ osThreadDef_t os_thread_def_main = {(os_pthread)main, osPriorityNormal, 0, NULL} #elif defined(TARGET_KL46Z) #define INITIAL_SP (0x20006000UL) +#elif defined(TARGET_KL05Z) +#define INITIAL_SP (0x20000C00UL) + #elif defined(TARGET_LPC4088) #define INITIAL_SP (0x10010000UL) diff --git a/libraries/rtos/rtx/RTX_Conf_CM.c b/libraries/rtos/rtx/RTX_Conf_CM.c index 20ef627ef3..0c5f753ad0 100644 --- a/libraries/rtos/rtx/RTX_Conf_CM.c +++ b/libraries/rtos/rtx/RTX_Conf_CM.c @@ -53,7 +53,7 @@ || defined(TARGET_KL46Z) || defined(TARGET_STM32F407) || defined(TARGET_F407VG) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) # define OS_TASKCNT 14 # elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPC1114) \ - || defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8) + || defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_KL05Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8) # define OS_TASKCNT 6 # else # error "no target defined" @@ -66,7 +66,7 @@ || defined(TARGET_KL46Z) || defined(TARGET_STM32F407) || defined(TARGET_F407VG) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) || defined(TARGET_LPC11U68) # define OS_SCHEDULERSTKSIZE 256 # elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPC1114) \ - || defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8) + || defined(TARGET_LPC812) || defined(TARGET_KL25Z) || defined(TARGET_KL05Z) || defined(TARGET_STM32F100RB) || defined(TARGET_STM32F051R8) # define OS_SCHEDULERSTKSIZE 128 # else # error "no target defined" @@ -115,7 +115,7 @@ # elif defined(TARGET_LPC1347) || defined(TARGET_STM32F303VC) || defined(TARGET_LPC1549) # define OS_CLOCK 72000000 -# elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPC1114) || defined(TARGET_KL25Z) || defined(TARGET_KL46Z) || defined(TARGET_STM32F051R8) || defined(TARGET_LPC11U68) +# elif defined(TARGET_LPC11U24) || defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501) || defined(TARGET_LPC1114) || defined(TARGET_KL25Z) || defined(TARGET_KL05Z) || defined(TARGET_KL46Z) || defined(TARGET_STM32F051R8) || defined(TARGET_LPC11U68) # define OS_CLOCK 48000000 # elif defined(TARGET_LPC812) diff --git a/libraries/tests/mbed/rpc/main.cpp b/libraries/tests/mbed/rpc/main.cpp index a8336c3ed0..9912c671b6 100644 --- a/libraries/tests/mbed/rpc/main.cpp +++ b/libraries/tests/mbed/rpc/main.cpp @@ -34,7 +34,11 @@ int main() { // Function RPCFunction rpc_foo(&foo, "foo"); +#if defined(TOOLCHAIN_ARM_MICRO) + RPC_TEST("/foo/run 1", "3.299999952316284"); +#else RPC_TEST("/foo/run 1", "3.2999999523162842"); +#endif // Class RPC::add_rpc_class(); diff --git a/workspace_tools/tests.py b/workspace_tools/tests.py index 65e68274f6..3917e07cce 100644 --- a/workspace_tools/tests.py +++ b/workspace_tools/tests.py @@ -359,7 +359,6 @@ TESTS = [ "id": "MBED_15", "description": "RPC", "source_dir": join(TEST_DIR, "mbed", "rpc"), "dependencies": [MBED_LIBRARIES, join(LIB_DIR, "rpc"), TEST_MBED_LIB], - "mcu": ["LPC1768"], "automated": True, }, { @@ -521,7 +520,7 @@ TESTS = [ "duration": 15, "automated": True, "host_test": "wait_us_auto", - "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "K64F", "KL46Z"], + "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "KL05Z", "K64F", "KL46Z"], }, { "id": "RTOS_2", "description": "Mutex resource lock", @@ -529,7 +528,7 @@ TESTS = [ "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], "duration": 20, "automated": True, - "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "K64F", "KL46Z"], + "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "KL05Z", "K64F", "KL46Z"], }, { "id": "RTOS_3", "description": "Semaphore resource lock", @@ -537,28 +536,28 @@ TESTS = [ "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], "duration": 20, "automated": True, - "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "K64F", "KL46Z"], + "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "KL05Z", "K64F", "KL46Z"], }, { "id": "RTOS_4", "description": "Signals messaging", "source_dir": join(TEST_DIR, "rtos", "mbed", "signals"), "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], "automated": True, - "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "K64F", "KL46Z"], + "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "KL05Z", "K64F", "KL46Z"], }, { "id": "RTOS_5", "description": "Queue messaging", "source_dir": join(TEST_DIR, "rtos", "mbed", "queue"), "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], "automated": True, - "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "K64F", "KL46Z"], + "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "KL05Z", "K64F", "KL46Z"], }, { "id": "RTOS_6", "description": "Mail messaging", "source_dir": join(TEST_DIR, "rtos", "mbed", "mail"), "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], "automated": True, - "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "K64F", "KL46Z"], + "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "KL05Z", "K64F", "KL46Z"], }, { "id": "RTOS_7", "description": "Timer", @@ -567,14 +566,14 @@ TESTS = [ "duration": 15, "automated": True, "host_test": "wait_us_auto", - "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "K64F", "KL46Z"], + "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "KL05Z", "K64F", "KL46Z"], }, { "id": "RTOS_8", "description": "ISR (Queue)", "source_dir": join(TEST_DIR, "rtos", "mbed", "isr"), "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB], "automated": True, - "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "K64F", "KL46Z"], + "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "KL05Z", "K64F", "KL46Z"], }, { "id": "RTOS_9", "description": "SD File write-read", @@ -582,7 +581,7 @@ TESTS = [ "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB, SD_FS, FAT_FS], "automated": True, "peripherals": ["SD"], - "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "K64F", "KL46Z"], + "mcu": ["LPC1768", "LPC11U24", "LPC812", "KL25Z", "KL05Z", "K64F", "KL46Z"], }, # Networking Tests @@ -806,7 +805,7 @@ TESTS = [ "id": "EXAMPLE_2", "description": "FS + RTOS", "source_dir": join(TEST_DIR, "mbed", "fs"), "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, TEST_MBED_LIB, SD_FS, FAT_FS], - } + }, ] # Group tests with the same goals into categories