summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorayamas01 <ayaan.masood@arm.com>2021-11-18 14:22:23 +0000
committerAyaan Masood <Ayaan.Masood@arm.com>2021-11-18 16:20:54 +0000
commit15f80701751f09caa023dabea6dec45f3825fa5b (patch)
tree851ee015c06b1435ee43afa3d59725931ae6f698
parente7a0393973a1a1c1ed05b1bf1838fe931416890a (diff)
downloadml-embedded-evaluation-kit-15f80701751f09caa023dabea6dec45f3825fa5b.tar.gz
MLECO-2525 Upgrade to C++ 14
-Updated CMake to use C++ 14 -Removed cmsis makefile include from tensorflow.cmake -Documentation update -Added more flags for processor in CMake Change-Id: I1c2b72141e98a5cf8bb09176d7c331da3b05b4c5
-rw-r--r--CMakeLists.txt6
-rw-r--r--docs/sections/coding_guidelines.md4
-rw-r--r--scripts/cmake/bare-metal-sources.cmake2
-rw-r--r--scripts/cmake/tensorflow.cmake4
-rw-r--r--scripts/cmake/toolchains/bare-metal-armclang.cmake10
-rw-r--r--scripts/cmake/toolchains/bare-metal-gcc.cmake9
-rw-r--r--source/application/hal/platforms/bare-metal/bsp/cmsis-device/include/cmsis.h4
7 files changed, 26 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d18105d..b747018 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,7 @@ message(STATUS "Build type is set to ${CMAKE_BUILD_TYPE}")
# Set language standards. TensorFlow Lite requires
# std=c++11.
set(CMAKE_C_STANDARD 99)
-set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD 14)
# Make the standard a requirement => prevent fallback to previous
# supported standard
@@ -159,8 +159,8 @@ if (${CMAKE_CROSSCOMPILING})
set(CMSIS_HEADERS
${CMSIS_DSP_INC_DIR}
${CMSIS_CORE_INC_DIR}
- ${CMSIS_SRC_PATH}/Device/ARM/ARMCM55/Include
- ${CMSIS_SRC_PATH}/Device/ARM/ARMCM55/Include/Template)
+ ${CMSIS_SRC_PATH}/Device/ARM/${ARM_CPU}/Include
+ ${CMSIS_SRC_PATH}/Device/ARM/${ARM_CPU}/Include/Template)
endif ()
# If we need NPU libraries:
diff --git a/docs/sections/coding_guidelines.md b/docs/sections/coding_guidelines.md
index 039b1e0..ae479f7 100644
--- a/docs/sections/coding_guidelines.md
+++ b/docs/sections/coding_guidelines.md
@@ -27,8 +27,8 @@ conventions, the intended outcome could be different for every case.
## Language version
-For this project, code written in C++ uses a subset of the `C++11` feature set and software may be written using the
-`C++11` language standard. Code written in C is compatible with the `C99` standard.
+For this project, code written in C++ uses a subset of the `C++14` feature set and software may be written using the
+`C++14` language standard. Code written in C is compatible with the `C99` standard.
Software components written in C/C++ may use the language features allowed and is encouraged.
diff --git a/scripts/cmake/bare-metal-sources.cmake b/scripts/cmake/bare-metal-sources.cmake
index c797d5f..98030d5 100644
--- a/scripts/cmake/bare-metal-sources.cmake
+++ b/scripts/cmake/bare-metal-sources.cmake
@@ -183,7 +183,7 @@ endif()
set(COMPILER_FLAGS "${TENSORFLOW_LITE_MICRO_FLAG} ${PROFILING_OPT} ${OPTIONAL_FLAGS}")
# For some reason, cmake doesn't pass the c++ standard flag, adding it manually
-set(CMAKE_CXX_FLAGS "${COMPILER_FLAGS} -std=c++11" CACHE INTERNAL "")
+set(CMAKE_CXX_FLAGS "${COMPILER_FLAGS}" CACHE INTERNAL "")
set(CMAKE_C_FLAGS "${COMPILER_FLAGS}" CACHE INTERNAL "")
set(CMAKE_ASM_COMPILE_OBJECT ${CMAKE_CXX_FLAGS})
diff --git a/scripts/cmake/tensorflow.cmake b/scripts/cmake/tensorflow.cmake
index c2906f5..60f191f 100644
--- a/scripts/cmake/tensorflow.cmake
+++ b/scripts/cmake/tensorflow.cmake
@@ -58,7 +58,7 @@ set(TENSORFLOW_LITE_MICRO_TARGET_TOOLCHAIN_ROOT "${TENSORFLOW_LITE_MICRO_TARGET_
set(TENSORFLOW_LITE_MICRO_PATH "${TENSORFLOW_SRC_PATH}/tensorflow/lite/micro")
set(TENSORFLOW_LITE_MICRO_GENDIR ${CMAKE_CURRENT_BINARY_DIR}/tensorflow/)
-set(CMSIS_DSP_MAKEFILE_INC ${CMAKE_CURRENT_SOURCE_DIR}/scripts/make/cmsis_dsp.inc)
+
set(ETHOS_EVAL_TARGET_MAKEFILE_INC ${CMAKE_CURRENT_SOURCE_DIR}/scripts/make/cortex_m_ethos_eval_makefile.inc)
if (TARGET_PLATFORM STREQUAL native)
@@ -127,3 +127,5 @@ add_custom_target(tensorflow_build ALL
# Create library
add_library(tensorflow-lite-micro STATIC IMPORTED)
add_dependencies(tensorflow-lite-micro tensorflow_build)
+set_property(TARGET tensorflow-lite-micro PROPERTY IMPORTED_LOCATION
+ "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${TENSORFLOW_LITE_MICRO_PLATFORM_LIB_NAME}")
diff --git a/scripts/cmake/toolchains/bare-metal-armclang.cmake b/scripts/cmake/toolchains/bare-metal-armclang.cmake
index c1f066b..2ac2ac4 100644
--- a/scripts/cmake/toolchains/bare-metal-armclang.cmake
+++ b/scripts/cmake/toolchains/bare-metal-armclang.cmake
@@ -38,12 +38,15 @@ endif()
if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m55)
# Flags for cortex-m55
- set(CPU_COMPILE_DEF CPU_CORTEX_M55)
+ set(CPU_ID M55)
+ set(CPU_COMPILE_DEF CPU_CORTEX_${CPU_ID})
set(CPU_NAME ${CMAKE_SYSTEM_PROCESSOR})
+ set(ARM_CPU "ARMC${CPU_ID}")
set(FLOAT_ABI hard)
set(ARM_MATH_DSP 1)
set(ARM_MATH_LOOPUNROLL 1)
- set(CPU_LINK_OPT "--cpu=Cortex-M55")
+ set(CPU_HEADER_FILE "${ARM_CPU}.h")
+ set(CPU_LINK_OPT "--cpu=Cortex-${CPU_ID}")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m33)
# Flags for cortex-m33 to go here
endif()
@@ -74,7 +77,8 @@ add_compile_options(
# Compile definitions:
add_compile_definitions(
PLATFORM_HAL=${PLATFORM_HAL}
- ${CPU_COMPILE_DEF}=1
+ CPU_HEADER_FILE=\"${CPU_HEADER_FILE}\"
+ $<$<BOOL:${CPU_COMPILE_DEF}>:${CPU_COMPILE_DEF}>
$<$<BOOL:${ARM_MATH_DSP}>:ARM_MATH_DSP>
$<$<BOOL:${ARM_MATH_LOOPUNROLL}>:ARM_MATH_LOOPUNROLL>)
diff --git a/scripts/cmake/toolchains/bare-metal-gcc.cmake b/scripts/cmake/toolchains/bare-metal-gcc.cmake
index 2ffc1bb..455f5ec 100644
--- a/scripts/cmake/toolchains/bare-metal-gcc.cmake
+++ b/scripts/cmake/toolchains/bare-metal-gcc.cmake
@@ -36,11 +36,15 @@ endif()
if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m55)
# Flags for cortex-m55
- set(CPU_COMPILE_DEF CPU_CORTEX_M55)
+ set(CPU_ID M55)
+ set(CPU_COMPILE_DEF CPU_CORTEX_${CPU_ID})
set(CPU_NAME ${CMAKE_SYSTEM_PROCESSOR})
+ set(ARM_CPU "ARMC${CPU_ID}")
set(FLOAT_ABI hard)
set(ARM_MATH_DSP 1)
set(ARM_MATH_LOOPUNROLL 1)
+ set(CPU_HEADER_FILE "${ARM_CPU}.h")
+ set(CPU_LINK_OPT "--cpu=Cortex-${CPU_ID}")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m33)
# Flags for cortex-m33 to go here
endif()
@@ -71,7 +75,8 @@ add_compile_options(
# Compile definitions:
add_compile_definitions(
PLATFORM_HAL=${PLATFORM_HAL}
- ${CPU_COMPILE_DEF}=1
+ CPU_HEADER_FILE=\"${CPU_HEADER_FILE}\"
+ $<$<BOOL:${CPU_COMPILE_DEF}>:${CPU_COMPILE_DEF}>
$<$<BOOL:${ARM_MATH_DSP}>:ARM_MATH_DSP>
$<$<BOOL:${ARM_MATH_LOOPUNROLL}>:ARM_MATH_LOOPUNROLL>)
diff --git a/source/application/hal/platforms/bare-metal/bsp/cmsis-device/include/cmsis.h b/source/application/hal/platforms/bare-metal/bsp/cmsis-device/include/cmsis.h
index 969db15..9d6326a 100644
--- a/source/application/hal/platforms/bare-metal/bsp/cmsis-device/include/cmsis.h
+++ b/source/application/hal/platforms/bare-metal/bsp/cmsis-device/include/cmsis.h
@@ -17,7 +17,9 @@
#ifndef BAREMETAL_CMSIS_H
#define BAREMETAL_CMSIS_H
-#include "ARMCM55.h" /* Cortex M system header file from CMSIS. */
+#if defined(CPU_HEADER_FILE)
+#include CPU_HEADER_FILE /* Cortex M system header file from CMSIS. */
+#endif /* CPU_HEADER_FILE */
#include "irqs.h" /* Interrupt definitions file. */
/* Addition to template functions should be mentioned here. */