diff --git a/rtos/source/TARGET_CORTEX/CMakeLists.txt b/rtos/source/TARGET_CORTEX/CMakeLists.txt index 1c29e0b28d..2d08035a66 100644 --- a/rtos/source/TARGET_CORTEX/CMakeLists.txt +++ b/rtos/source/TARGET_CORTEX/CMakeLists.txt @@ -18,7 +18,7 @@ if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") target_sources(mbed-os PRIVATE - TOOLCHAIN_ARM_STD/mbed_boot_arm_std.c + TOOLCHAIN_ARM_STD/mbed_boot_arm_std.c ) elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") target_sources(mbed-os diff --git a/rtos/source/TARGET_CORTEX/rtx5/CMakeLists.txt b/rtos/source/TARGET_CORTEX/rtx5/CMakeLists.txt index 9cdf870b03..1bb4d24adf 100644 --- a/rtos/source/TARGET_CORTEX/rtx5/CMakeLists.txt +++ b/rtos/source/TARGET_CORTEX/rtx5/CMakeLists.txt @@ -1,76 +1,15 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -function(_mbed_get_rtx_assembly TOOLCHAIN_DIR) - get_property(target_labels GLOBAL PROPERTY MBED_TARGET_LABELS) - foreach(key ${target_labels}) - if(${key} STREQUAL CORTEX_A) - set(STARTUP_RTX_FILE TARGET_CORTEX_A/irq_ca.S) - elseif(${key} STREQUAL M0) - set(STARTUP_RTX_FILE TARGET_M0/irq_cm0.S) - elseif(${key} STREQUAL M0P) - set(STARTUP_RTX_FILE TARGET_M0P/irq_cm0.S) - elseif(${key} STREQUAL M23) - set(STARTUP_RTX_FILE TARGET_M23/irq_armv8mbl.S) - elseif(${key} STREQUAL M3) - set(STARTUP_RTX_FILE TARGET_M3/irq_cm3.S) - elseif(${key} STREQUAL M33) - set(STARTUP_RTX_FILE TARGET_M33/irq_armv8mbl.S) - elseif(${key} STREQUAL RTOS_M4_M7) - set(STARTUP_RTX_FILE TARGET_RTOS_M4_M7/irq_cm4f.S) - endif() - target_sources(mbed-os PRIVATE RTX/Source/${TOOLCHAIN_DIR}/${STARTUP_RTX_FILE}) - endforeach() -endfunction() +add_subdirectory(RTX) -function(_mbed_add_cortexa_handler_if) - get_property(target_labels GLOBAL PROPERTY MBED_TARGET_LABELS) - foreach(key ${target_labels}) - if(${key} STREQUAL CORTEX_A) - target_sources(mbed-os PRIVATE RTX/Config/TARGET_CORTEX_A/handlers.c) - endif() - endforeach() -endfunction() +target_include_directories(mbed-os + PUBLIC + Include +) -target_sources(mbed-os PRIVATE Include/cmsis_os2.h) -target_sources(mbed-os PRIVATE Include/os_tick.h) - -# Add Cortex A handlers if needed -_mbed_add_cortexa_handler_if() - -target_sources(mbed-os PRIVATE RTX/Config/RTX_Config.c) -target_sources(mbed-os PRIVATE RTX/Config/RTX_Config.h) -target_sources(mbed-os PRIVATE RTX/Include/rtx_evr.h) -target_sources(mbed-os PRIVATE RTX/Include/rtx_os.h) - -if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") -_mbed_get_rtx_assembly(TOOLCHAIN_GCC) -elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") -_mbed_get_rtx_assembly(TOOLCHAIN_ARM) -elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") -_mbed_get_rtx_assembly(TOOLCHAIN_IAR) -endif() - -target_sources(mbed-os PRIVATE RTX/Source/rtx_core_ca.h) -target_sources(mbed-os PRIVATE RTX/Source/rtx_core_cm.h) -target_sources(mbed-os PRIVATE RTX/Source/rtx_delay.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_evflags.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_evr.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_kernel.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_lib.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_lib.h) -target_sources(mbed-os PRIVATE RTX/Source/rtx_memory.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_mempool.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_msgqueue.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_mutex.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_semaphore.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_system.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_thread.c) -target_sources(mbed-os PRIVATE RTX/Source/rtx_timer.c) - -target_sources(mbed-os PRIVATE Source/os_systick.c) -target_sources(mbed-os PRIVATE Source/os_tick_ptim.c) - -target_include_directories(mbed-os PUBLIC Include) -target_include_directories(mbed-os PUBLIC RTX/Include) -target_include_directories(mbed-os PUBLIC RTX/Source) -target_include_directories(mbed-os PUBLIC RTX/Config) +target_sources(mbed-os + PRIVATE + Source/os_systick.c + Source/os_tick_ptim.c +) diff --git a/rtos/source/TARGET_CORTEX/rtx5/RTX/CMakeLists.txt b/rtos/source/TARGET_CORTEX/rtx5/RTX/CMakeLists.txt new file mode 100644 index 0000000000..41b0f42391 --- /dev/null +++ b/rtos/source/TARGET_CORTEX/rtx5/RTX/CMakeLists.txt @@ -0,0 +1,74 @@ +# Copyright (c) 2020 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +function(_mbed_get_rtx_assembly toolchain_dir) + get_property(target_labels GLOBAL PROPERTY MBED_TARGET_LABELS) + foreach(key ${target_labels}) + if(${key} STREQUAL CORTEX_A) + set(STARTUP_RTX_FILE TARGET_CORTEX_A/irq_ca.S) + elseif(${key} STREQUAL M0) + set(STARTUP_RTX_FILE TARGET_M0/irq_cm0.S) + elseif(${key} STREQUAL M0P) + set(STARTUP_RTX_FILE TARGET_M0P/irq_cm0.S) + elseif(${key} STREQUAL M23) + set(STARTUP_RTX_FILE TARGET_M23/irq_armv8mbl.S) + elseif(${key} STREQUAL M3) + set(STARTUP_RTX_FILE TARGET_M3/irq_cm3.S) + elseif(${key} STREQUAL M33) + set(STARTUP_RTX_FILE TARGET_M33/irq_armv8mbl.S) + elseif(${key} STREQUAL RTOS_M4_M7) + set(STARTUP_RTX_FILE TARGET_RTOS_M4_M7/irq_cm4f.S) + endif() + + target_sources(mbed-os + PRIVATE + Source/${toolchain_dir}/${STARTUP_RTX_FILE} + ) + endforeach() +endfunction() + +function(_mbed_add_cortexa_handler_if) + get_property(target_labels GLOBAL PROPERTY MBED_TARGET_LABELS) + foreach(key ${target_labels}) + if(${key} STREQUAL CORTEX_A) + target_sources(mbed-os PRIVATE Config/TARGET_CORTEX_A/handlers.c) + endif() + endforeach() +endfunction() + +# Add Cortex A handlers if needed +_mbed_add_cortexa_handler_if() + +if(${MBED_TOOLCHAIN} STREQUAL "GCC_ARM") + _mbed_get_rtx_assembly(TOOLCHAIN_GCC) +elseif(${MBED_TOOLCHAIN} STREQUAL "ARM") + _mbed_get_rtx_assembly(TOOLCHAIN_ARM) +elseif(${MBED_TOOLCHAIN} STREQUAL "IAR") + _mbed_get_rtx_assembly(TOOLCHAIN_IAR) +endif() + +target_include_directories(mbed-os + PUBLIC + Config + Include + Source +) + +target_sources(mbed-os + PRIVATE + Config/RTX_Config.c + + Source/rtx_delay.c + Source/rtx_evflags.c + Source/rtx_evr.c + Source/rtx_kernel.c + Source/rtx_lib.c + Source/rtx_memory.c + Source/rtx_mempool.c + Source/rtx_msgqueue.c + Source/rtx_mutex.c + Source/rtx_semaphore.c + Source/rtx_system.c + Source/rtx_thread.c + Source/rtx_timer.c +)