summaryrefslogtreecommitdiff
path: root/scripts/cmake/toolchains/bare-metal-armclang.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cmake/toolchains/bare-metal-armclang.cmake')
-rw-r--r--scripts/cmake/toolchains/bare-metal-armclang.cmake22
1 files changed, 18 insertions, 4 deletions
diff --git a/scripts/cmake/toolchains/bare-metal-armclang.cmake b/scripts/cmake/toolchains/bare-metal-armclang.cmake
index d0b0824..97da76f 100644
--- a/scripts/cmake/toolchains/bare-metal-armclang.cmake
+++ b/scripts/cmake/toolchains/bare-metal-armclang.cmake
@@ -31,7 +31,7 @@ set(MIN_ARM_CLANG_VERSION 6.16)
set(CMAKE_C_COMPILER_WORKS 1)
set(CMAKE_CXX_COMPILER_WORKS 1)
-if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR)
+if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR AND NOT DEFINED CMAKE_SYSTEM_ARCH)
set(CMAKE_SYSTEM_PROCESSOR cortex-m55)
endif()
@@ -39,13 +39,27 @@ if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m55)
# Flags for cortex-m55
set(CPU_ID M55)
set(CPU_COMPILE_DEF CPU_CORTEX_${CPU_ID})
- set(CPU_NAME ${CMAKE_SYSTEM_PROCESSOR})
set(ARM_CPU "ARMC${CPU_ID}")
set(FLOAT_ABI hard)
set(ARM_MATH_DSP 1)
set(ARM_MATH_LOOPUNROLL 1)
set(CPU_HEADER_FILE "${ARM_CPU}.h")
+ set(CPU_COMPILE_OPTION "-mcpu=${CMAKE_SYSTEM_PROCESSOR}")
set(CPU_LINK_OPT "--cpu=Cortex-${CPU_ID}")
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m85 OR CMAKE_SYSTEM_ARCH STREQUAL armv8.1-m.main)
+ # Flags for Cortex-M85
+ set(CPU_ID ARMv81MML_DSP_DP_MVE_FP)
+ set(ARM_CPU "ARMv81MML")
+ set(CPU_COMPILE_DEF ${CPU_ID})
+ set(FLOAT_ABI hard)
+ set(ARM_MATH_DSP 1)
+ set(ARM_MATH_LOOPUNROLL 1)
+
+ # @TODO: Revise once we have the CPU file in CMSIS and CPU flags
+ # are supported by toolchains.
+ set(CPU_HEADER_FILE "${CPU_ID}.h")
+ set(CPU_COMPILE_OPTION "-march=armv8.1-m.main+mve.fp+fp.dp")
+ set(CPU_LINK_OPT "--cpu=8.1-M.Main.mve.fp")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m33)
# Flags for cortex-m33 to go here
endif()
@@ -67,11 +81,11 @@ add_compile_options(
# Arch compile options:
add_compile_options(
-mthumb
- -mcpu=${CPU_NAME}
-mfloat-abi=${FLOAT_ABI}
--target=arm-arm-non-eabi
-mlittle-endian
- -MD)
+ -MD
+ ${CPU_COMPILE_OPTION})
# Compile definitions:
add_compile_definitions(