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 "*******************************************************")
 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 "*******************************************************")
 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 @@
 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 "*******************************************************")
 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 @@
 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 "*******************************************************")
 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 @@
 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_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 @@
 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 @@
 
     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 @@
             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 @@
         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 @@
         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 @@
                                     VarianceFunction);
 
         return sqrtf(acc);
-#endif /* ARM_MATH_DSP */
+#endif /* __ARM_FEATURE_DSP */
     }
 
     void MathUtils::FftInitF32(const uint16_t fftLen,
@@ -104,7 +104,7 @@
         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 @@
         } 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 @@
         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 @@
                 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 @@
     void MathUtils::VecLogarithmF32(std::vector <float>& input,
                                     std::vector <float>& 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 @@
     {
         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 @@
             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 <cmath>
-#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 <cmath>
+#endif /* (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) */
 
 #include <vector>
 #include <cstdint>
@@ -39,10 +39,10 @@
     };
 
     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 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 "*******************************************************")
 message(STATUS "Library                                : " profiler)
 message(STATUS "CMAKE_SYSTEM_PROCESSOR                 : " ${CMAKE_SYSTEM_PROCESSOR})
-message(STATUS "CMAKE_SYSTEM_ARCH                      : " ${CMAKE_SYSTEM_ARCH})
 message(STATUS "*******************************************************")
