diff options
author | Rajasekaran Kalidoss <rajasekaran.kalidoss@arm.com> | 2024-04-24 12:55:29 +0200 |
---|---|---|
committer | Rajasekaran Kalidoss <rajasekaran.kalidoss@arm.com> | 2024-05-13 15:48:09 +0200 |
commit | f922fd1acb5064cd160e1395dc67a2cd5bb3cdfb (patch) | |
tree | 7752643f7843369beaf44b26eb73b4463496264a | |
parent | def786363c7d550faac6afbc0fe436fd06c059be (diff) | |
download | ethos-u-core-software-f922fd1acb5064cd160e1395dc67a2cd5bb3cdfb.tar.gz |
Change CMSIS Device file paths for CMSIS 6
This patch adds support for building with CMSIS_6 in addition to
CMSIS_5. A cmake flag(CMSIS_VER) with default value of 5 has been added.
This can be overridden in the cmake command line. CMSIS Device
component is no longer part of CMSIS_6 and is part of Cortex_DFP repo.
This patch also has the file path changes required to include CMSIS
Device from Cortex_DFP.
Change-Id: I148ab6b384d725ca83e75ac08e15c58809f25ac1
Signed-off-by: Rajasekaran Kalidoss <rajasekaran.kalidoss@arm.com>
-rw-r--r-- | CMakeLists.txt | 13 | ||||
-rw-r--r-- | cmsis.cmake | 29 |
2 files changed, 29 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c13c954..75ffc97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ # -# SPDX-FileCopyrightText: Copyright 2019-2023 Arm Limited and/or its affiliates <open-source-office@arm.com> -# +# SPDX-FileCopyrightText: Copyright 2019-2024 Arm Limited and/or its affiliates <open-source-office@arm.com> # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the License); you may @@ -26,8 +25,16 @@ project(core_software VERSION 0.0.1) # Define build options # +SET(CMSIS_VER "5" CACHE STRING "CMSIS Version") + # Setup paths -set(CMSIS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmsis" CACHE PATH "Path to CMSIS.") +if (${CMSIS_VER} EQUAL 5) + set(CMSIS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmsis" CACHE PATH "Path to CMSIS.") +elseif(${CMSIS_VER} EQUAL 6) + set(CMSIS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmsis_6" CACHE PATH "Path to CMSIS.") +else() + message(FATAL_ERROR "CMSIS_VER '${CMSIS_VER}' not supported. Should be 5 or 6.") +endif() set(CMSIS_NN_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmsis-nn" CACHE PATH "Path to CMSIS-NN.") set(CMSIS_VIEW_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmsis-view" CACHE PATH "Path to cmsis-view.") set(CORE_DRIVER_PATH "${CMAKE_CURRENT_SOURCE_DIR}/core_driver" CACHE PATH "Path to core driver.") diff --git a/cmsis.cmake b/cmsis.cmake index f8a916f..6e1cc4f 100644 --- a/cmsis.cmake +++ b/cmsis.cmake @@ -1,6 +1,5 @@ # -# Copyright (c) 2019-2022 Arm Limited. -# +# Copyright (c) 2019-2022, 2024 Arm Limited. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the License); you may @@ -41,27 +40,37 @@ target_include_directories(cmsis_core INTERFACE ${CMSIS_PATH}/CMSIS/Core/Include # CMSIS device add_library(cmsis_device INTERFACE) -target_include_directories(cmsis_device INTERFACE ${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Include) + +if (${CMSIS_VER} EQUAL 5) + cmake_path(SET CMSIS_DEVICE_PATH "${CMSIS_PATH}/Device/ARM") + cmake_path(SET CMSIS_DEVICE_CPU_FEATURE "${ARM_CPU}${ARM_FEATURES}") +else() + cmake_path(APPEND CMSIS_PATH "Cortex_DFP/Device/" OUTPUT_VARIABLE CMSIS_DEVICE_PATH) + cmake_path(SET CMSIS_DEVICE_CPU_FEATURE "${ARM_CPU}") +endif() + +target_include_directories(cmsis_device INTERFACE ${CMSIS_DEVICE_PATH}/${ARM_CPU}/Include) target_compile_options(cmsis_device INTERFACE - "$<$<COMPILE_LANGUAGE:C>:-include${ARM_CPU}${ARM_FEATURES}.h>" - "$<$<COMPILE_LANGUAGE:CXX>:-include${ARM_CPU}${ARM_FEATURES}.h>") + "$<$<COMPILE_LANGUAGE:C>:-include${CMSIS_DEVICE_CPU_FEATURE}.h>" + "$<$<COMPILE_LANGUAGE:CXX>:-include${CMSIS_DEVICE_CPU_FEATURE}.h>") + target_link_libraries(cmsis_device INTERFACE cmsis_core) # CMSIS startup add_library(cmsis_startup INTERFACE) target_sources(cmsis_startup INTERFACE - ${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Source/startup_${ARM_CPU}.c) + ${CMSIS_DEVICE_PATH}/${ARM_CPU}/Source/startup_${ARM_CPU}.c) -set_source_files_properties(${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Source/startup_${ARM_CPU}.c +set_source_files_properties(${CMSIS_DEVICE_PATH}/${ARM_CPU}/Source/startup_${ARM_CPU}.c PROPERTIES COMPILE_FLAGS -Wno-redundant-decls) -target_compile_definitions(cmsis_startup INTERFACE ${ARM_CPU}${ARM_FEATURES}) +target_compile_definitions(cmsis_startup INTERFACE ${CMSIS_DEVICE_CPU_FEATURE}) target_link_libraries(cmsis_startup INTERFACE cmsis_device) # CMSIS system add_library(cmsis_system INTERFACE) target_sources(cmsis_system INTERFACE - ${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Source/system_${ARM_CPU}.c) -target_compile_definitions(cmsis_system INTERFACE ${ARM_CPU}${ARM_FEATURES}) + ${CMSIS_DEVICE_PATH}/${ARM_CPU}/Source/system_${ARM_CPU}.c) +target_compile_definitions(cmsis_system INTERFACE ${CMSIS_DEVICE_CPU_FEATURE}) target_link_libraries(cmsis_system INTERFACE cmsis_startup) |