This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git

commit 8dfd998db16401ebd0e41b02ef0f1a4eda11447a
Author: renzhiyuan1 <renzhiyu...@xiaomi.com>
AuthorDate: Thu May 23 14:22:33 2024 +0800

    cmake:add cmsis-nn CMake build
    
    Signed-off-by: renzhiyuan1 <renzhiyu...@xiaomi.com>
---
 mlearning/cmsis-nn/CMakeLists.txt | 90 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)

diff --git a/mlearning/cmsis-nn/CMakeLists.txt 
b/mlearning/cmsis-nn/CMakeLists.txt
new file mode 100644
index 000000000..c5944620d
--- /dev/null
+++ b/mlearning/cmsis-nn/CMakeLists.txt
@@ -0,0 +1,90 @@
+# 
##############################################################################
+# apps/mlearning/cmsis-nn/CMakeLists.txt
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more 
contributor
+# license agreements.  See the NOTICE file distributed with this work for
+# additional information regarding copyright ownership.  The ASF licenses this
+# file to you under the Apache License, Version 2.0 (the "License"); you may 
not
+# use this file except in compliance with the License.  You may obtain a copy 
of
+# the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations under
+# the License.
+#
+# 
##############################################################################
+
+if(CONFIG_MLEARNING_CMSIS_NN)
+
+  # 
############################################################################
+  # Config and Fetch CMSIS-NN lib
+  # 
############################################################################
+
+  set(CMSIS_NN_DIR ${CMAKE_CURRENT_LIST_DIR}/cmsis-nn)
+
+  if(NOT EXISTS ${CMSIS_NN_DIR})
+    set(CMSIS_NN_URL
+        
https://github.com/ARM-software/CMSIS-NN/archive/72e1ebf623ab1660a3e14e4e36fdcddce46f1991.zip
+    )
+    FetchContent_Declare(
+      cmsis_nn_fetch
+      URL ${CMSIS_NN_URL} SOURCE_DIR ${CMSIS_NN_DIR} BINARY_DIR
+          ${CMAKE_BINARY_DIR}/apps/mlearning/cmsis-nn/cmsis-nn
+      DOWNLOAD_NO_PROGRESS true
+      TIMEOUT 30)
+
+    FetchContent_GetProperties(cmsis_nn_fetch)
+
+    if(NOT cmsis_nn_fetch_POPULATED)
+      FetchContent_Populate(cmsis_nn_fetch)
+    endif()
+  endif()
+
+  # 
############################################################################
+  # Flags
+  # 
############################################################################
+
+  set(CFLAGS -Wno-undef -O3)
+
+  # 
############################################################################
+  # Sources
+  # 
############################################################################
+
+  file(
+    GLOB
+    CMSIS_NN_SRCS
+    ${CMSIS_NN_DIR}/Source/ActivationFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/BasicMathFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/PoolingFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/ConvolutionFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/SVDFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/FullyConnectedFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/NNSupportFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/ConcatenationFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/SoftmaxFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/LSTMFunctions/*.c
+    ${CMSIS_NN_DIR}/Source/ReshapeFunctions/*.c)
+
+  if(CONFIG_ARM_NEON)
+    list(
+      REMOVE_ITEM
+      CMSIS_NN_SRCS
+      ${CMSIS_NN_DIR}/Source/BasicMathFunctions/arm_elementwise_add_s8.c
+      ${CMSIS_NN_DIR}/Source/ConvolutionFunctions/arm_convolve_s8.c
+      ${CMSIS_NN_DIR}/Source/NNSupportFunctions/arm_nn_mat_mult_kernel_s8_s16.c
+      ${CMSIS_NN_DIR}/Source/NNSupportFunctions/arm_q7_to_q15_with_offset.c)
+  endif()
+
+  # 
############################################################################
+  # Library Configuration
+  # 
############################################################################
+
+  nuttx_add_library(cmsis_nn STATIC)
+  target_compile_options(cmsis_nn PRIVATE ${CFLAGS})
+  target_sources(cmsis_nn PRIVATE ${CMSIS_NN_SRCS})
+
+endif()

Reply via email to