aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristofer Jonsson <kristofer.jonsson@arm.com>2020-10-13 09:35:55 +0200
committerKristofer Jonsson <kristofer.jonsson@arm.com>2020-10-27 13:57:30 +0100
commitd273d8e9c8513079f807b48af2e277f46469acf0 (patch)
treefa19b300dbd9ed01aaedac85f46c359c942d5059
parent33cbe4944e1824b9d39c49cc6c5fe105bc67d252 (diff)
downloadethos-u-core-software-d273d8e9c8513079f807b48af2e277f46469acf0.tar.gz
Pass FLOAT flag to Tensorflow Lite micro
Change-Id: Ia8c2c3993e8937643ddb5193c79aa5ab624e046c
-rw-r--r--cmake/toolchain/armclang.cmake15
-rw-r--r--tensorflow.cmake21
2 files changed, 29 insertions, 7 deletions
diff --git a/cmake/toolchain/armclang.cmake b/cmake/toolchain/armclang.cmake
index afe57cd..f8d299a 100644
--- a/cmake/toolchain/armclang.cmake
+++ b/cmake/toolchain/armclang.cmake
@@ -42,6 +42,21 @@ endif()
# Add -mcpu to the compile options to override the -mcpu the CMake toolchain adds
add_compile_options(-mcpu=${__CPU_COMPILE_TARGET})
+# Set floating point unit
+if("${__CPU_COMPILE_TARGET}" MATCHES "\\+fp")
+ set(FLOAT hard)
+elseif("${__CPU_COMPILE_TARGET}" MATCHES "\\+nofp")
+ set(FLOAT soft)
+elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m33" OR
+ "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m55")
+ set(FLOAT hard)
+else()
+ set(FLOAT soft)
+endif()
+
+add_compile_options(-mfloat-abi=${FLOAT})
+#add_link_options(-mfloat-abi=${FLOAT})
+
# Link target
set(__CPU_LINK_TARGET ${CMAKE_SYSTEM_PROCESSOR})
if("nodsp" IN_LIST __CPU_FEATURES)
diff --git a/tensorflow.cmake b/tensorflow.cmake
index 7e02636..6275f3d 100644
--- a/tensorflow.cmake
+++ b/tensorflow.cmake
@@ -31,12 +31,6 @@ 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 "cortex_generic")
@@ -57,7 +51,20 @@ string(JOIN TFLU_TAGS " " TFLU_TAGS)
# Command and target
add_custom_target(tflu_gen ALL
- COMMAND make -j${J} -f ${TFLU_PATH}/tools/make/Makefile microlite TARGET=${TFLU_TARGET} TARGET_ARCH=${TFLU_TARGET_ARCH} CC_TOOL=${TFLU_CC} CXX_TOOL=${TFLU_CXX} AR_TOOL=${TFLU_AR} GENDIR=${TFLU_GENDIR} CMSIS_PATH=${CMSIS_PATH} ETHOSU_DRIVER_PATH=${CORE_DRIVER_PATH} ETHOSU_DRIVER_LIBS=${TFLU_ETHOSU_LIBS} TAGS="${TFLU_TAGS}" BUILD_TYPE=${TFLU_BUILD_TYPE} $<$<BOOL:${TFLU_OPTIMIZATION_LEVEL}>:OPTIMIZATION_LEVEL=${TFLU_OPTIMIZATION_LEVEL}>
+ COMMAND make -j${J} -f ${TFLU_PATH}/tools/make/Makefile microlite
+ GENDIR=${TFLU_GENDIR}
+ TARGET=${TFLU_TARGET}
+ TARGET_ARCH=${TFLU_TARGET_ARCH}
+ TAGS="${TFLU_TAGS}"
+ CC_TOOL=${TFLU_CC}
+ CXX_TOOL=${TFLU_CXX}
+ AR_TOOL=${TFLU_AR}
+ $<$<BOOL:${FLOAT}>:FLOAT=${FLOAT}>
+ BUILD_TYPE=${TFLU_BUILD_TYPE}
+ $<$<BOOL:${TFLU_OPTIMIZATION_LEVEL}>:OPTIMIZATION_LEVEL=${TFLU_OPTIMIZATION_LEVEL}>
+ CMSIS_PATH=${CMSIS_PATH}
+ ETHOSU_DRIVER_PATH=${CORE_DRIVER_PATH}
+ ETHOSU_DRIVER_LIBS=${TFLU_ETHOSU_LIBS}
BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/tensorflow/tensorflow/lite/micro/tools/make/downloads
WORKING_DIRECTORY ${TENSORFLOW_PATH})