From 9c6f9f8afcb003fd72944918d6b6e200d68c0918 Mon Sep 17 00:00:00 2001 From: Kshitij Sisodia Date: Fri, 20 May 2022 14:30:02 +0100 Subject: MLECO-3225: Using official support for Arm Cortex-M85 CPU. * CMake version requirement bumped up to 3.21.0 * CMake 3.22.4 installed in the local Python virtualenv * CPU flags updated in toolchain files. * Using __ARM_FEATURE_DSP instead of potentially defining ARM_MATH_DSP wrongly. * CMake project version bumped up to 22.05.0 Changes also made for MLECO-3107 (pack generation): * TensorFlow Lite Micro CMSIS-pack version updated to 1.22.02. * Change to using __ARM_FEATURE_DSP will also help the generated pack. Partial changes for MLECO-3095: * CMSIS updated to version post 5.9.0 * TensorFlow Lite Micro updated to latest available * Ethos-U driver and core-platform repositories updated to 20.05_rc2 tags. Change-Id: I012c9e65897aed8ce589cff9bfe3a19efc3edeb9 Signed-off-by: Kshitij Sisodia --- source/application/api/common/CMakeLists.txt | 2 +- source/application/api/use_case/ad/CMakeLists.txt | 2 +- source/application/api/use_case/asr/CMakeLists.txt | 2 +- .../api/use_case/img_class/CMakeLists.txt | 2 +- .../api/use_case/inference_runner/CMakeLists.txt | 2 +- source/application/api/use_case/kws/CMakeLists.txt | 2 +- .../api/use_case/noise_reduction/CMakeLists.txt | 2 +- .../api/use_case/object_detection/CMakeLists.txt | 2 +- source/application/api/use_case/vww/CMakeLists.txt | 2 +- source/hal/CMakeLists.txt | 3 +- .../source/components/cmsis_device/CMakeLists.txt | 3 +- source/hal/source/components/lcd/CMakeLists.txt | 4 +- source/hal/source/components/npu/CMakeLists.txt | 2 +- source/hal/source/components/npu_ta/CMakeLists.txt | 2 +- .../source/components/platform_pmu/CMakeLists.txt | 2 +- source/hal/source/components/stdout/CMakeLists.txt | 2 +- source/hal/source/platform/mps3/CMakeLists.txt | 3 +- source/hal/source/platform/native/CMakeLists.txt | 3 +- source/hal/source/platform/simple/CMakeLists.txt | 3 +- source/log/CMakeLists.txt | 3 +- source/math/CMakeLists.txt | 3 +- source/math/PlatformMath.cc | 60 +++++++++++----------- source/math/include/PlatformMath.hpp | 18 +++---- source/profiler/CMakeLists.txt | 1 - 24 files changed, 61 insertions(+), 69 deletions(-) (limited to 'source') diff --git a/source/application/api/common/CMakeLists.txt b/source/application/api/common/CMakeLists.txt index 5078adc..1d72eef 100644 --- a/source/application/api/common/CMakeLists.txt +++ b/source/application/api/common/CMakeLists.txt @@ -20,7 +20,7 @@ # NOTE: this library should not depend on HAL. # ######################################################### -cmake_minimum_required(VERSION 3.15.6) +cmake_minimum_required(VERSION 3.21.0) set(COMMON_UC_UTILS_TARGET common_api) project(${COMMON_UC_UTILS_TARGET} diff --git a/source/application/api/use_case/ad/CMakeLists.txt b/source/application/api/use_case/ad/CMakeLists.txt index 224816f..8cd703d 100644 --- a/source/application/api/use_case/ad/CMakeLists.txt +++ b/source/application/api/use_case/ad/CMakeLists.txt @@ -17,7 +17,7 @@ ######################################################### # ANOMALY DETECTION API library # ######################################################### -cmake_minimum_required(VERSION 3.15.6) +cmake_minimum_required(VERSION 3.21.0) set(AD_API_TARGET ad_api) project(${AD_API_TARGET} diff --git a/source/application/api/use_case/asr/CMakeLists.txt b/source/application/api/use_case/asr/CMakeLists.txt index 77e3d6a..dcd4bec 100644 --- a/source/application/api/use_case/asr/CMakeLists.txt +++ b/source/application/api/use_case/asr/CMakeLists.txt @@ -17,7 +17,7 @@ ######################################################### # AUTOMATIC SPEECH RECOGNITION API library # ######################################################### -cmake_minimum_required(VERSION 3.15.6) +cmake_minimum_required(VERSION 3.21.0) set(ASR_API_TARGET asr_api) project(${ASR_API_TARGET} diff --git a/source/application/api/use_case/img_class/CMakeLists.txt b/source/application/api/use_case/img_class/CMakeLists.txt index f4818d8..e8ec5f4 100644 --- a/source/application/api/use_case/img_class/CMakeLists.txt +++ b/source/application/api/use_case/img_class/CMakeLists.txt @@ -17,7 +17,7 @@ ######################################################### # IMG CLASS API library # ######################################################### -cmake_minimum_required(VERSION 3.15.6) +cmake_minimum_required(VERSION 3.21.0) set(IMG_CLASS_API_TARGET img_class_api) project(${IMG_CLASS_API_TARGET} diff --git a/source/application/api/use_case/inference_runner/CMakeLists.txt b/source/application/api/use_case/inference_runner/CMakeLists.txt index d0fe629..728330f 100644 --- a/source/application/api/use_case/inference_runner/CMakeLists.txt +++ b/source/application/api/use_case/inference_runner/CMakeLists.txt @@ -17,7 +17,7 @@ ######################################################### # INFERENCE RUNNER API library # ######################################################### -cmake_minimum_required(VERSION 3.15.6) +cmake_minimum_required(VERSION 3.21.0) set(INFERENCE_RUNNER_API_TARGET inference_runner_api) project(${INFERENCE_RUNNER_API_TARGET} diff --git a/source/application/api/use_case/kws/CMakeLists.txt b/source/application/api/use_case/kws/CMakeLists.txt index 3256d03..517a35a 100644 --- a/source/application/api/use_case/kws/CMakeLists.txt +++ b/source/application/api/use_case/kws/CMakeLists.txt @@ -17,7 +17,7 @@ ######################################################### # KEYWORD SPOTTING API library # ######################################################### -cmake_minimum_required(VERSION 3.15.6) +cmake_minimum_required(VERSION 3.21.0) set(KWS_API_TARGET kws_api) project(${KWS_API_TARGET} diff --git a/source/application/api/use_case/noise_reduction/CMakeLists.txt b/source/application/api/use_case/noise_reduction/CMakeLists.txt index 5fa9a73..1c19009 100644 --- a/source/application/api/use_case/noise_reduction/CMakeLists.txt +++ b/source/application/api/use_case/noise_reduction/CMakeLists.txt @@ -17,7 +17,7 @@ ######################################################### # NOISE REDUCTION API library # ######################################################### -cmake_minimum_required(VERSION 3.15.6) +cmake_minimum_required(VERSION 3.21.0) set(NOISE_REDUCTION_API_TARGET noise_reduction_api) project(${NOISE_REDUCTION_API_TARGET} diff --git a/source/application/api/use_case/object_detection/CMakeLists.txt b/source/application/api/use_case/object_detection/CMakeLists.txt index 797ff55..f3438e4 100644 --- a/source/application/api/use_case/object_detection/CMakeLists.txt +++ b/source/application/api/use_case/object_detection/CMakeLists.txt @@ -17,7 +17,7 @@ ######################################################### # OBJECT DETECTION API library # ######################################################### -cmake_minimum_required(VERSION 3.15.6) +cmake_minimum_required(VERSION 3.21.0) set(OBJECT_DETECTION_API_TARGET object_detection_api) project(${OBJECT_DETECTION_API_TARGET} diff --git a/source/application/api/use_case/vww/CMakeLists.txt b/source/application/api/use_case/vww/CMakeLists.txt index b933d32..4d7257b 100644 --- a/source/application/api/use_case/vww/CMakeLists.txt +++ b/source/application/api/use_case/vww/CMakeLists.txt @@ -17,7 +17,7 @@ ######################################################### # VISUAL WAKE WORD API library # ######################################################### -cmake_minimum_required(VERSION 3.15.6) +cmake_minimum_required(VERSION 3.21.0) set(VWW_API_TARGET vww_api) project(${VWW_API_TARGET} diff --git a/source/hal/CMakeLists.txt b/source/hal/CMakeLists.txt index b8c115c..018e970 100644 --- a/source/hal/CMakeLists.txt +++ b/source/hal/CMakeLists.txt @@ -19,7 +19,7 @@ # HAL library # ######################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) set(HAL_TARGET hal) project(${HAL_TARGET} @@ -67,5 +67,4 @@ message(STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR}) message(STATUS "*******************************************************") message(STATUS "Library : " ${HAL_TARGET}) message(STATUS "CMAKE_SYSTEM_PROCESSOR : " ${CMAKE_SYSTEM_PROCESSOR}) -message(STATUS "CMAKE_SYSTEM_ARCH : " ${CMAKE_SYSTEM_ARCH}) message(STATUS "*******************************************************") diff --git a/source/hal/source/components/cmsis_device/CMakeLists.txt b/source/hal/source/components/cmsis_device/CMakeLists.txt index 5615506..d2173ec 100644 --- a/source/hal/source/components/cmsis_device/CMakeLists.txt +++ b/source/hal/source/components/cmsis_device/CMakeLists.txt @@ -18,7 +18,7 @@ ######################################################### # Generic CMSIS Start up library for Cortex-M targets # ######################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) set(CMSIS_DEVICE_TARGET cmsis_device) set(CPU_HEADER_TARGET rte_components) @@ -86,5 +86,4 @@ message(STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR}) message(STATUS "*******************************************************") message(STATUS "Library : " ${CMSIS_DEVICE_TARGET}) message(STATUS "CMAKE_SYSTEM_PROCESSOR : " ${CMAKE_SYSTEM_PROCESSOR}) -message(STATUS "CMAKE_SYSTEM_ARCH : " ${CMAKE_SYSTEM_ARCH}) message(STATUS "*******************************************************") diff --git a/source/hal/source/components/lcd/CMakeLists.txt b/source/hal/source/components/lcd/CMakeLists.txt index 7262618..fead814 100644 --- a/source/hal/source/components/lcd/CMakeLists.txt +++ b/source/hal/source/components/lcd/CMakeLists.txt @@ -19,7 +19,7 @@ # LCD library # ######################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) project(lcd_component DESCRIPTION "LCD support library" @@ -95,4 +95,4 @@ target_link_libraries(${LCD_STUBS_COMPONENT_TARGET} PUBLIC message(STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR}) message(STATUS "*******************************************************") message(STATUS "Library : " ${LCD_STUBS_COMPONENT_TARGET}) -message(STATUS "*******************************************************") \ No newline at end of file +message(STATUS "*******************************************************") diff --git a/source/hal/source/components/npu/CMakeLists.txt b/source/hal/source/components/npu/CMakeLists.txt index f94d0f9..299fe45 100644 --- a/source/hal/source/components/npu/CMakeLists.txt +++ b/source/hal/source/components/npu/CMakeLists.txt @@ -19,7 +19,7 @@ # Ethos-U NPU initialization library # ######################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) set(ETHOS_U_NPU_COMPONENT ethos_u_npu) project(${ETHOS_U_NPU_COMPONENT} DESCRIPTION "Ethos-U NPU initialization library" diff --git a/source/hal/source/components/npu_ta/CMakeLists.txt b/source/hal/source/components/npu_ta/CMakeLists.txt index 358dab9..a3f98d8 100644 --- a/source/hal/source/components/npu_ta/CMakeLists.txt +++ b/source/hal/source/components/npu_ta/CMakeLists.txt @@ -24,7 +24,7 @@ # sweeps on the Arm Ethos-U NPUs. The wrapper library here provides an # easy way to add initialisation of the timing adapter block. -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) set(ETHOS_U_NPU_TA_COMPONENT ethos_u_ta) project(${ETHOS_U_NPU_TA_COMPONENT} DESCRIPTION "Ethos-U NPU timing adapter initialization library" diff --git a/source/hal/source/components/platform_pmu/CMakeLists.txt b/source/hal/source/components/platform_pmu/CMakeLists.txt index df375c3..a25363f 100644 --- a/source/hal/source/components/platform_pmu/CMakeLists.txt +++ b/source/hal/source/components/platform_pmu/CMakeLists.txt @@ -18,7 +18,7 @@ ##################################################################### # Interface library for platform performance monitoring unit # ##################################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) project(platform_pmu DESCRIPTION "Header/interface for platform PMU" diff --git a/source/hal/source/components/stdout/CMakeLists.txt b/source/hal/source/components/stdout/CMakeLists.txt index 9e60e36..7bc2c92 100644 --- a/source/hal/source/components/stdout/CMakeLists.txt +++ b/source/hal/source/components/stdout/CMakeLists.txt @@ -22,7 +22,7 @@ # and PL011 UART drivers with retarget functions. # ######################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) project(stdout DESCRIPTION "Standard output and err redirection over UART" diff --git a/source/hal/source/platform/mps3/CMakeLists.txt b/source/hal/source/platform/mps3/CMakeLists.txt index b90f6b7..57394f4 100644 --- a/source/hal/source/platform/mps3/CMakeLists.txt +++ b/source/hal/source/platform/mps3/CMakeLists.txt @@ -19,7 +19,7 @@ # MPS3 platform support library # ######################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) set(PLATFORM_DRIVERS_TARGET platform_drivers) project(${PLATFORM_DRIVERS_TARGET} DESCRIPTION "Platform drivers library for MPS3 FPGA/FVP targets" @@ -160,5 +160,4 @@ message(STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR}) message(STATUS "*******************************************************") message(STATUS "Library : " ${PLATFORM_DRIVERS_TARGET}) message(STATUS "CMAKE_SYSTEM_PROCESSOR : " ${CMAKE_SYSTEM_PROCESSOR}) -message(STATUS "CMAKE_SYSTEM_ARCH : " ${CMAKE_SYSTEM_ARCH}) message(STATUS "*******************************************************") diff --git a/source/hal/source/platform/native/CMakeLists.txt b/source/hal/source/platform/native/CMakeLists.txt index 41d68e9..cb95c88 100644 --- a/source/hal/source/platform/native/CMakeLists.txt +++ b/source/hal/source/platform/native/CMakeLists.txt @@ -19,7 +19,7 @@ # Native target platform support library # ######################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) set(PLATFORM_DRIVERS_TARGET platform_drivers) @@ -73,5 +73,4 @@ target_link_libraries(${PLATFORM_DRIVERS_TARGET} message(STATUS "*******************************************************") message(STATUS "Library : " ${PLATFORM_DRIVERS_TARGET}) message(STATUS "CMAKE_SYSTEM_PROCESSOR : " ${CMAKE_SYSTEM_PROCESSOR}) -message(STATUS "CMAKE_SYSTEM_ARCH : " ${CMAKE_SYSTEM_ARCH}) message(STATUS "*******************************************************") diff --git a/source/hal/source/platform/simple/CMakeLists.txt b/source/hal/source/platform/simple/CMakeLists.txt index 1ab8e25..7cdfe9a 100644 --- a/source/hal/source/platform/simple/CMakeLists.txt +++ b/source/hal/source/platform/simple/CMakeLists.txt @@ -19,7 +19,7 @@ # A generic (simple) platform support library # ######################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) set(PLATFORM_DRIVERS_TARGET platform_drivers) project(${PLATFORM_DRIVERS_TARGET} DESCRIPTION "Platform drivers library for a generic target" @@ -124,5 +124,4 @@ message(STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR}) message(STATUS "*******************************************************") message(STATUS "Library : " ${PLATFORM_DRIVERS_TARGET}) message(STATUS "CMAKE_SYSTEM_PROCESSOR : " ${CMAKE_SYSTEM_PROCESSOR}) -message(STATUS "CMAKE_SYSTEM_ARCH : " ${CMAKE_SYSTEM_ARCH}) message(STATUS "*******************************************************") diff --git a/source/log/CMakeLists.txt b/source/log/CMakeLists.txt index 79ebc2d..88789b5 100644 --- a/source/log/CMakeLists.txt +++ b/source/log/CMakeLists.txt @@ -18,7 +18,7 @@ ####################################################### # Header-only logging definitions as an interface lib.# ####################################################### -cmake_minimum_required(VERSION 3.16.3) +cmake_minimum_required(VERSION 3.21.0) set(BSP_LOGGING_TARGET log) @@ -40,5 +40,4 @@ target_include_directories(${BSP_LOGGING_TARGET} INTERFACE include) message(STATUS "*******************************************************") message(STATUS "Library : " ${BSP_LOGGING_TARGET}) message(STATUS "CMAKE_SYSTEM_PROCESSOR : " ${CMAKE_SYSTEM_PROCESSOR}) -message(STATUS "CMAKE_SYSTEM_ARCH : " ${CMAKE_SYSTEM_ARCH}) message(STATUS "*******************************************************") diff --git a/source/math/CMakeLists.txt b/source/math/CMakeLists.txt index eee8f75..462ffb3 100644 --- a/source/math/CMakeLists.txt +++ b/source/math/CMakeLists.txt @@ -33,7 +33,7 @@ target_include_directories(arm_math PUBLIC include) target_link_libraries(arm_math PRIVATE log) -if ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "cortex-m55" OR "${CMAKE_SYSTEM_ARCH}" STREQUAL "armv8.1-m.main") +if (${CMAKE_CROSSCOMPILING}) include(${CMAKE_SCRIPTS_DIR}/cmsis-dsp.cmake) target_link_libraries(arm_math PUBLIC cmsis-dsp) endif () @@ -41,5 +41,4 @@ endif () message(STATUS "*******************************************************") message(STATUS "Library : " arm_math) message(STATUS "CMAKE_SYSTEM_PROCESSOR : " ${CMAKE_SYSTEM_PROCESSOR}) -message(STATUS "CMAKE_SYSTEM_ARCH : " ${CMAKE_SYSTEM_ARCH}) message(STATUS "*******************************************************") diff --git a/source/math/PlatformMath.cc b/source/math/PlatformMath.cc index b666d29..8950941 100644 --- a/source/math/PlatformMath.cc +++ b/source/math/PlatformMath.cc @@ -24,31 +24,31 @@ namespace math { float MathUtils::CosineF32(float radians) { -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) return arm_cos_f32(radians); -#else /* ARM_MATH_DSP */ +#else /* __ARM_FEATURE_DSP */ return cosf(radians); -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ } float MathUtils::SineF32(float radians) { -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) return arm_sin_f32(radians); -#else /* ARM_MATH_DSP */ +#else /* __ARM_FEATURE_DSP */ return sinf(radians); -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ } float MathUtils::SqrtF32(float input) { -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) float output = 0.f; arm_sqrt_f32(input, &output); return output; -#else /* ARM_MATH_DSP */ +#else /* __ARM_FEATURE_DSP */ return sqrtf(input); -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ } float MathUtils::MeanF32(float* ptrSrc, const uint32_t srcLen) @@ -57,14 +57,14 @@ namespace math { return 0.f; } -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) float result = 0.f; arm_mean_f32(ptrSrc, srcLen, &result); return result; -#else /* ARM_MATH_DSP */ +#else /* __ARM_FEATURE_DSP */ float acc = std::accumulate(ptrSrc, ptrSrc + srcLen, 0.0); return acc/srcLen; -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ } float MathUtils::StdDevF32(float* ptrSrc, const uint32_t srcLen, @@ -73,7 +73,7 @@ namespace math { if (!srcLen) { return 0.f; } -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) /** * Note Standard deviation calculation can be off * by > 0.01 but less than < 0.1, according to @@ -83,7 +83,7 @@ namespace math { float stdDev = 0; arm_std_f32(ptrSrc, srcLen, &stdDev); return stdDev; -#else /* ARM_MATH_DSP */ +#else /* __ARM_FEATURE_DSP */ auto VarianceFunction = [=](float acc, const float value) { return acc + (((value - mean) * (value - mean))/ srcLen); }; @@ -92,7 +92,7 @@ namespace math { VarianceFunction); return sqrtf(acc); -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ } void MathUtils::FftInitF32(const uint16_t fftLen, @@ -104,7 +104,7 @@ namespace math { fftInstance.m_optimisedOptionAvailable = false; fftInstance.m_type = type; -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) arm_status status = ARM_MATH_ARGUMENT_ERROR; switch (fftInstance.m_type) { case FftType::real: @@ -125,7 +125,7 @@ namespace math { } else { fftInstance.m_optimisedOptionAvailable = true; } -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ debug("Optimised FFT will be used: %s.\n", fftInstance.m_optimisedOptionAvailable? "yes": "no"); @@ -203,12 +203,12 @@ namespace math { switch (fftInstance.m_type) { case FftType::real: -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) if (fftInstance.m_optimisedOptionAvailable) { arm_rfft_fast_f32(&fftInstance.m_instanceReal, input.data(), fftOutput.data(), 0); return; } -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ FftRealF32(input, fftOutput); return; @@ -217,13 +217,13 @@ namespace math { printf_err("Complex FFT instance should have input size >= (FFT len x 2)"); return; } -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) if (fftInstance.m_optimisedOptionAvailable) { fftOutput = input; /* Complex function works in-place */ arm_cfft_f32(&fftInstance.m_instanceComplex, fftOutput.data(), 0, 1); return; } -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ FftComplexF32(input, fftOutput); return; @@ -236,15 +236,15 @@ namespace math { void MathUtils::VecLogarithmF32(std::vector & input, std::vector & output) { -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) arm_vlog_f32(input.data(), output.data(), output.size()); -#else /* ARM_MATH_DSP */ +#else /* __ARM_FEATURE_DSP */ for (auto in = input.begin(), out = output.begin(); in != input.end() && out != output.end(); ++in, ++out) { *out = logf(*in); } -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ } float MathUtils::DotProductF32(float* srcPtrA, float* srcPtrB, @@ -252,13 +252,13 @@ namespace math { { float output = 0.f; -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) arm_dot_prod_f32(srcPtrA, srcPtrB, srcLen, &output); -#else /* ARM_MATH_DSP */ +#else /* __ARM_FEATURE_DSP */ for (uint32_t i = 0; i < srcLen; ++i) { output += *srcPtrA++ * *srcPtrB++; } -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ return output; } @@ -273,15 +273,15 @@ namespace math { return false; } -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) arm_cmplx_mag_squared_f32(ptrSrc, ptrDst, srcLen/2); -#else /* ARM_MATH_DSP */ +#else /* __ARM_FEATURE_DSP */ for (uint32_t j = 0; j < srcLen/2; ++j) { const float real = *ptrSrc++; const float im = *ptrSrc++; *ptrDst++ = real*real + im*im; } -#endif /* ARM_MATH_DSP */ +#endif /* __ARM_FEATURE_DSP */ return true; } diff --git a/source/math/include/PlatformMath.hpp b/source/math/include/PlatformMath.hpp index 2bf7733..859716f 100644 --- a/source/math/include/PlatformMath.hpp +++ b/source/math/include/PlatformMath.hpp @@ -18,12 +18,12 @@ #define PLATFORM_MATH_HPP /* See if ARM DSP functions can be used. */ -#if defined(ARM_MATH_DSP) - #include "arm_math.h" - #define M_PI (PI) -#else - #include -#endif +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) +#include "arm_math.h" +#define M_PI (PI) +#else /* (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) */ +#include +#endif /* (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) */ #include #include @@ -39,10 +39,10 @@ namespace math { }; struct FftInstance { -#if ARM_MATH_DSP +#if (defined(__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) arm_rfft_fast_instance_f32 m_instanceReal; arm_cfft_instance_f32 m_instanceComplex; -#endif +#endif /* (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) */ uint16_t m_fftLen{0}; FftType m_type{FftType::real}; bool m_optimisedOptionAvailable{false}; @@ -177,4 +177,4 @@ namespace math { } /* namespace app */ } /* namespace arm */ -#endif /* PLATFORM_MATH_HPP */ \ No newline at end of file +#endif /* PLATFORM_MATH_HPP */ diff --git a/source/profiler/CMakeLists.txt b/source/profiler/CMakeLists.txt index 7e3db3e..0a9c338 100644 --- a/source/profiler/CMakeLists.txt +++ b/source/profiler/CMakeLists.txt @@ -39,5 +39,4 @@ message(STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR}) message(STATUS "*******************************************************") message(STATUS "Library : " profiler) message(STATUS "CMAKE_SYSTEM_PROCESSOR : " ${CMAKE_SYSTEM_PROCESSOR}) -message(STATUS "CMAKE_SYSTEM_ARCH : " ${CMAKE_SYSTEM_ARCH}) message(STATUS "*******************************************************") -- cgit v1.2.1