From 519b52181fdcbabc24da1f1ddf8a2a6899e80c88 Mon Sep 17 00:00:00 2001 From: jeromecoutant Date: Tue, 6 Sep 2016 17:35:37 +0200 Subject: [PATCH 1/5] [STM32F070RB] correct INITIAL_SP --- rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h b/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h index 8f7d7a9cab..30e4f43282 100644 --- a/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h +++ b/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h @@ -499,9 +499,6 @@ osThreadDef_t os_thread_def_main = {(os_pthread)pre_main, osPriorityNormal, 1U, #elif defined(TARGET_STM32F429ZI) || defined(TARGET_UBLOX_C029) #define INITIAL_SP (0x20030000UL) -#elif defined(TARGET_STM32F072RB) -#define INITIAL_SP (0x20004000UL) - #elif defined(TARGET_STM32F091RC) #define INITIAL_SP (0x20008000UL) @@ -532,8 +529,8 @@ osThreadDef_t os_thread_def_main = {(os_pthread)pre_main, osPriorityNormal, 1U, #elif defined(TARGET_STM32F446RE) || defined(TARGET_STM32F446VE) || defined(TARGET_STM32F446ZE) #define INITIAL_SP (0x20020000UL) -#elif defined(TARGET_STM32F070RB) -#define INITIAL_SP (0x20002000UL) +#elif defined(TARGET_STM32F072RB) || defined(TARGET_STM32F070RB) +#define INITIAL_SP (0x20004000UL) #elif defined(TARGET_STM32L432KC) #define INITIAL_SP (0x2000C000UL) From 536e006a196ec2f18d7e031e674853da7fe63394 Mon Sep 17 00:00:00 2001 From: jeromecoutant Date: Wed, 7 Sep 2016 15:32:05 +0200 Subject: [PATCH 2/5] STM32F070RB/STM32F072RB: RTOS tests Make all RTOS tests OK --- libraries/tests/rtos/mbed/basic/main.cpp | 4 +++- libraries/tests/rtos/mbed/isr/main.cpp | 2 ++ libraries/tests/rtos/mbed/mail/main.cpp | 2 ++ libraries/tests/rtos/mbed/mutex/main.cpp | 6 ++---- libraries/tests/rtos/mbed/queue/main.cpp | 2 ++ libraries/tests/rtos/mbed/semaphore/main.cpp | 8 +++----- libraries/tests/rtos/mbed/signals/main.cpp | 2 ++ 7 files changed, 16 insertions(+), 10 deletions(-) diff --git a/libraries/tests/rtos/mbed/basic/main.cpp b/libraries/tests/rtos/mbed/basic/main.cpp index d3de4f6a36..d9a3ff6068 100644 --- a/libraries/tests/rtos/mbed/basic/main.cpp +++ b/libraries/tests/rtos/mbed/basic/main.cpp @@ -13,7 +13,9 @@ */ #if (defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/2 -#elif (defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB)) && defined(TOOLCHAIN_GCC) +#elif defined(TARGET_STM32F030R8) && defined(TOOLCHAIN_GCC) + #define STACK_SIZE DEFAULT_STACK_SIZE/2 +#elif defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB)) #define STACK_SIZE DEFAULT_STACK_SIZE/2 #elif (defined(TARGET_STM32F030R8)) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/2 diff --git a/libraries/tests/rtos/mbed/isr/main.cpp b/libraries/tests/rtos/mbed/isr/main.cpp index 15e91b8b02..8a7c7804d1 100644 --- a/libraries/tests/rtos/mbed/isr/main.cpp +++ b/libraries/tests/rtos/mbed/isr/main.cpp @@ -28,6 +28,8 @@ #define STACK_SIZE 1536 #elif defined(TARGET_MCU_NRF51822) #define STACK_SIZE 768 +#elif (defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB)) + #define STACK_SIZE DEFAULT_STACK_SIZE/2 #else #define STACK_SIZE DEFAULT_STACK_SIZE #endif diff --git a/libraries/tests/rtos/mbed/mail/main.cpp b/libraries/tests/rtos/mbed/mail/main.cpp index caed3b2dc2..5c2ea7f6b5 100644 --- a/libraries/tests/rtos/mbed/mail/main.cpp +++ b/libraries/tests/rtos/mbed/mail/main.cpp @@ -36,6 +36,8 @@ typedef struct { #define STACK_SIZE 1536 #elif defined(TARGET_MCU_NRF51822) #define STACK_SIZE 768 +#elif (defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB)) + #define STACK_SIZE DEFAULT_STACK_SIZE/2 #else #define STACK_SIZE DEFAULT_STACK_SIZE #endif diff --git a/libraries/tests/rtos/mbed/mutex/main.cpp b/libraries/tests/rtos/mbed/mutex/main.cpp index 20aed9c228..d637e14f98 100644 --- a/libraries/tests/rtos/mbed/mutex/main.cpp +++ b/libraries/tests/rtos/mbed/mutex/main.cpp @@ -16,15 +16,13 @@ */ #if (defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/4 -#elif (defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB)) && defined(TOOLCHAIN_GCC) +#elif (defined(TARGET_STM32F030R8)) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/4 #elif defined(TARGET_STM32F334R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/4 #elif defined(TARGET_STM32F030R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/4 -#elif defined(TARGET_STM32F070RB) && defined(TOOLCHAIN_IAR) - #define STACK_SIZE DEFAULT_STACK_SIZE/2 -#elif defined(TARGET_STM32F072RB) && defined(TOOLCHAIN_IAR) +#elif (defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB)) #define STACK_SIZE DEFAULT_STACK_SIZE/2 #elif defined(TARGET_STM32F302R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/2 diff --git a/libraries/tests/rtos/mbed/queue/main.cpp b/libraries/tests/rtos/mbed/queue/main.cpp index 7dd8b50edf..a7821f1371 100644 --- a/libraries/tests/rtos/mbed/queue/main.cpp +++ b/libraries/tests/rtos/mbed/queue/main.cpp @@ -36,6 +36,8 @@ typedef struct { #define STACK_SIZE 1536 #elif defined(TARGET_MCU_NRF51822) #define STACK_SIZE 768 +#elif (defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB)) + #define STACK_SIZE DEFAULT_STACK_SIZE/2 #else #define STACK_SIZE DEFAULT_STACK_SIZE #endif diff --git a/libraries/tests/rtos/mbed/semaphore/main.cpp b/libraries/tests/rtos/mbed/semaphore/main.cpp index 63b8121baf..53cd8675ba 100644 --- a/libraries/tests/rtos/mbed/semaphore/main.cpp +++ b/libraries/tests/rtos/mbed/semaphore/main.cpp @@ -17,18 +17,16 @@ */ #if (defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/16 -#elif (defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB)) && defined(TOOLCHAIN_GCC) +#elif (defined(TARGET_STM32F030R8)) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/8 +#elif (defined(TARGET_STM32F072RB) || defined(TARGET_STM32F070RB)) + #define STACK_SIZE DEFAULT_STACK_SIZE/2 #elif defined(TARGET_STM32F334R8) && (defined(TOOLCHAIN_GCC) || defined(TOOLCHAIN_IAR)) #define STACK_SIZE DEFAULT_STACK_SIZE/4 #elif defined(TARGET_STM32F103RB) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/4 #elif defined(TARGET_STM32F030R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/4 -#elif defined(TARGET_STM32F070RB) && defined(TOOLCHAIN_IAR) - #define STACK_SIZE DEFAULT_STACK_SIZE/2 -#elif defined(TARGET_STM32F072RB) && defined(TOOLCHAIN_IAR) - #define STACK_SIZE DEFAULT_STACK_SIZE/2 #elif defined(TARGET_STM32F302R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/2 #elif defined(TARGET_STM32F303K8) && defined(TOOLCHAIN_IAR) diff --git a/libraries/tests/rtos/mbed/signals/main.cpp b/libraries/tests/rtos/mbed/signals/main.cpp index 65b3ce038a..43f028e1c4 100644 --- a/libraries/tests/rtos/mbed/signals/main.cpp +++ b/libraries/tests/rtos/mbed/signals/main.cpp @@ -27,6 +27,8 @@ #define STACK_SIZE 1536 #elif defined(TARGET_MCU_NRF51822) #define STACK_SIZE 768 +#elif (defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB)) + #define STACK_SIZE DEFAULT_STACK_SIZE/2 #else #define STACK_SIZE DEFAULT_STACK_SIZE #endif From 7eb69b041f3354c0091403812cda76433630f15e Mon Sep 17 00:00:00 2001 From: jeromecoutant Date: Wed, 7 Sep 2016 15:34:23 +0200 Subject: [PATCH 3/5] STM32F070RB/STM32F072RB: decrease thread_stack_main size Thread_stack_main is by default too large for this 16K target --- rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h | 1 + 1 file changed, 1 insertion(+) diff --git a/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h b/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h index 30e4f43282..f91cfeedd2 100644 --- a/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h +++ b/rtos/rtx/TARGET_CORTEX_M/RTX_CM_lib.h @@ -352,6 +352,7 @@ __attribute__((used)) void _mutex_release (OS_ID *mutex) { extern void pre_main (void); #if defined(TARGET_MCU_NRF51822) || defined(TARGET_MCU_NRF52832) || defined (TARGET_STM32F334R8) ||\ + defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB) || \ defined(TARGET_STM32F302R8) || defined(TARGET_STM32F303K8) || defined (TARGET_STM32F334C8) static uint32_t thread_stack_main[DEFAULT_STACK_SIZE / sizeof(uint32_t)]; #else From dc8957a046b5af4bfff9d6a0224807385114b14d Mon Sep 17 00:00:00 2001 From: jeromecoutant Date: Wed, 7 Sep 2016 15:38:03 +0200 Subject: [PATCH 4/5] STM32F070RB/STM32F072RB: issue with some mbedmicro-rtos-mbed tests Status is now OK --- TESTS/mbedmicro-rtos-mbed/mutex/main.cpp | 6 +++--- TESTS/mbedmicro-rtos-mbed/semaphore/main.cpp | 6 +++--- TESTS/mbedmicro-rtos-mbed/threads/main.cpp | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/TESTS/mbedmicro-rtos-mbed/mutex/main.cpp b/TESTS/mbedmicro-rtos-mbed/mutex/main.cpp index f8da3c15bf..05f38376c3 100644 --- a/TESTS/mbedmicro-rtos-mbed/mutex/main.cpp +++ b/TESTS/mbedmicro-rtos-mbed/mutex/main.cpp @@ -16,15 +16,15 @@ */ #if (defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/4 -#elif (defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB)) && defined(TOOLCHAIN_GCC) +#elif defined(TARGET_STM32F030R8) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/4 #elif defined(TARGET_STM32F334R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/4 #elif defined(TARGET_STM32F030R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/4 -#elif defined(TARGET_STM32F070RB) && defined(TOOLCHAIN_IAR) +#elif defined(TARGET_STM32F070RB) #define STACK_SIZE DEFAULT_STACK_SIZE/2 -#elif defined(TARGET_STM32F072RB) && defined(TOOLCHAIN_IAR) +#elif defined(TARGET_STM32F072RB) #define STACK_SIZE DEFAULT_STACK_SIZE/2 #elif defined(TARGET_STM32F302R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/2 diff --git a/TESTS/mbedmicro-rtos-mbed/semaphore/main.cpp b/TESTS/mbedmicro-rtos-mbed/semaphore/main.cpp index 7d625d59fe..9ea0282b79 100644 --- a/TESTS/mbedmicro-rtos-mbed/semaphore/main.cpp +++ b/TESTS/mbedmicro-rtos-mbed/semaphore/main.cpp @@ -17,7 +17,7 @@ */ #if (defined(TARGET_STM32L053R8) || defined(TARGET_STM32L053C8)) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/16 -#elif (defined(TARGET_STM32F030R8) || defined(TARGET_STM32F070RB)) && defined(TOOLCHAIN_GCC) +#elif defined(TARGET_STM32F030R8) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/8 #elif defined(TARGET_STM32F334R8) && (defined(TOOLCHAIN_GCC) || defined(TOOLCHAIN_IAR)) #define STACK_SIZE DEFAULT_STACK_SIZE/4 @@ -25,9 +25,9 @@ #define STACK_SIZE DEFAULT_STACK_SIZE/4 #elif defined(TARGET_STM32F030R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/4 -#elif defined(TARGET_STM32F070RB) && defined(TOOLCHAIN_IAR) +#elif defined(TARGET_STM32F070RB) #define STACK_SIZE DEFAULT_STACK_SIZE/2 -#elif defined(TARGET_STM32F072RB) && defined(TOOLCHAIN_IAR) +#elif defined(TARGET_STM32F072RB) #define STACK_SIZE DEFAULT_STACK_SIZE/2 #elif defined(TARGET_STM32F302R8) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/2 diff --git a/TESTS/mbedmicro-rtos-mbed/threads/main.cpp b/TESTS/mbedmicro-rtos-mbed/threads/main.cpp index cebe9b2f84..be0b3cd5ff 100644 --- a/TESTS/mbedmicro-rtos-mbed/threads/main.cpp +++ b/TESTS/mbedmicro-rtos-mbed/threads/main.cpp @@ -17,6 +17,8 @@ */ #if defined(TARGET_MCU_NRF51822) || defined(TARGET_MCU_NRF52832) #define STACK_SIZE 512 +#elif (defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB)) + #define STACK_SIZE 512 #else #define STACK_SIZE DEFAULT_STACK_SIZE #endif From 968d44d5dce5d8d8ee024c5c44a73279d574cf76 Mon Sep 17 00:00:00 2001 From: jeromecoutant Date: Wed, 7 Sep 2016 16:37:29 +0200 Subject: [PATCH 5/5] RTOS_1: patch correction --- libraries/tests/rtos/mbed/basic/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/tests/rtos/mbed/basic/main.cpp b/libraries/tests/rtos/mbed/basic/main.cpp index d9a3ff6068..907b88b414 100644 --- a/libraries/tests/rtos/mbed/basic/main.cpp +++ b/libraries/tests/rtos/mbed/basic/main.cpp @@ -15,7 +15,7 @@ #define STACK_SIZE DEFAULT_STACK_SIZE/2 #elif defined(TARGET_STM32F030R8) && defined(TOOLCHAIN_GCC) #define STACK_SIZE DEFAULT_STACK_SIZE/2 -#elif defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB)) +#elif defined(TARGET_STM32F070RB) || defined(TARGET_STM32F072RB) #define STACK_SIZE DEFAULT_STACK_SIZE/2 #elif (defined(TARGET_STM32F030R8)) && defined(TOOLCHAIN_IAR) #define STACK_SIZE DEFAULT_STACK_SIZE/2