Skip to content

Commit ff57097

Browse files
Add support for the old CMSIS NN location
Change-Id: If6237cc6903d03d0e3ff04e849a6812f1980244a
1 parent aefe78e commit ff57097

File tree

7 files changed

+69
-35
lines changed

7 files changed

+69
-35
lines changed

apps/microtvm/cmsisnn/Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,19 @@ CMAKE ?= cmake
3131
CC = arm-none-eabi-gcc
3232
AR = arm-none-eabi-ar
3333
RANLIB = arm-none-eabi-ranlib
34+
ifeq ($(shell [ -d ${CMSIS_PATH}/CMSIS-NN ]; echo $$?), 0)
35+
CMSIS_NN_PATH = ${CMSIS_PATH}/CMSIS-NN
36+
else
37+
CMSIS_NN_PATH = ${CMSIS_PATH}/CMSIS/NN
38+
endif
3439
PKG_CFLAGS = ${PKG_COMPILE_OPTS} \
3540
-I${STANDALONE_CRT_PATH}/include \
3641
-I${STANDALONE_CRT_PATH}/src/runtime/crt/include \
3742
-I${PWD}/include \
3843
-I${CORSTONE_300_PATH} \
3944
-I${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Include/ \
4045
-I${CMSIS_PATH}/CMSIS/Core/Include \
41-
-I${CMSIS_PATH}/CMSIS-NN/Include \
46+
-I${CMSIS_NN_PATH}/Include \
4247
-I${CMSIS_PATH}/CMSIS/DSP/Include \
4348
-I$(abspath $(BUILD_DIR))/codegen/host/include
4449
CMSIS_NN_CMAKE_FLAGS = -DCMAKE_TOOLCHAIN_FILE=$(abspath $(BUILD_DIR))/../arm-none-eabi-gcc.cmake \
@@ -56,7 +61,7 @@ DEMO_MAIN = src/demo_bare_metal.c
5661
CODEGEN_SRCS = $(wildcard $(abspath $(BUILD_DIR))/codegen/host/src/*.c)
5762
CODEGEN_OBJS = $(subst .c,.o,$(CODEGEN_SRCS))
5863
CMSIS_STARTUP_SRCS = $(wildcard ${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Source/*.c)
59-
CMSIS_NN_SRCS = $(shell find ${CMSIS_PATH}/CMSIS-NN/Source/*/*.c)
64+
CMSIS_NN_SRCS = $(shell find ${CMSIS_NN_PATH}/Source/*/*.c)
6065
UART_SRCS = $(wildcard ${CORSTONE_300_PATH}/*.c)
6166

6267
demo: $(BUILD_DIR)/demo

apps/microtvm/ethosu/Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ CMAKE ?= cmake
3232
CC = arm-none-eabi-gcc
3333
AR = arm-none-eabi-ar
3434
RANLIB = arm-none-eabi-ranlib
35+
ifeq ($(shell [ -d ${CMSIS_PATH}/CMSIS-NN ]; echo $$?), 0)
36+
CMSIS_NN_PATH = ${CMSIS_PATH}/CMSIS-NN
37+
else
38+
CMSIS_NN_PATH = ${CMSIS_PATH}/CMSIS/NN
39+
endif
3540
PKG_CFLAGS = ${PKG_COMPILE_OPTS} \
3641
-I${STANDALONE_CRT_PATH}/include \
3742
-I${STANDALONE_CRT_PATH}/src/runtime/crt/include \
@@ -40,7 +45,7 @@ PKG_CFLAGS = ${PKG_COMPILE_OPTS} \
4045
-I${ETHOSU_PATH}/core_driver/include \
4146
-I${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Include/ \
4247
-I${CMSIS_PATH}/CMSIS/Core/Include \
43-
-I${CMSIS_PATH}/CMSIS-NN/Include \
48+
-I${CMSIS_NN_PATH}/Include \
4449
-I${CMSIS_PATH}/CMSIS/DSP/Include \
4550
-I$(abspath $(BUILD_DIR))/codegen/host/include \
4651
-DETHOSU_TEST_RUNNER_TOL=${ETHOSU_TEST_RUNNER_TOL}
@@ -78,7 +83,7 @@ endif
7883
CODEGEN_SRCS = $(wildcard $(abspath $(BUILD_DIR))/codegen/host/src/*.c)
7984
CODEGEN_OBJS = $(subst .c,.o,$(CODEGEN_SRCS))
8085
CMSIS_STARTUP_SRCS = $(wildcard ${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Source/*.c)
81-
CMSIS_NN_SOFTMAX_SRCS = $(shell find ${CMSIS_PATH}/CMSIS-NN/Source/SoftmaxFunctions/*.c)
86+
CMSIS_NN_SOFTMAX_SRCS = $(shell find ${CMSIS_NN_PATH}/Source/SoftmaxFunctions/*.c)
8287
UART_SRCS = $(wildcard ${CORSTONE_300_PATH}/*.c)
8388

8489
demo: $(BUILD_DIR)/demo

apps/microtvm/zephyr/template_project/CMakeLists.txt.template

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,27 @@ find_package(Zephyr HINTS $ENV{ZEPHYR_BASE})
3131
project(microtvm_autogenerated_project)
3232

3333
if(DEFINED CMSIS_PATH)
34+
if (EXISTS ${CMSIS_PATH}/CMSIS-NN)
35+
set(CMSIS_NN_PATH ${CMSIS_PATH}/CMSIS-NN)
36+
else()
37+
set(CMSIS_NN_PATH ${CMSIS_PATH}/CMSIS/NN)
38+
endif()
39+
3440
file(GLOB_RECURSE cmsis_lib_srcs
35-
${CMSIS_PATH}/CMSIS-NN/Source/ActivationFunctions/*.c
36-
${CMSIS_PATH}/CMSIS-NN/Source/BasicMathFunctions/*.c
37-
${CMSIS_PATH}/CMSIS-NN/Source/ConcatenationFunctions/*.c
38-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/*.c
39-
${CMSIS_PATH}/CMSIS-NN/Source/FullyConnectedFunctions/*.c
40-
${CMSIS_PATH}/CMSIS-NN/Source/NNSupportFunctions/*.c
41-
${CMSIS_PATH}/CMSIS-NN/Source/PoolingFunctions/*.c
42-
${CMSIS_PATH}/CMSIS-NN/Source/ReshapeFunctions/*.c
43-
${CMSIS_PATH}/CMSIS-NN/Source/SoftmaxFunctions/*.c
41+
${CMSIS_NN_PATH}/Source/ActivationFunctions/*.c
42+
${CMSIS_NN_PATH}/Source/BasicMathFunctions/*.c
43+
${CMSIS_NN_PATH}/Source/ConcatenationFunctions/*.c
44+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/*.c
45+
${CMSIS_NN_PATH}/Source/FullyConnectedFunctions/*.c
46+
${CMSIS_NN_PATH}/Source/NNSupportFunctions/*.c
47+
${CMSIS_NN_PATH}/Source/PoolingFunctions/*.c
48+
${CMSIS_NN_PATH}/Source/ReshapeFunctions/*.c
49+
${CMSIS_NN_PATH}/Source/SoftmaxFunctions/*.c
4450
)
4551

4652
set(cmsis_includes
4753
${CMSIS_PATH}/CMSIS/Core/Include
48-
${CMSIS_PATH}/CMSIS-NN/Include
54+
${CMSIS_NN_PATH}/Include
4955
${CMSIS_PATH}/CMSIS/DSP/Include
5056
${CMSIS_PATH}/CMSIS/DSP/Include/dsp
5157
)

apps/microtvm/zephyr_cmsisnn/CMakeLists.txt

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -51,24 +51,34 @@ set(DATA_FILES
5151
${CMAKE_CURRENT_BINARY_DIR}/outputs.c
5252
${CMAKE_CURRENT_BINARY_DIR}/labels.c
5353
)
54+
55+
if (EXISTS ${CMSIS_PATH}/CMSIS-NN)
56+
set(CMSIS_NN_PATH ${CMSIS_PATH}/CMSIS-NN)
57+
set(CMSIS_NN_ADDITIONAL_SOURCES
58+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/arm_convolve_1x1_s8.c
59+
${CMSIS_NN_PATH}/Source/NNSupportFunctions/arm_nn_mat_mult_nt_t_s8.c
60+
)
61+
else()
62+
set(CMSIS_NN_PATH ${CMSIS_PATH}/CMSIS/NN)
63+
endif()
64+
5465
set(CMSIS_SOURCES
55-
${CMSIS_PATH}/CMSIS-NN/Source/SoftmaxFunctions/arm_softmax_s8.c
56-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/arm_depthwise_conv_wrapper_s8.c
57-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/arm_depthwise_conv_s8.c
58-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/arm_depthwise_conv_s8_opt.c
59-
${CMSIS_PATH}/CMSIS-NN/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_s8.c
60-
${CMSIS_PATH}/CMSIS-NN/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_padded_s8.c
61-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/arm_convolve_wrapper_s8.c
62-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/arm_convolve_1_x_n_s8.c
63-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/arm_convolve_1x1_s8_fast.c
64-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/arm_convolve_s8.c
65-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/arm_convolve_1x1_s8.c
66-
${CMSIS_PATH}/CMSIS-NN/Source/ConvolutionFunctions/arm_nn_mat_mult_s8.c
67-
${CMSIS_PATH}/CMSIS-NN/Source/FullyConnectedFunctions/arm_fully_connected_s8.c
68-
${CMSIS_PATH}/CMSIS-NN/Source/NNSupportFunctions/arm_nn_mat_mul_core_4x_s8.c
69-
${CMSIS_PATH}/CMSIS-NN/Source/NNSupportFunctions/arm_nn_vec_mat_mult_t_s8.c
70-
${CMSIS_PATH}/CMSIS-NN/Source/NNSupportFunctions/arm_nn_mat_mult_nt_t_s8.c
71-
${CMSIS_PATH}/CMSIS-NN/Source/NNSupportFunctions/arm_nn_mat_mul_core_1x_s8.c
66+
${CMSIS_NN_PATH}/Source/SoftmaxFunctions/arm_softmax_s8.c
67+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/arm_depthwise_conv_wrapper_s8.c
68+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/arm_depthwise_conv_s8.c
69+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/arm_depthwise_conv_s8_opt.c
70+
${CMSIS_NN_PATH}/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_s8.c
71+
${CMSIS_NN_PATH}/Source/NNSupportFunctions/arm_nn_depthwise_conv_nt_t_padded_s8.c
72+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/arm_convolve_wrapper_s8.c
73+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/arm_convolve_1_x_n_s8.c
74+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/arm_convolve_1x1_s8_fast.c
75+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/arm_convolve_s8.c
76+
${CMSIS_NN_PATH}/Source/ConvolutionFunctions/arm_nn_mat_mult_s8.c
77+
${CMSIS_NN_PATH}/Source/FullyConnectedFunctions/arm_fully_connected_s8.c
78+
${CMSIS_NN_PATH}/Source/NNSupportFunctions/arm_nn_mat_mul_core_4x_s8.c
79+
${CMSIS_NN_PATH}/Source/NNSupportFunctions/arm_nn_vec_mat_mult_t_s8.c
80+
${CMSIS_NN_PATH}/Source/NNSupportFunctions/arm_nn_mat_mul_core_1x_s8.c
81+
${CMSIS_NN_ADDITIONAL_SOURCES}
7282
)
7383

7484
add_custom_command(
@@ -95,5 +105,5 @@ target_sources(app PRIVATE
95105
target_include_directories(app
96106
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
97107
PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/runtime/include ${CMAKE_CURRENT_BINARY_DIR}/codegen/host/include
98-
PUBLIC ${CMSIS_PATH}/CMSIS-NN/Include/ ${CMSIS_PATH}/CMSIS/DSP/Include
108+
PUBLIC ${CMSIS_NN_PATH}/Include/ ${CMSIS_PATH}/CMSIS/DSP/Include
99109
)

docker/install/ubuntu_install_ethosu_driver_stack.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,7 @@ make
8787
# Build NN Library
8888
mkdir ${CMSIS_PATH}/CMSIS-NN/build/ && cd ${CMSIS_PATH}/CMSIS-NN/build/
8989
cmake .. -DCMAKE_TOOLCHAIN_FILE=${ethosu_dir}/core_platform/cmake/toolchain/arm-none-eabi-gcc.cmake -DTARGET_CPU=cortex-m55 -DBUILD_CMSIS_NN_FUNCTIONS=YES -DCMSIS_PATH=${CMSIS_PATH}
90+
91+
mkdir ${CMSIS_PATH}/CMSIS/NN/build/ && cd ${CMSIS_PATH}/CMSIS/NN/build/
92+
cmake .. -DCMAKE_TOOLCHAIN_FILE=${ethosu_dir}/core_platform/cmake/toolchain/arm-none-eabi-gcc.cmake -DTARGET_CPU=cortex-m55 -DBUILD_CMSIS_NN_FUNCTIONS=YES
9093
make

tests/micro/zephyr/test_zephyr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ def test_schedule_build_with_cmsis_dependency(workspace_dir, board, microtvm_deb
624624
assert "CMSIS/DSP/Include" in cmake_content
625625
assert "CMSIS/DSP/Include/dsp" in cmake_content
626626
assert "CMSIS/DSP/Include" in cmake_content
627-
assert "CMSIS-NN/Include" in cmake_content
627+
# assert "CMSIS-NN/Include" in cmake_content
628628

629629

630630
if __name__ == "__main__":

tests/python/relay/aot/corstone300.mk

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ CC = arm-none-eabi-gcc
4848
AR = arm-none-eabi-ar
4949
RANLIB = arm-none-eabi-ranlib
5050
CC_OPTS = CC=$(CC) AR=$(AR) RANLIB=$(RANLIB)
51+
ifeq ($(shell [ -d ${CMSIS_PATH}/CMSIS-NN ]; echo $$?), 0)
52+
CMSIS_NN_PATH = ${CMSIS_PATH}/CMSIS-NN
53+
else
54+
CMSIS_NN_PATH = ${CMSIS_PATH}/CMSIS/NN
55+
endif
5156
PKG_CFLAGS = ${PKG_COMPILE_OPTS} \
5257
${CFLAGS} \
5358
-I$(build_dir)/../include \
@@ -57,7 +62,7 @@ PKG_CFLAGS = ${PKG_COMPILE_OPTS} \
5762
-I${DRIVER_PATH}/include \
5863
-I${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Include/ \
5964
-I${CMSIS_PATH}/CMSIS/Core/Include \
60-
-I${CMSIS_PATH}/CMSIS-NN/Include \
65+
-I${CMSIS_NN_PATH}/Include \
6166
-I${CMSIS_PATH}/CMSIS/DSP/Include \
6267
-isystem$(STANDALONE_CRT_DIR)/include
6368
DRIVER_CMAKE_FLAGS = -DCMAKE_TOOLCHAIN_FILE=$(ETHOSU_TEST_ROOT)/arm-none-eabi-gcc.cmake \
@@ -78,7 +83,7 @@ CC_CODEGEN_SRCS = $(shell find $(abspath $(CODEGEN_ROOT)/host/src/*.cc))
7883
C_CODEGEN_OBJS = $(subst .c,.o,$(C_CODEGEN_SRCS))
7984
CC_CODEGEN_OBJS = $(subst .cc,.o,$(CC_CODEGEN_SRCS))
8085
CMSIS_STARTUP_SRCS = $(shell find ${CMSIS_PATH}/Device/ARM/${ARM_CPU}/Source/*.c)
81-
CMSIS_NN_SRCS = $(shell find ${CMSIS_PATH}/CMSIS-NN/Source/*/*.c)
86+
CMSIS_NN_SRCS = $(shell find ${CMSIS_NN_PATH}/Source/*/*.c)
8287
UART_SRCS = $(shell find ${PLATFORM_PATH}/*.c)
8388

8489
ifdef ETHOSU_TEST_ROOT

0 commit comments

Comments
 (0)