-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathCMakeLists.txt
65 lines (53 loc) · 2.28 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
cmake_minimum_required(VERSION 3.13.1)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(example-standalone-inferencing-zephyr)
include(utils/cmake/utils.cmake)
# Needed for colorful output
zephyr_compile_options(-fdiagnostics-color=always)
# Use hardware acceleration for DSP and Neural Network code
# You'll need to disable these on non-Arm cores
add_definitions(-DEIDSP_USE_CMSIS_DSP=1
-DEIDSP_LOAD_CMSIS_DSP_SOURCES=1
-DEI_CLASSIFIER_TFLITE_ENABLE_CMSIS_NN=1
-DEIDSP_QUANTIZE_FILTERBANK=0
-DARM_MATH_LOOPUNROLL
-DMBEDTLS_PLATFORM_ZEROIZE_ALT
)
# Add the Edge Impulse SDK
add_subdirectory(edge-impulse-sdk/cmake/zephyr)
# Include directories (everything in the SDK is already included here)
set(INCLUDES
.
src
tflite-model
model-parameters
edge-impulse/ingestion-sdk-c
edge-impulse/ingestion-sdk-platform/NordicSemi-nrf52
edge-impulse/ingestion-sdk-platform/NordicSemi-nrf52/sensors
edge-impulse/mbedtls_hmac_sha256_sw
edge-impulse
)
include_directories(${INCLUDES})
RECURSIVE_FIND_FILE(MODEL_FILES "tflite-model" "*.cpp")
RECURSIVE_FIND_FILE(PLATFORM_FILES "edge-impulse/ingestion-sdk-platform/NordicSemi-nrf52" "*.cpp")
RECURSIVE_FIND_FILE(INGESTION_FILES "edge-impulse/ingestion-sdk-c/" "*.cpp")
RECURSIVE_FIND_FILE(MBEDTLS_FILES "edge-impulse/mbedtls_hmac_sha256_sw/mbedtls/src" "*.c")
RECURSIVE_FIND_FILE(FIRMWARE_SDK_FILES "firmware-sdk" "*.cpp")
RECURSIVE_FIND_FILE(FIRMWARE_SDK_C_FILES "firmware-sdk" "*.c")
# TODO: exlude fusion due to types conflict, remove after porting whole firmware
list(FILTER FIRMWARE_SDK_FILES EXCLUDE REGEX ".*ei_fusion\\.cpp$")
list(APPEND SOURCE_FILES ${S_FILES})
list(APPEND SOURCE_FILES ${C_FILES})
list(APPEND SOURCE_FILES ${CC_FILES})
list(APPEND SOURCE_FILES ${MODEL_FILES})
list(APPEND SOURCE_FILES ${PLATFORM_FILES})
list(APPEND SOURCE_FILES ${INGESTION_FILES})
list(APPEND SOURCE_FILES ${MBEDTLS_FILES})
list(APPEND SOURCE_FILES ${PORTING_FILES})
list(APPEND SOURCE_FILES ${FIRMWARE_SDK_FILES})
list(APPEND SOURCE_FILES ${FIRMWARE_SDK_C_FILES})
# add all sources to the project
target_sources(app PRIVATE ${SOURCE_FILES})
target_sources(app PRIVATE src/main.cpp)