From 2861ab5ff38f688d47ea1cfdd17d3496c2fc713d Mon Sep 17 00:00:00 2001 From: Alexandre Abadie Date: Mon, 25 Apr 2022 13:00:27 +0200 Subject: [PATCH 1/2] pkg/cmsis-nn: rework deps + model in Kconfig --- pkg/Kconfig | 1 + pkg/cmsis-nn/Kconfig | 36 ++++++++++++++++++++++++++++++++++++ pkg/cmsis-nn/Makefile | 22 +++++++++++++++------- pkg/cmsis-nn/Makefile.dep | 12 ++++++------ 4 files changed, 58 insertions(+), 13 deletions(-) create mode 100644 pkg/cmsis-nn/Kconfig diff --git a/pkg/Kconfig b/pkg/Kconfig index 161e1752dd1f..4d9e83f36879 100644 --- a/pkg/Kconfig +++ b/pkg/Kconfig @@ -11,6 +11,7 @@ rsource "c25519/Kconfig" rsource "cayenne-lpp/Kconfig" rsource "cifra/Kconfig" rsource "cmsis-dsp/Kconfig" +rsource "cmsis-nn/Kconfig" rsource "cn-cbor/Kconfig" rsource "driver_atwinc15x0/Kconfig" rsource "driver_bme680/Kconfig" diff --git a/pkg/cmsis-nn/Kconfig b/pkg/cmsis-nn/Kconfig new file mode 100644 index 000000000000..92c7c0afff6c --- /dev/null +++ b/pkg/cmsis-nn/Kconfig @@ -0,0 +1,36 @@ +# Copyright (c) 2022 Inria +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. +# + +config PACKAGE_CMSIS-NN + bool "NN ARM CMSIS package" + depends on TEST_KCONFIG + depends on HAS_CPU_CORE_CORTEXM + + select MODULE_CMSIS-NN_ACTIVATIONFUNCTIONS + select MODULE_CMSIS-NN_CONVOLUTIONFUNCTIONS + select MODULE_CMSIS-NN_FULLYCONNECTEDFUNCTIONS + select MODULE_CMSIS-NN_NNSUPPORTFUNCTIONS + select MODULE_CMSIS-NN_POOLINGFUNCTIONS + select MODULE_CMSIS-NN_SOFTMAXFUNCTIONS + +config MODULE_CMSIS-NN_ACTIVATIONFUNCTIONS + bool + +config MODULE_CMSIS-NN_CONVOLUTIONFUNCTIONS + bool + +config MODULE_CMSIS-NN_FULLYCONNECTEDFUNCTIONS + bool + +config MODULE_CMSIS-NN_NNSUPPORTFUNCTIONS + bool + +config MODULE_CMSIS-NN_POOLINGFUNCTIONS + bool + +config MODULE_CMSIS-NN_SOFTMAXFUNCTIONS + bool diff --git a/pkg/cmsis-nn/Makefile b/pkg/cmsis-nn/Makefile index 11c8c2e05f7c..5f1684e3922d 100644 --- a/pkg/cmsis-nn/Makefile +++ b/pkg/cmsis-nn/Makefile @@ -8,16 +8,24 @@ include $(RIOTBASE)/pkg/pkg.mk CFLAGS += -Wno-cast-align CMSIS_NN_MODULES = \ - cmsis-nn_ActivationFunctions \ - cmsis-nn_ConvolutionFunctions \ - cmsis-nn_FullyConnectedFunctions \ - cmsis-nn_NNSupportFunctions \ - cmsis-nn_PoolingFunctions \ - cmsis-nn_SoftmaxFunctions \ + cmsis-nn_activationfunctions \ + cmsis-nn_convolutionfunctions \ + cmsis-nn_fullyconnectedfunctions \ + cmsis-nn_nnsupportfunctions \ + cmsis-nn_poolingfunctions \ + cmsis-nn_softmaxfunctions \ + # + +DIR_activationfunctions := ActivationFunctions +DIR_convolutionfunctions := ConvolutionFunctions +DIR_fullyconnectedfunctions := FullyConnectedFunctions +DIR_nnsupportfunctions := NNSupportFunctions +DIR_poolingfunctions := PoolingFunctions +DIR_softmaxfunctions := SoftmaxFunctions .PHONY: cmsis-nn_% all: $(CMSIS_NN_MODULES) cmsis-nn_%: - $(MAKE) -C $(PKG_SOURCE_DIR)/CMSIS/NN/Source/$* -f $(CURDIR)/Makefile.cmsis-nn MODULE=$@ + $(MAKE) -C $(PKG_SOURCE_DIR)/CMSIS/NN/Source/$(DIR_$*) -f $(CURDIR)/Makefile.cmsis-nn MODULE=$@ diff --git a/pkg/cmsis-nn/Makefile.dep b/pkg/cmsis-nn/Makefile.dep index e554ad9d1017..bba61e53d0ba 100644 --- a/pkg/cmsis-nn/Makefile.dep +++ b/pkg/cmsis-nn/Makefile.dep @@ -1,8 +1,8 @@ FEATURES_REQUIRED += cpu_core_cortexm -USEMODULE += cmsis-nn_ActivationFunctions -USEMODULE += cmsis-nn_ConvolutionFunctions -USEMODULE += cmsis-nn_FullyConnectedFunctions -USEMODULE += cmsis-nn_NNSupportFunctions -USEMODULE += cmsis-nn_PoolingFunctions -USEMODULE += cmsis-nn_SoftmaxFunctions +USEMODULE += cmsis-nn_activationfunctions +USEMODULE += cmsis-nn_convolutionfunctions +USEMODULE += cmsis-nn_fullyconnectedfunctions +USEMODULE += cmsis-nn_nnsupportfunctions +USEMODULE += cmsis-nn_poolingfunctions +USEMODULE += cmsis-nn_softmaxfunctions From 32f8ef58e4244f4c2ade35c7519d4877b56e8830 Mon Sep 17 00:00:00 2001 From: Alexandre Abadie Date: Mon, 25 Apr 2022 13:00:41 +0200 Subject: [PATCH 2/2] tests/pkg_cmsis-nn: add Kconfig configuration --- tests/pkg_cmsis-nn/app.config.test | 1 + 1 file changed, 1 insertion(+) create mode 100644 tests/pkg_cmsis-nn/app.config.test diff --git a/tests/pkg_cmsis-nn/app.config.test b/tests/pkg_cmsis-nn/app.config.test new file mode 100644 index 000000000000..f981f057bb85 --- /dev/null +++ b/tests/pkg_cmsis-nn/app.config.test @@ -0,0 +1 @@ +CONFIG_PACKAGE_CMSIS-NN=y