AnsweredAssumed Answered

CMSIS DSP Library Support

Question asked by LPCware Support on Mar 31, 2016

Introduction to the CMSIS DSP Library

 

The CMSIS DSP Software Library is a suite of common signal processing functions targeted to Cortex-M processor based MCUs. Even though the code has been specifically optimized towards using the extended DSP instruction set of the Cortex-M4 processor, the latest versions of the library can also be compiled for Cortex-M3 and M0 (including M0+).

 

For more details, please see ARM's CMSIS documentation on the DSP library, which can be accessed via the LPCXpresso IDE built in help system.

 

For more details on CMSIS in general, please see the FAQ "CMSIS support in LPCXpresso".

 

LPCXpresso CMSIS DSP Library projects

 

The LPCXpresso IDE ships with the CMSIS DSP Library provided as library projects, which are available in both prebuilt format, and in full source format.

 

Pre-built libraries

 

Pre-built library projects containing the CMSIS DSP Library can be found in the \Examples\NXP\<mcu_family> subdirectory of your LPCXpresso IDE installation, as well as in the \Examples\CMSIS_DSPLIB subdirectory. If you import the appropriate CMSIS DSP Library project for your target cpu into your workspace, you will then be able to use the project wizard to link a new project with the DSP Library project.

 

The file names for the CMSIS v3.01 (or later) DSP library projects are:

  • CMSIS_DSPLIB_CM4
    • Suitable for use with any Cortex-M4 based MCU with floating point support enabled
  • CMSIS_DSPLIB_CM4_NoFP
    • Suitable for use with any Cortex-M4 based MCU without floating point
  • CMSIS_DSPLIB_CM3
    • Suitable for use with any Cortex-M3 based MCU
  • CMSIS_DSPLIB_CM0
    • Suitable for use with any Cortex-M0 or M0+ based MCU

 

Versions of the DSP library created from earlier versions of CMSIS will also contain the version number in the project name (for example CMSISv2p10_DSPLIB_CM4).

 

The reason for providing a pre-built version is that the DSP Library has a large code base which typically can take several minutes to build (depending upon PC specification and OS).

 

Note: These project are also built with debug information enabled. This allows you to step through the DSP library code if required, but only if you import the corresponding SRC library project into your workspace first (see below).

 

Source library

 

For most users, the DSP library routines can be considered as a "black box" which there is no need to rebuild. However the SRC project is supplied with the tools which provides a number of out of the box build configurations. Thus you can easily rebuild this project to provide a version of the DSP library built using your required options, to replace the one provided out of the box.

 

The file names for the CMSIS v3.01 (or later) DSP library SRC project is: CMSIS_DSPLIB_SRC

 

Versions of the DSP SRC library created from earlier versions of CMSIS will also contain the version number in the project name (for example CMSISv2p10_DSPLIB_SRC).

 

If you import the appropriate SRC project into a workspace where you are using one of the pre-built DSP library projects, then you will be able to carry out source level debugging of the DSP functions. Note however that code built with optimization enabled (as the DSP library projects are) will give a sub-optimal debug view, so you may wish to modify the optimization level and rebuild before doing this.

Outcomes