In my journey to utilize the CMSIS DSP Library for C/C++ applications, I faced numerous challenges. Among them, most important one is the absence of comprehensive standalone working example codes. Despite the library's robust capabilities in facilitating FFT, IFFT, basic filters, and more, there is a notable scarcity of well-documented and readily available code snippets online, particularly on platforms such as GitHub. This is often struggling and frustrating for developers especially who are new in this arena. Recognizing this gap, I decided to open this repository dedicated to providing fundamental code snippets that illustrate the utilization of these essential features. This repository aims not only to fill the void in available resources but also to serve as a valuable resource for developers seeking to leverage the capabilities of the CMSIS DSP Library in their projects.
This C/C++ repository contains the following major folders:
app
: This folder contains a demo application project.cmsis
: This folder contains an independently cmake buildable project that includes source and public headers for CMSIS DSP.
To build the CMSIS DSP library, follow these steps:
- Navigate to the
cmsis
folder. - Follow the CMakeList.txt provided within the folder to compile the CMSIS DSP library.
- In most cases, building this library using CMake won't require any further re-configurations.
cd cmsis
sh build.sh
- After building, it produces the static libCMSISDSP.a file in
./build/Source/libCMSISDSP.a
, which should be included in the later demo app, i.e., inapp/lib
folder.
To build the demo application, follow these steps:
- Navigate to the
app
folder. - Place the libCMSISDSP.a produced in the previous step into
app/lib
. - Execute the build scripts
clean.sh
&build.sh
from the project root directory to compile the application. - Execute the run script
run.sh
to execute the compiled application.
cd ..
sh clean.sh
sh build.sh
sh run.sh
For more details, you can explore the associated CMakeLists.txt, build.sh, and run.sh files within the project.
This directory contains some relevant plots for respective implementations.
This project is licensed under the MIT License. See the LICENSE file for details.