diff options
author | Kshitij Sisodia <kshitij.sisodia@arm.com> | 2022-05-20 14:30:02 +0100 |
---|---|---|
committer | Kshitij Sisodia <kshitij.sisodia@arm.com> | 2022-05-23 16:11:45 +0100 |
commit | 9c6f9f8afcb003fd72944918d6b6e200d68c0918 (patch) | |
tree | b1237909970ac74232f4ed81a26edc0847204269 /scripts/cmake/toolchains/bare-metal-armclang.cmake | |
parent | 6f6df0934f991b64fef494b86643b3f5074fca0e (diff) | |
download | ml-embedded-evaluation-kit-9c6f9f8afcb003fd72944918d6b6e200d68c0918.tar.gz |
MLECO-3225: Using official support for Arm Cortex-M85 CPU.
* CMake version requirement bumped up to 3.21.0
* CMake 3.22.4 installed in the local Python virtualenv
* CPU flags updated in toolchain files.
* Using __ARM_FEATURE_DSP instead of potentially defining
ARM_MATH_DSP wrongly.
* CMake project version bumped up to 22.05.0
Changes also made for MLECO-3107 (pack generation):
* TensorFlow Lite Micro CMSIS-pack version updated to
1.22.02.
* Change to using __ARM_FEATURE_DSP will also help the
generated pack.
Partial changes for MLECO-3095:
* CMSIS updated to version post 5.9.0
* TensorFlow Lite Micro updated to latest available
* Ethos-U driver and core-platform repositories updated
to 20.05_rc2 tags.
Change-Id: I012c9e65897aed8ce589cff9bfe3a19efc3edeb9
Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
Diffstat (limited to 'scripts/cmake/toolchains/bare-metal-armclang.cmake')
-rw-r--r-- | scripts/cmake/toolchains/bare-metal-armclang.cmake | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/scripts/cmake/toolchains/bare-metal-armclang.cmake b/scripts/cmake/toolchains/bare-metal-armclang.cmake index 97da76f..3db3320 100644 --- a/scripts/cmake/toolchains/bare-metal-armclang.cmake +++ b/scripts/cmake/toolchains/bare-metal-armclang.cmake @@ -25,40 +25,46 @@ set(CMAKE_ASM_COMPILER_AR armar) set(CMAKE_CROSSCOMPILING true) set(CMAKE_SYSTEM_NAME Generic) -set(MIN_ARM_CLANG_VERSION 6.16) - # Skip compiler test execution set(CMAKE_C_COMPILER_WORKS 1) set(CMAKE_CXX_COMPILER_WORKS 1) if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR AND NOT DEFINED CMAKE_SYSTEM_ARCH) - set(CMAKE_SYSTEM_PROCESSOR cortex-m55) + set(CMAKE_SYSTEM_PROCESSOR cortex-m55 CACHE STRING "Cortex-M CPU to use") endif() if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m55) # Flags for cortex-m55 + set(MIN_ARM_CLANG_VERSION 6.16) set(CPU_ID M55) set(CPU_COMPILE_DEF CPU_CORTEX_${CPU_ID}) 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(FLOAT_ABI_COMPILE_OPTION "-mfloat-abi=hard") + set(CPU_LINK_OPT "--cpu=Cortex-${CPU_ID}") +elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m85) + # Flags for cortex-m85 + set(MIN_ARM_CLANG_VERSION 6.18) + set(CPU_ID M85) + set(CPU_COMPILE_DEF CPU_CORTEX_${CPU_ID}) + set(ARM_CPU "ARMC${CPU_ID}") + set(CPU_HEADER_FILE "${ARM_CPU}.h") + set(CPU_COMPILE_OPTION "-mcpu=${CMAKE_SYSTEM_PROCESSOR}") + set(FLOAT_ABI_COMPILE_OPTION "-mfloat-abi=hard") 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 +elseif (CMAKE_SYSTEM_ARCH STREQUAL armv8.1-m.main) + # Flags for generic armv8.1-m profile + set(MIN_ARM_CLANG_VERSION 6.16) 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(FLOAT_ABI_COMPILE_OPTION "-mfloat-abi=hard") 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 @@ -81,18 +87,16 @@ add_compile_options( # Arch compile options: add_compile_options( -mthumb - -mfloat-abi=${FLOAT_ABI} --target=arm-arm-non-eabi -mlittle-endian -MD - ${CPU_COMPILE_OPTION}) + ${CPU_COMPILE_OPTION} + ${FLOAT_ABI_COMPILE_OPTION}) # Compile definitions: add_compile_definitions( CPU_HEADER_FILE=\"${CPU_HEADER_FILE}\" - $<$<BOOL:${CPU_COMPILE_DEF}>:${CPU_COMPILE_DEF}> - $<$<BOOL:${ARM_MATH_DSP}>:ARM_MATH_DSP> - $<$<BOOL:${ARM_MATH_LOOPUNROLL}>:ARM_MATH_LOOPUNROLL>) + $<$<BOOL:${CPU_COMPILE_DEF}>:${CPU_COMPILE_DEF}>) # Link options: add_link_options(${CPU_LINK_OPT}) |