diff --git a/libraries/rtos/rtx/TARGET_CORTEX_M/cmsis_os.h b/libraries/rtos/rtx/TARGET_CORTEX_M/cmsis_os.h index c0171169b0..951f4193b4 100644 --- a/libraries/rtos/rtx/TARGET_CORTEX_M/cmsis_os.h +++ b/libraries/rtos/rtx/TARGET_CORTEX_M/cmsis_os.h @@ -56,6 +56,11 @@ #define CMSIS_OS_RTX +// __MBED_CMSIS_RTOS_CM captures our changes to the RTX kernel +#define __MBED_CMSIS_RTOS_CM +// we use __CMSIS_RTOS version, which changes some API in the kernel +#define __CMSIS_RTOS + // The stack space occupied is mainly dependent on the underling C standard library #if defined(TOOLCHAIN_GCC) || defined(TOOLCHAIN_ARM_STD) || defined(TOOLCHAIN_IAR) # define WORDS_STACK_SIZE 512 diff --git a/libraries/rtos/rtx/TARGET_CORTEX_M/rt_CMSIS.c b/libraries/rtos/rtx/TARGET_CORTEX_M/rt_CMSIS.c index 057fced7e3..5e33684bce 100644 --- a/libraries/rtos/rtx/TARGET_CORTEX_M/rt_CMSIS.c +++ b/libraries/rtos/rtx/TARGET_CORTEX_M/rt_CMSIS.c @@ -48,6 +48,10 @@ #error "Missing __CORTEX_Mx definition" #endif +// This affects cmsis_os only, as it's not used anywhere else. This was left by kernel team +// to suppress the warning in rt_tid2ptcb about incompatible pointer assignment. +#define os_thread_cb OS_TCB + #include "rt_TypeDef.h" #include "RTX_Config.h" #include "rt_System.h" @@ -62,8 +66,6 @@ #include "rt_Memory.h" #include "rt_HAL_CM.h" -#define os_thread_cb OS_TCB - #include "cmsis_os.h" #if (osFeature_Signals != 16) diff --git a/libraries/rtos/rtx/TARGET_CORTEX_M/rt_Task.h b/libraries/rtos/rtx/TARGET_CORTEX_M/rt_Task.h index 2fe14dccf9..cc360fc5c6 100644 --- a/libraries/rtos/rtx/TARGET_CORTEX_M/rt_Task.h +++ b/libraries/rtos/rtx/TARGET_CORTEX_M/rt_Task.h @@ -34,6 +34,8 @@ /* Definitions */ +#include "cmsis_os.h" + /* Values for 'state' */ #define INACTIVE 0U #define READY 1U diff --git a/libraries/rtos/rtx/TARGET_CORTEX_M/rt_Timer.c b/libraries/rtos/rtx/TARGET_CORTEX_M/rt_Timer.c index 29b398bdf9..fa4b84414a 100644 --- a/libraries/rtos/rtx/TARGET_CORTEX_M/rt_Timer.c +++ b/libraries/rtos/rtx/TARGET_CORTEX_M/rt_Timer.c @@ -36,6 +36,7 @@ #include "RTX_Config.h" #include "rt_Timer.h" #include "rt_MemBox.h" +#include "cmsis_os.h" #ifndef __CMSIS_RTOS diff --git a/workspace_tools/toolchains/__init__.py b/workspace_tools/toolchains/__init__.py index a7c405e133..d122fb72d1 100644 --- a/workspace_tools/toolchains/__init__.py +++ b/workspace_tools/toolchains/__init__.py @@ -166,14 +166,14 @@ class mbedToolchain: VERBOSE = True CORTEX_SYMBOLS = { - "Cortex-M0" : ["__CORTEX_M0", "ARM_MATH_CM0", "__CMSIS_RTOS", "__MBED_CMSIS_RTOS_CM"], - "Cortex-M0+": ["__CORTEX_M0PLUS", "ARM_MATH_CM0PLUS", "__CMSIS_RTOS", "__MBED_CMSIS_RTOS_CM"], - "Cortex-M1" : ["__CORTEX_M3", "ARM_MATH_CM1", "__CMSIS_RTOS", "__MBED_CMSIS_RTOS_CM"], - "Cortex-M3" : ["__CORTEX_M3", "ARM_MATH_CM3", "__CMSIS_RTOS", "__MBED_CMSIS_RTOS_CM"], - "Cortex-M4" : ["__CORTEX_M4", "ARM_MATH_CM4", "__CMSIS_RTOS", "__MBED_CMSIS_RTOS_CM"], - "Cortex-M4F" : ["__CORTEX_M4", "ARM_MATH_CM4", "__FPU_PRESENT=1", "__CMSIS_RTOS", "__MBED_CMSIS_RTOS_CM"], - "Cortex-M7" : ["__CORTEX_M7", "ARM_MATH_CM7", "__CMSIS_RTOS", "__MBED_CMSIS_RTOS_CM"], - "Cortex-M7F" : ["__CORTEX_M7", "ARM_MATH_CM7", "__FPU_PRESENT=1", "__CMSIS_RTOS", "__MBED_CMSIS_RTOS_CM"], + "Cortex-M0" : ["__CORTEX_M0", "ARM_MATH_CM0"], + "Cortex-M0+": ["__CORTEX_M0PLUS", "ARM_MATH_CM0PLUS"], + "Cortex-M1" : ["__CORTEX_M3", "ARM_MATH_CM1"], + "Cortex-M3" : ["__CORTEX_M3", "ARM_MATH_CM3"], + "Cortex-M4" : ["__CORTEX_M4", "ARM_MATH_CM4"], + "Cortex-M4F" : ["__CORTEX_M4", "ARM_MATH_CM4", "__FPU_PRESENT=1"], + "Cortex-M7" : ["__CORTEX_M7", "ARM_MATH_CM7"], + "Cortex-M7F" : ["__CORTEX_M7", "ARM_MATH_CM7", "__FPU_PRESENT=1"], "Cortex-A9" : ["__CORTEX_A9", "ARM_MATH_CA9", "__FPU_PRESENT", "__CMSIS_RTOS", "__EVAL", "__MBED_CMSIS_RTOS_CA9"], }