From d273d8e9c8513079f807b48af2e277f46469acf0 Mon Sep 17 00:00:00 2001 From: Kristofer Jonsson Date: Tue, 13 Oct 2020 09:35:55 +0200 Subject: Pass FLOAT flag to Tensorflow Lite micro Change-Id: Ia8c2c3993e8937643ddb5193c79aa5ab624e046c --- cmake/toolchain/armclang.cmake | 15 +++++++++++++++ tensorflow.cmake | 21 ++++++++++++++------- 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} $<$: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} + $<$:FLOAT=${FLOAT}> + BUILD_TYPE=${TFLU_BUILD_TYPE} + $<$: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}) -- cgit v1.2.1