aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLedion Daja <ledion.daja@arm.com>2022-06-21 12:22:13 +0200
committerKristofer Jonsson <kristofer.jonsson@arm.com>2022-09-13 09:42:31 +0200
commit449c8d81f5b0c4d75c632b7849ddd9966cfd71cf (patch)
tree88011ec0e51e834b8f1492a8fd628bdd139f35f9
parent311d6533177769b1eb81ac21442c7563faac21a8 (diff)
downloadethos-u-core-software-449c8d81f5b0c4d75c632b7849ddd9966cfd71cf.tar.gz
Remove CMake workaround for Arm Clang
Previous version of CMake did not allow CMAKE_SYSTEM_PROCESSOR to contain CPU features for Arm Clang toolchain. A workaround was added to manually strip the CPU features. Recent versions of CMake have removed this limitation and instead requires the toolchain to manually add -mcpu=<CPU+features>, which means that the workaround can be removed. Change-Id: I3e8647c47df27a96cdd103614ecf2540f150ab36
-rw-r--r--cmsis.cmake13
-rw-r--r--rtos/CMakeLists.txt6
-rw-r--r--rtos/freertos_config/CMakeLists.txt26
3 files changed, 23 insertions, 22 deletions
diff --git a/cmsis.cmake b/cmsis.cmake
index fd93545..daa8132 100644
--- a/cmsis.cmake
+++ b/cmsis.cmake
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
+# Copyright (c) 2019-2022 Arm Limited.
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -17,20 +17,19 @@
#
# Extract the CPU number from the system processor
-string(REGEX MATCH "^cortex-m([0-9]+)$" CPU_NUMBER ${CMAKE_SYSTEM_PROCESSOR})
+string(REGEX REPLACE "^cortex-m([0-9]+[a-z]*)" "\\1" CPU_NUMBER ${CMAKE_SYSTEM_PROCESSOR})
if(NOT CPU_NUMBER)
message(FATAL_ERROR "System processor '${CMAKE_SYSTEM_PROCESSOR}' not supported. Should be cortex-m<nr>.")
endif()
-string(REGEX REPLACE "^cortex-m([0-9]+)$" "\\1" CPU_NUMBER ${CMAKE_SYSTEM_PROCESSOR})
-set(ARM_CPU "ARMCM${CPU_NUMBER}")
+string(TOUPPER "ARMCM${CPU_NUMBER}" ARM_CPU)
# Set CPU specific features
-if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m33")
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m33")
set(ARM_FEATURES "_DSP_FP")
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m4")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m4")
set(ARM_FEATURES "_FP")
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m7")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m7")
set(ARM_FEATURES "_DP")
else()
set(ARM_FEATURES "")
diff --git a/rtos/CMakeLists.txt b/rtos/CMakeLists.txt
index 753b307..6c91a83 100644
--- a/rtos/CMakeLists.txt
+++ b/rtos/CMakeLists.txt
@@ -24,12 +24,14 @@ endif()
# Include ThreadX
# Only enable cortex-m55 until cortex-m33 is sorted out upstream
-if((CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m55") AND
+if((CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m55") AND
(CORE_SOFTWARE_RTOS_LOWER STREQUAL "threadx" OR CORE_SOFTWARE_RTOS_LOWER STREQUAL "all"))
#threadx build requires 2 defines: THREADX_ARCH (format: cortex_m4) and THREADX_TOOLCHAIN (ac5/ac6/gnu).
#set them according to existing defines CMAKE_SYSTEM_PROCESSOR and CMAKE_CXX_COMPILER_ID:
- string(REPLACE "-" "_" THREADX_ARCH ${CMAKE_SYSTEM_PROCESSOR})
+ string(REGEX MATCH "^cortex-m([0-9]+[a-z]*)" THREADX_ARCH ${CMAKE_SYSTEM_PROCESSOR})
+ string(REPLACE "-" "_" THREADX_ARCH ${THREADX_ARCH})
string(TOLOWER ${CMAKE_CXX_COMPILER_ID} THREADX_TOOLCHAIN)
+
#if armclang, change the format to "ac6".
if(THREADX_TOOLCHAIN STREQUAL "armclang")
set(THREADX_TOOLCHAIN "ac6")
diff --git a/rtos/freertos_config/CMakeLists.txt b/rtos/freertos_config/CMakeLists.txt
index 318390d..554a492 100644
--- a/rtos/freertos_config/CMakeLists.txt
+++ b/rtos/freertos_config/CMakeLists.txt
@@ -16,23 +16,23 @@
# limitations under the License.
#
-if(CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m3")
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m3")
add_compile_definitions(CPU_CORTEX_M3)
-elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m33")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m33")
add_compile_definitions(CPU_CORTEX_M33)
-elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m4")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m4")
add_compile_definitions(CPU_CORTEX_M4)
-elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m55")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m55")
add_compile_definitions(CPU_CORTEX_M55)
-elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m7")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m7")
add_compile_definitions(CPU_CORTEX_M7)
-elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "cortex-m85")
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "cortex-m85")
add_compile_definitions(CPU_CORTEX_M85)
else()
message(FATAL_ERROR "Unsupported compiler ${CMAKE_SYSTEM_PROCESSOR}.")
endif()
-if((${TARGET} STREQUAL "mps2") OR (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m55"))
+if((${TARGET} STREQUAL "mps2") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m55"))
set("SYSTEM_CORE_CLOCK" "25000000")
else()
set("SYSTEM_CORE_CLOCK" "32000000")
@@ -66,28 +66,28 @@ target_sources(freertos_kernel PRIVATE
target_sources(freertos_kernel PRIVATE
${FREERTOS_KERNEL_PATH}/portable/MemMang/heap_3.c)
-if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m3")
+if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m3")
target_sources(freertos_kernel PRIVATE
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM3/port.c
)
target_include_directories(freertos_kernel PUBLIC
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM3
)
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m4")
+elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m4")
target_sources(freertos_kernel PRIVATE
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM4F/port.c
)
target_include_directories(freertos_kernel PUBLIC
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM4F
)
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m7")
+elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m7")
target_sources(freertos_kernel PRIVATE
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM7/r0p1/port.c
)
target_include_directories(freertos_kernel PUBLIC
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM7/r0p1
)
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m33")
+elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m33")
target_sources(freertos_kernel PRIVATE
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/port.c
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/portasm.c
@@ -95,7 +95,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m33")
target_include_directories(freertos_kernel PUBLIC
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure
)
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m55")
+elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m55")
# TODO: using the same port files as Cortex-M33. Update for Cortex-M55.
target_sources(freertos_kernel PRIVATE
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/port.c
@@ -104,7 +104,7 @@ elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m55")
target_include_directories(freertos_kernel PUBLIC
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure
)
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m85")
+elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "cortex-m85")
# TODO: using the same port files as Cortex-M33. Update for Cortex-M85.
target_sources(freertos_kernel PRIVATE
${FREERTOS_KERNEL_PATH}/portable/GCC/ARM_CM33_NTZ/non_secure/port.c