CMake: Break down RTX CMake source file into 2 source files

pull/13566/head
Hugues Kamba 2020-07-31 18:39:08 +01:00
parent ef11e06cfb
commit 06f4e1bc8b
3 changed files with 86 additions and 73 deletions

View File

@ -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

View File

@ -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
)

View File

@ -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
)