CMake: Do not hard code target in CPU core CMake module

Provide a function in each CPU core module to set toolchain options.
All the functions have the same interface therefore the CMake source
file including the module always calls the same function regardless
of which cpu core module is actually included.
When the `mbed-os` target is broken up into multiple libraries, a
library other than `mbed-os` might need to set the toolchain options.
This will be possible by simply including the module and calling the
function with the target and toolchain for which to set the options.
pull/13566/head
Hugues Kamba 2020-08-04 19:23:25 +01:00
parent 20e19de028
commit 400211c490
19 changed files with 748 additions and 725 deletions

View File

@ -14,9 +14,14 @@ endif()
add_library(mbed-os OBJECT) add_library(mbed-os OBJECT)
include(${MBED_CONFIG_PATH}/mbed_config.cmake) include(${MBED_CONFIG_PATH}/mbed_config.cmake)
include(${MBED_ROOT}/cmake/core.cmake) include(${MBED_ROOT}/cmake/core.cmake)
mbed_set_cpu_core_options(mbed-os ${MBED_TOOLCHAIN})
include(${MBED_ROOT}/cmake/toolchain.cmake) include(${MBED_ROOT}/cmake/toolchain.cmake)
include(${MBED_ROOT}/cmake/profile.cmake) include(${MBED_ROOT}/cmake/profile.cmake)
include(${MBED_ROOT}/cmake/util.cmake) include(${MBED_ROOT}/cmake/util.cmake)
set_target_properties(mbed-os set_target_properties(mbed-os

View File

@ -1,9 +1,9 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-a9) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb-interwork" "-mthumb-interwork"
"-marm" "-marm"
@ -13,34 +13,34 @@ if(MBED_TOOLCHAIN STREQUAL "GCC_ARM")
"-mno-unaligned-access" "-mno-unaligned-access"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-a9" "-mcpu=cortex-a9"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-A9> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-A9>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-A9" "--cpu=Cortex-A9"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_A9 __CORTEX_A9
ARM_MATH_CA9 ARM_MATH_CA9
@ -48,4 +48,5 @@ target_compile_definitions(mbed-os
__CMSIS_RTOS __CMSIS_RTOS
__EVAL __EVAL
__MBED_CMSIS_RTOS_CA9 __MBED_CMSIS_RTOS_CA9
) )
endfunction()

View File

@ -1,45 +1,46 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m0plus) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mcpu=cortex-m0plus" "-mcpu=cortex-m0plus"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m0plus" "-mcpu=cortex-m0plus"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M0plus> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M0plus>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M0plus" "--cpu=Cortex-M0plus"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M0PLUS __CORTEX_M0PLUS
ARM_MATH_CM0PLUS ARM_MATH_CM0PLUS
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,44 +1,45 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m0) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND options list(APPEND options
"-mcpu=cortex-m0" "-mcpu=cortex-m0"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:-cpu=Cortex-M0> $<$<COMPILE_LANGUAGE:ASM>:-cpu=Cortex-M0>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"-cpu=Cortex-M0" "-cpu=Cortex-M0"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M0 __CORTEX_M0
ARM_MATH_CM0 ARM_MATH_CM0
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,44 +1,45 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m1) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND options list(APPEND options
"-mcpu=cortex-m1" "-mcpu=cortex-m1"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M1> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M1>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M1" "--cpu=Cortex-M1"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M3 __CORTEX_M3
ARM_MATH_CM1 ARM_MATH_CM1
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,44 +1,45 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m23) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m23" "-mcpu=cortex-m23"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M23> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M23>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M23" "--cpu=Cortex-M23"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M23 __CORTEX_M23
ARM_MATH_ARMV8MBL ARM_MATH_ARMV8MBL
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,45 +1,46 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m23) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m23" "-mcpu=cortex-m23"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M23> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M23>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M23" "--cpu=Cortex-M23"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M23 __CORTEX_M23
ARM_MATH_ARMV8MBL ARM_MATH_ARMV8MBL
DOMAIN_NS=1 DOMAIN_NS=1
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,44 +1,45 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m3) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m3" "-mcpu=cortex-m3"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M3> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M3>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M3" "--cpu=Cortex-M3"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M3 __CORTEX_M3
ARM_MATH_CM3 ARM_MATH_CM3
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,46 +1,47 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m33) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-march=armv8-m.main" "-march=armv8-m.main"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m33+nodsp" "-mcpu=cortex-m33+nodsp"
"-mfpu=none" "-mfpu=none"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33.no_dsp.no_fp> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33.no_dsp.no_fp>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M33.no_dsp.no_fp" "--cpu=Cortex-M33.no_dsp.no_fp"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M33 __CORTEX_M33
ARM_MATH_ARMV8MML ARM_MATH_ARMV8MML
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,49 +1,50 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m33) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
list(APPEND options)
list(APPEND options) if(${mbed_toolchain} STREQUAL "GCC_ARM")
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-march=armv8-m.main" "-march=armv8-m.main"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m33+nodsp" "-mcpu=cortex-m33+nodsp"
"-mfpu=none" "-mfpu=none"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33.no_dsp.no_fp> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33.no_dsp.no_fp>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M33.no_dsp.no_fp" "--cpu=Cortex-M33.no_dsp.no_fp"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M33 __CORTEX_M33
ARM_MATH_ARMV8MML ARM_MATH_ARMV8MML
DOMAIN_NS=1 DOMAIN_NS=1
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,9 +1,9 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m33) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mfpu=fpv5-sp-d16" "-mfpu=fpv5-sp-d16"
@ -11,40 +11,41 @@ if(MBED_TOOLCHAIN STREQUAL "GCC_ARM")
"-march=armv8-m.main" "-march=armv8-m.main"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m33+nodsp" "-mcpu=cortex-m33+nodsp"
"-mfpu=fpv5-sp-d16" "-mfpu=fpv5-sp-d16"
"-mfloat-abi=hard" "-mfloat-abi=hard"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33.no_dsp> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33.no_dsp>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M33.no_dsp" "--cpu=Cortex-M33.no_dsp"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M33 __CORTEX_M33
ARM_MATH_ARMV8MML ARM_MATH_ARMV8MML
__FPU_PRESENT=1U __FPU_PRESENT=1U
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,9 +1,9 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m33) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mfpu=fpv5-sp-d16" "-mfpu=fpv5-sp-d16"
@ -11,36 +11,36 @@ if(MBED_TOOLCHAIN STREQUAL "GCC_ARM")
"-march=armv8-m.main" "-march=armv8-m.main"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m33+nodsp" "-mcpu=cortex-m33+nodsp"
"-mfpu=fpv5-sp-d16" "-mfpu=fpv5-sp-d16"
"-mfloat-abi=hard" "-mfloat-abi=hard"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33.no_dsp> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33.no_dsp>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M33.no_dsp" "--cpu=Cortex-M33.no_dsp"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M33 __CORTEX_M33
ARM_MATH_ARMV8MML ARM_MATH_ARMV8MML
@ -48,4 +48,5 @@ target_compile_definitions(mbed-os
__FPU_PRESENT=1U __FPU_PRESENT=1U
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,9 +1,9 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m33) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mfpu=fpv5-sp-d16" "-mfpu=fpv5-sp-d16"
@ -11,34 +11,34 @@ if(MBED_TOOLCHAIN STREQUAL "GCC_ARM")
"-march=armv8-m.main+dsp" "-march=armv8-m.main+dsp"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m33" "-mcpu=cortex-m33"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M33" "--cpu=Cortex-M33"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M33 __CORTEX_M33
ARM_MATH_ARMV8MML ARM_MATH_ARMV8MML
@ -46,4 +46,5 @@ target_compile_definitions(mbed-os
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
__DSP_PRESENT=1U __DSP_PRESENT=1U
) )
endfunction()

View File

@ -1,9 +1,9 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m33) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mfpu=fpv5-sp-d16" "-mfpu=fpv5-sp-d16"
@ -11,34 +11,34 @@ if(MBED_TOOLCHAIN STREQUAL "GCC_ARM")
"-march=armv8-m.main+dsp" "-march=armv8-m.main+dsp"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m33" "-mcpu=cortex-m33"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M33>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M33" "--cpu=Cortex-M33"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M33 __CORTEX_M33
ARM_MATH_ARMV8MML ARM_MATH_ARMV8MML
@ -47,4 +47,5 @@ target_compile_definitions(mbed-os
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
__DSP_PRESENT=1U __DSP_PRESENT=1U
) )
endfunction()

View File

@ -1,46 +1,47 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m4) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mcpu=cortex-m4" "-mcpu=cortex-m4"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m4" "-mcpu=cortex-m4"
"-mfpu=none" "-mfpu=none"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M4.no_fp> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M4.no_fp>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M4.no_fp" "--cpu=Cortex-M4.no_fp"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M4 __CORTEX_M4
ARM_MATH_CM4 ARM_MATH_CM4
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,9 +1,18 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m4) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
target_compile_definitions(${target}
PUBLIC
__CORTEX_M4
ARM_MATH_CM4
__FPU_PRESENT=1
__CMSIS_RTOS
__MBED_CMSIS_RTOS_CM
)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mcpu=cortex-m4" "-mcpu=cortex-m4"
@ -11,40 +20,32 @@ if(MBED_TOOLCHAIN STREQUAL "GCC_ARM")
"-mfloat-abi=softfp" "-mfloat-abi=softfp"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m4" "-mcpu=cortex-m4"
"-mfpu=fpv4-sp-d16" "-mfpu=fpv4-sp-d16"
"-mfloat-abi=hard" "-mfloat-abi=hard"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M4> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M4>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M4" "--cpu=Cortex-M4"
) )
endif() endif()
endfunction()
target_compile_definitions(mbed-os
PUBLIC
__CORTEX_M4
ARM_MATH_CM4
__FPU_PRESENT=1
__CMSIS_RTOS
__MBED_CMSIS_RTOS_CM
)

View File

@ -1,46 +1,47 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m7) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mcpu=cortex-m7" "-mcpu=cortex-m7"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m7" "-mcpu=cortex-m7"
"-mfpu=none" "-mfpu=none"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M7.no_fp> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M7.no_fp>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M7.no_fp" "--cpu=Cortex-M7.no_fp"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M7 __CORTEX_M7
ARM_MATH_CM7 ARM_MATH_CM7
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,9 +1,9 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m7) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mfpu=fpv5-sp-d16" "-mfpu=fpv5-sp-d16"
@ -11,40 +11,41 @@ if(MBED_TOOLCHAIN STREQUAL "GCC_ARM")
"-mcpu=cortex-m7" "-mcpu=cortex-m7"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m7" "-mcpu=cortex-m7"
"-mfpu=fpv5-sp-d16" "-mfpu=fpv5-sp-d16"
"-mfloat-abi=hard" "-mfloat-abi=hard"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M7.fp.sp> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M7.fp.sp>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M7.fp.sp" "--cpu=Cortex-M7.fp.sp"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M7 __CORTEX_M7
ARM_MATH_CM7 ARM_MATH_CM7
__FPU_PRESENT=1 __FPU_PRESENT=1
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()

View File

@ -1,9 +1,9 @@
# Copyright (c) 2020 ARM Limited. All rights reserved. # Copyright (c) 2020 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(CMAKE_SYSTEM_PROCESSOR cortex-m7) # Sets cpu core options
function(mbed_set_cpu_core_options target mbed_toolchain)
if(MBED_TOOLCHAIN STREQUAL "GCC_ARM") if(${mbed_toolchain} STREQUAL "GCC_ARM")
list(APPEND common_toolchain_options list(APPEND common_toolchain_options
"-mthumb" "-mthumb"
"-mfpu=fpv5-d16" "-mfpu=fpv5-d16"
@ -11,40 +11,41 @@ if(MBED_TOOLCHAIN STREQUAL "GCC_ARM")
"-mcpu=cortex-m7" "-mcpu=cortex-m7"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
${common_toolchain_options} ${common_toolchain_options}
) )
elseif(MBED_TOOLCHAIN STREQUAL "ARM") elseif(${mbed_toolchain} STREQUAL "ARM")
list(APPEND compile_options list(APPEND compile_options
"-mcpu=cortex-m7" "-mcpu=cortex-m7"
"-mfpu=fpv5-d16" "-mfpu=fpv5-d16"
"-mfloat-abi=hard" "-mfloat-abi=hard"
) )
target_compile_options(mbed-os target_compile_options(${target}
PUBLIC PUBLIC
$<$<COMPILE_LANGUAGE:C>:${compile_options}> $<$<COMPILE_LANGUAGE:C>:${compile_options}>
$<$<COMPILE_LANGUAGE:CXX>:${compile_options}> $<$<COMPILE_LANGUAGE:CXX>:${compile_options}>
$<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M7> $<$<COMPILE_LANGUAGE:ASM>:--cpu=Cortex-M7>
) )
target_link_options(mbed-os target_link_options(${target}
PUBLIC PUBLIC
"--cpu=Cortex-M7" "--cpu=Cortex-M7"
) )
endif() endif()
target_compile_definitions(mbed-os target_compile_definitions(${target}
PUBLIC PUBLIC
__CORTEX_M7 __CORTEX_M7
ARM_MATH_CM7 ARM_MATH_CM7
__FPU_PRESENT=1 __FPU_PRESENT=1
__CMSIS_RTOS __CMSIS_RTOS
__MBED_CMSIS_RTOS_CM __MBED_CMSIS_RTOS_CM
) )
endfunction()