pkg/cmsis-nn: add support

This commit is contained in:
Alexandre Abadie 2020-01-08 09:41:30 +01:00
parent b0df1c57ce
commit fdd2b97387
No known key found for this signature in database
GPG Key ID: 1C919A403CAE1405
4 changed files with 59 additions and 0 deletions

10
pkg/cmsis-nn/Makefile Normal file
View File

@ -0,0 +1,10 @@
PKG_NAME=cmsis-nn
PKG_URL=https://github.com/ARM-software/CMSIS_5
PKG_VERSION=5.6.0
PKG_LICENSE=Apache-2.0
CFLAGS += -Wno-strict-aliasing -Wno-unused-parameter
include $(RIOTBASE)/pkg/pkg.mk
all:
"$(MAKE)" -C $(PKG_BUILDDIR) -f $(CURDIR)/Makefile.$(PKG_NAME)

View File

@ -0,0 +1,42 @@
PKG_NAME=cmsis-nn
# A list of all the directories to build for CMSIS-NN
CMSIS_DIRS += \
CMSIS/NN/Source/ActivationFunctions \
CMSIS/NN/Source/BasicMathFunctions \
CMSIS/NN/Source/ConcatenationFunctions \
CMSIS/NN/Source/ConvolutionFunctions \
CMSIS/NN/Source/FullyConnectedFunctions \
CMSIS/NN/Source/NNSupportFunctions \
CMSIS/NN/Source/PoolingFunctions \
CMSIS/NN/Source/ReshapeFunctions \
CMSIS/NN/Source/SoftmaxFunctions \
#
INCLUDES += -I$(CURDIR)/CMSIS/NN/Include
CMSIS_BINDIRS = $(addprefix $(BINDIR)/$(PKG_NAME)/,$(CMSIS_DIRS))
# Override default RIOT search path for sources to include all of the CMSIS-NN
# sources in one library instead of one library per subdirectory.
SRC := $(foreach DIR,$(CMSIS_DIRS),$(wildcard $(DIR)/*.c))
SRCXX := $(foreach DIR,$(CMSIS_DIRS),$(wildcard $(DIR)/*.cpp))
ASMSRC := $(foreach DIR,$(CMSIS_DIRS),$(wildcard $(DIR)/*.s))
ASSMSRC := $(foreach DIR,$(CMSIS_DIRS),$(wildcard $(DIR)/*.S))
OBJC := $(SRC:%.c=$(BINDIR)/$(PKG_NAME)/%.o)
OBJCXX := $(SRCXX:%.cpp=$(BINDIR)/$(PKG_NAME)/%.o)
ASMOBJ := $(ASMSRC:%.s=$(BINDIR)/$(PKG_NAME)/%.o)
ASSMOBJ := $(ASSMSRC:%.S=$(BINDIR)/$(PKG_NAME)/%.o)
OBJ = $(OBJC) $(OBJCXX) $(ASMOBJ) $(ASSMOBJ)
# Create subdirectories if they do not already exist
$(OBJ): | $(CMSIS_BINDIRS)
$(CMSIS_BINDIRS):
@mkdir -p $@
# Reset the default goal.
.DEFAULT_GOAL :=
# Include RIOT settings and recipes
include $(RIOTBASE)/Makefile.base

View File

@ -0,0 +1 @@
FEATURES_REQUIRED += arch_cortexm

View File

@ -0,0 +1,6 @@
INCLUDES += -I$(PKGDIRBASE)/cmsis-nn/CMSIS/NN/Include
# Required for some basic math functions
INCLUDES += -I$(PKGDIRBASE)/cmsis-nn/CMSIS/DSP/Include
CFLAGS += -Wno-sign-compare