aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBhavik Patel <bhavik.patel@arm.com>2020-07-27 17:23:31 +0200
committerKristofer Jonsson <kristofer.jonsson@arm.com>2020-08-17 11:48:46 +0200
commit50aa51d64dee7047cd72443ce5c494b8dd735893 (patch)
tree95e8e29261786043b9afc7ba78fbc7ba66745220
parent61fc6dc48d1e6e02c2a999ff470d15011559b9b5 (diff)
downloadethos-u-core-software-50aa51d64dee7047cd72443ce5c494b8dd735893.tar.gz
Add install target & GCC support
Add install target for libraries. Minor changes to enable GCC support. Change-Id: I6adab92cb997c1edc2729f02a4f10406463e0a9b
-rw-r--r--CMakeLists.txt2
-rw-r--r--cmsis.cmake32
-rw-r--r--tensorflow.cmake10
3 files changed, 35 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 22a039b..a59231f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,4 +55,4 @@ endif()
include(tensorflow.cmake)
# Merge libraries into static library
-target_link_libraries(ethosu_core INTERFACE tflu cmsis_device)
+target_link_libraries(ethosu_core INTERFACE tflu cmsis_core cmsis_device)
diff --git a/cmsis.cmake b/cmsis.cmake
index 5806692..74987cb 100644
--- a/cmsis.cmake
+++ b/cmsis.cmake
@@ -25,16 +25,32 @@ string(REGEX REPLACE "^cortex-m([0-9]+)$" "\\1" CPU_NUMBER ${CMAKE_SYSTEM_PROCES
set(ARM_CPU "ARMCM${CPU_NUMBER}")
-# CMSIS core library
+# Set CPU specific features
+if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m33")
+ set(ARM_FEATURES "_DSP_FP")
+elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m4")
+ set(ARM_FEATURES "_FP")
+elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "cortex-m7")
+ set(ARM_FEATURES "_DP")
+else()
+ set(ARM_FEATURES "")
+endif()
+
+# CMSIS core
add_library(cmsis_core INTERFACE)
target_include_directories(cmsis_core INTERFACE ${CMSIS_PATH}/CMSIS/Core/Include)
-# CMSIS device library
-add_library(cmsis_device OBJECT)
-target_sources(cmsis_device PRIVATE
+# CMSIS device
+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)
+
+# CMSIS startup
+add_library(cmsis_startup STATIC
${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Source/startup_${ARM_CPU}.c
${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Source/system_${ARM_CPU}.c)
-target_compile_definitions(cmsis_device PRIVATE ${ARM_CPU})
-target_compile_options(cmsis_device INTERFACE -include${ARM_CPU}.h)
-target_include_directories(cmsis_device PUBLIC ${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Include)
-target_link_libraries(cmsis_device PUBLIC cmsis_core)
+target_compile_definitions(cmsis_startup PRIVATE ${ARM_CPU}${ARM_FEATURES})
+target_link_libraries(cmsis_startup PRIVATE cmsis_device cmsis_core)
+
+# Install libraries
+install(TARGETS cmsis_startup LIBRARY DESTINATION "lib")
diff --git a/tensorflow.cmake b/tensorflow.cmake
index c593c1d..691ee53 100644
--- a/tensorflow.cmake
+++ b/tensorflow.cmake
@@ -31,6 +31,12 @@ else ()
message(FATAL_ERROR "No compiler ID is set")
endif()
+# Set floating point
+if (FLOAT)
+ set(TFLU_CC "${TFLU_CC} -mfloat-abi=${FLOAT}")
+ set(TFLU_CXX "${TFLU_CXX} -mfloat-abi=${FLOAT}")
+endif()
+
set(TFLU_PATH "${TENSORFLOW_PATH}/tensorflow/lite/micro")
set(TFLU_GENDIR ${CMAKE_CURRENT_BINARY_DIR}/tensorflow/)
set(TFLU_TARGET "lib")
@@ -58,3 +64,7 @@ add_library(tflu STATIC IMPORTED)
set_property(TARGET tflu PROPERTY IMPORTED_LOCATION ${TFLU_GENDIR}/lib/libtensorflow-microlite.a)
add_dependencies(tflu tflu_gen)
target_include_directories(tflu INTERFACE ${TENSORFLOW_PATH})
+
+# Install libraries and header files
+get_target_property(TFLU_IMPORTED_LOCATION tflu IMPORTED_LOCATION)
+install(FILES ${TFLU_IMPORTED_LOCATION} DESTINATION "lib")