| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- INCLUDE(FetchContent)
- SET(FETCHCONTENT_UPDATES_DISCONNECTED ON)
- FetchContent_Declare(
- arm_cmsis
- GIT_REPOSITORY https://github.com/ARM-software/CMSIS_5.git
- )
- FetchContent_GetProperties(arm_cmsis)
- IF(NOT arm_cmsis_POPULATED)
- MESSAGE(STATUS "Getting most recent ARM CMSIS sources")
- FetchContent_Populate(arm_cmsis)
- EXECUTE_PROCESS(COMMAND git -C ${arm_cmsis_SOURCE_DIR} checkout develop)
- ENDIF()
- # FIND_PACKAGE(Fixedpoint)
- SET(ARM_CMSIS_DIR ${arm_cmsis_SOURCE_DIR}/CMSIS)
- SET(CMSIS_NN_HEADERS
- arm_nnfunctions.h
- arm_nnsupportfunctions.h
- arm_nn_tables.h
- )
- FILE(GLOB CMSIS_NN_SOURCES ${ARM_CMSIS_DIR}/NN/Source/*/*.c)
- FIND_PATH(CMSIS_NN_INC_DIR ${CMSIS_NN_HEADERS}
- PATHS ${ARM_CMSIS_DIR}/NN/Include
- CMAKE_FIND_ROOT_PATH_BOTH
- )
- SET(CMSIS_DSP_HEADERS
- arm_common_tables.h
- arm_const_structs.h
- arm_helium_utils.h
- arm_math.h
- arm_mve_tables.h
- arm_vec_math.h
- )
- SET(CMSIS_DSP_PRIVATE_HEADERS
- arm_sorting.h
- arm_vec_fft.h
- arm_vec_filtering.h
- )
- SET(CMSIS_DSP_SRCS
- BasicMathFunctions.c
- arm_gaussian_naive_bayes_predict_f32.c
- CommonTables.c
- ComplexMathFunctions.c
- ControllerFunctions.c
- arm_boolean_distance.c
- arm_boolean_distance_template.h
- arm_braycurtis_distance_f32.c
- arm_canberra_distance_f32.c
- arm_chebyshev_distance_f32.c
- arm_cityblock_distance_f32.c
- arm_correlation_distance_f32.c
- arm_cosine_distance_f32.c
- arm_dice_distance.c
- arm_euclidean_distance_f32.c
- arm_hamming_distance.c
- arm_jaccard_distance.c
- arm_jensenshannon_distance_f32.c
- arm_kulsinski_distance.c
- arm_minkowski_distance_f32.c
- arm_rogerstanimoto_distance.c
- arm_russellrao_distance.c
- arm_sokalmichener_distance.c
- arm_sokalsneath_distance.c
- arm_yule_distance.c
- FastMathFunctions.c
- FilteringFunctions.c
- MatrixFunctions.c
- StatisticsFunctions.c
- SupportFunctions.c
- arm_svm_linear_init_f32.c
- arm_svm_linear_predict_f32.c
- arm_svm_polynomial_init_f32.c
- arm_svm_polynomial_predict_f32.c
- arm_svm_rbf_init_f32.c
- arm_svm_rbf_predict_f32.c
- arm_svm_sigmoid_init_f32.c
- arm_svm_sigmoid_predict_f32.c
- TransformFunctions.c
- )
- FOREACH(SRC ${CMSIS_DSP_SRCS})
- STRING(MAKE_C_IDENTIFIER "${SRC}" SRC_CLEAN)
- SET(CMSIS_DSP_${SRC_CLEAN}_FILE ${SRC_CLEAN}-NOTFOUND)
- FIND_FILE(CMSIS_DSP_${SRC_CLEAN}_FILE ${SRC}
- PATH_SUFFIXES
- BasicMathFunctions
- BayesFunctions
- CommonTables
- ComplexMathFunctions
- ControllerFunctions
- DistanceFunctions
- FastMathFunctions
- FilteringFunctions
- MatrixFunctions
- StatisticsFunctions
- SupportFunctions
- SVMFunctions
- TransformFunctions
- PATHS ${ARM_CMSIS_DIR}/DSP/Source
- CMAKE_FIND_ROOT_PATH_BOTH
- )
- LIST(APPEND CMSIS_DSP_SOURCES ${CMSIS_DSP_${SRC_CLEAN}_FILE})
- ENDFOREACH()
- FIND_PATH(CMSIS_DSP_PRIVATE_INC_DIR ${CMSIS_DSP_PRIVATE_HEADERS}
- PATHS ${ARM_CMSIS_DIR}/DSP/PrivateInclude
- CMAKE_FIND_ROOT_PATH_BOTH
- )
- FIND_PATH(CMSIS_DSP_INC_DIR ${CMSIS_DSP_HEADERS}
- PATHS ${ARM_CMSIS_DIR}/DSP/Include
- CMAKE_FIND_ROOT_PATH_BOTH
- )
- SET(CMSIS_DSP_INC_DIRS
- ${CMSIS_DSP_PRIVATE_INC_DIR}
- ${CMSIS_DSP_INC_DIR}
- )
- SET(CMSISNN_INCLUDE_DIRS
- ${CMSIS_DSP_INC_DIRS}
- ${CMSIS_NN_INC_DIR}
- )
- SET(CMSISNN_SOURCES
- ${CMSIS_DSP_SOURCES}
- ${CMSIS_NN_SOURCES}
- )
- IF(STM32_FAMILY STREQUAL "F0")
- ADD_DEFINITIONS(-DARM_MATH_CM0)
- ELSEIF(STM32_FAMILY STREQUAL "F3")
- ADD_DEFINITIONS(-DARM_MATH_CM3)
- ELSEIF(STM32_FAMILY STREQUAL "F4")
- #TODO find better solution to this
- ADD_DEFINITIONS(-D__FPU_PRESENT=1)
- ADD_DEFINITIONS(-DARM_MATH_CM4)
- ELSEIF(STM32_FAMILY STREQUAL "F7")
- ADD_DEFINITIONS(-DARM_MATH_CM7)
- ELSEIF(STM32_FAMILY STREQUAL "L0")
- ADD_DEFINITIONS(-DARM_MATH_CM0PLUS)
- ELSE()
- MESSAGE(STATUS "ARM_MATH define not found, see arm_math.h")
- ENDIF()
- INCLUDE(FindPackageHandleStandardArgs)
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(CMSISNN DEFAULT_MSG CMSISNN_INCLUDE_DIRS CMSISNN_SOURCES)
|