aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristofer Jonsson <kristofer.jonsson@arm.com>2021-02-16 17:40:25 +0100
committerKristofer Jonsson <kristofer.jonsson@arm.com>2021-02-23 16:56:46 +0100
commit1efcc3f957e7f64dc8b2b9d7061c0ef7050466cd (patch)
treeeb69ec43d2cfff09b91fbc558afcbe7431a91b80
parentff1d14d47775de61af735b2689476892320fddab (diff)
downloadethos-u-core-software-1efcc3f957e7f64dc8b2b9d7061c0ef7050466cd.tar.gz
Assembly support
Update the Arm Clang toolchain file to support assembly files. Removing cmsis_core dependency. Applications that depend on CMSIS should add that dependency manually. Change-Id: I42d68e6734acc88aef8f9af124b5e76079b839b5
-rw-r--r--CMakeLists.txt4
-rw-r--r--applications/inference_process/CMakeLists.txt4
-rw-r--r--applications/message_process/CMakeLists.txt4
-rw-r--r--cmake/toolchain/armclang.cmake29
-rw-r--r--cmsis.cmake6
5 files changed, 34 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9d20c14..b7d3bea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
+# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -67,4 +67,4 @@ add_subdirectory(applications)
add_subdirectory(drivers)
# Merge libraries into static library
-target_link_libraries(ethosu_core INTERFACE tflu cmsis_core ethosu_applications ethosu_drivers)
+target_link_libraries(ethosu_core INTERFACE tflu ethosu_applications ethosu_drivers)
diff --git a/applications/inference_process/CMakeLists.txt b/applications/inference_process/CMakeLists.txt
index 97d4d8f..67caae8 100644
--- a/applications/inference_process/CMakeLists.txt
+++ b/applications/inference_process/CMakeLists.txt
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
+# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -22,5 +22,5 @@ add_library(inference_process STATIC)
target_include_directories(inference_process PUBLIC include
PRIVATE ${TENSORFLOW_PATH} ${TENSORFLOW_PATH}/tensorflow/lite/micro/tools/make/downloads/flatbuffers/include)
-target_link_libraries(inference_process PUBLIC tflu cmsis_core cmsis_device)
+target_link_libraries(inference_process PRIVATE tflu cmsis_core cmsis_device)
target_sources(inference_process PRIVATE src/inference_process.cpp) \ No newline at end of file
diff --git a/applications/message_process/CMakeLists.txt b/applications/message_process/CMakeLists.txt
index ed27dcd..7390ed7 100644
--- a/applications/message_process/CMakeLists.txt
+++ b/applications/message_process/CMakeLists.txt
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
+# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -18,4 +18,4 @@
add_library(message_process STATIC src/message_process.cpp)
target_include_directories(message_process PUBLIC include ${LINUX_DRIVER_STACK_PATH}/kernel)
-target_link_libraries(message_process PRIVATE cmsis_core inference_process ethosu_mailbox)
+target_link_libraries(message_process PRIVATE cmsis_device inference_process ethosu_mailbox)
diff --git a/cmake/toolchain/armclang.cmake b/cmake/toolchain/armclang.cmake
index f8d299a..7d607ed 100644
--- a/cmake/toolchain/armclang.cmake
+++ b/cmake/toolchain/armclang.cmake
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
+# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -24,6 +24,7 @@ set(__TOOLCHAIN_LOADED TRUE)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_COMPILER "armclang")
set(CMAKE_CXX_COMPILER "armclang")
+set(CMAKE_ASM_COMPILER "armclang")
set(CMAKE_SYSTEM_PROCESSOR "cortex-m33+nodsp" CACHE STRING "Select Cortex-M architure. (cortex-m0, cortex-m3, cortex-m33, cortex-m4, cortex-m55, cortex-m7, etc)")
set(CMAKE_C_STANDARD 99)
@@ -40,7 +41,9 @@ if(__OFFSET GREATER_EQUAL 0)
endif()
# Add -mcpu to the compile options to override the -mcpu the CMake toolchain adds
-add_compile_options(-mcpu=${__CPU_COMPILE_TARGET})
+add_compile_options(
+ -mcpu=${__CPU_COMPILE_TARGET}
+ "$<$<COMPILE_LANGUAGE:ASM>:-masm=auto;--target=arm-arm-none-eabi>")
# Set floating point unit
if("${__CPU_COMPILE_TARGET}" MATCHES "\\+fp")
@@ -48,7 +51,9 @@ if("${__CPU_COMPILE_TARGET}" MATCHES "\\+fp")
elseif("${__CPU_COMPILE_TARGET}" MATCHES "\\+nofp")
set(FLOAT soft)
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m33" OR
- "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m55")
+ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m4" OR
+ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m55" OR
+ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m7")
set(FLOAT hard)
else()
set(FLOAT soft)
@@ -78,8 +83,22 @@ add_link_options(--lto --info common,debug,sizes,totals,veneers,unused --symbols
#
add_compile_options(-Wall -Wextra
- -Wsign-compare -Wunused -Wswitch-default -Wformat -Wdouble-promotion -Wredundant-decls -Wshadow -Wcast-align -Wnull-dereference
- -Wno-format-extra-args -Wno-unused-function -Wno-unused-label -Wno-missing-field-initializers -Wno-return-type)
+ -Wsign-compare
+ -Wunused
+ -Wswitch-default
+ -Wformat
+ -Wdouble-promotion
+ -Wredundant-decls
+ -Wshadow
+ -Wcast-align
+ -Wnull-dereference
+ -Wno-deprecated-register
+ -Wno-format-extra-args
+ -Wno-missing-field-initializers
+ -Wno-unused-function
+ -Wno-unused-label
+ -Wno-unused-parameter
+ -Wno-return-type)
add_compile_options(-fno-unwind-tables -fno-rtti -fno-exceptions)
add_compile_options(-mthumb)
add_compile_options("$<$<CONFIG:DEBUG>:-gdwarf-3>")
diff --git a/cmsis.cmake b/cmsis.cmake
index b5b6726..fd93545 100644
--- a/cmsis.cmake
+++ b/cmsis.cmake
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2019-2020 Arm Limited. All rights reserved.
+# Copyright (c) 2019-2021 Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -44,7 +44,9 @@ target_include_directories(cmsis_core INTERFACE ${CMSIS_PATH}/CMSIS/Core/Include
add_library(cmsis_device INTERFACE)
target_include_directories(cmsis_device INTERFACE ${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Include)
-target_compile_options(cmsis_device INTERFACE -include${ARM_CPU}${ARM_FEATURES}.h)
+target_compile_options(cmsis_device INTERFACE
+ "$<$<COMPILE_LANGUAGE:C>:-include${ARM_CPU}${ARM_FEATURES}.h>"
+ "$<$<COMPILE_LANGUAGE:CXX>:-include${ARM_CPU}${ARM_FEATURES}.h>")
target_link_libraries(cmsis_device INTERFACE cmsis_core)
# CMSIS startup