Global training solutions for engineers creating the world's electronics products


Doulos Webinars

For: Intelligence for Arm Cortex-M with TrueSTUDIO
Leveraging CMSIS for DSP & Machine Learning


This resources page has been produced by webinar author David C Black (Doulos, Senior Member Technical Staff) and includes:

  • a download of the project examples used
  • webinar references with links to more detailed information
  • project setup instructions for STMicroelectronics' TrueSTUDIO
  • code snippets
  • and useful DSP book references.

For more details about the availability of the webinar please contact:

Webinar outline:

TuxThis webinar outlines the Cortex Microcontroller Software Interface Standard (CMSIS) and its application to coding DSP and Neural Network (NN) algorithms for the Arm® Cortex®-M series. The goal is to understand the advantages and ease of using this library in coding practical DSP and Machine Learning (ML) applications. View the full webinar details »

The webinar uses STMicroelectronics' TrueSTUDIO™ with CMSIS as an exemplar development environment.

The following are extracts from the webinar.

Project Download:

Download the TrueSTUDIO project files used in the demonstration here »

Webinar references:

TrueSTUDIO Project Setup:

1. Point CMSIS Packer to installation (e.g. C:\STMicro)

  • Windows->Preferences->CMSIS Packs

2. Install Arm CMSIS Software Pack for CMSIS (includes DSP & NN)

  • Open Perspectives->CMSIS Pack Manager
  • In right-hand pane's Packs tab, find Generic->ARM.CMSIS
  • Click Install if not already green and installed

3. Add Project Build variable to reference CMSIS version

  • cmsispath = ${cmsispack_root}/ARM/CMSIS/5.3.0/CMSIS

4. Adjust Project search path for compiler Includes

5. Adjust Project search path for linker libraries and add appropriate library

6. Set requisite macros to configure for device options


  • Either
    #include "stm32f7xx_hal.h" //< setup via STM Cube
  • Or
    #define ARM_MATH_C7
    #define __FPU_PRESENT=1
    #define __DSP_PRESENT=1
    // etc...

Code snippets:

    #include "stm32f7xx_hal.h"
    #include "arm_math.h"
    #include "arm_const_structs.h"
    #include "nn/arm_nnfunctions.h"
    /* USER CODE BEGIN 2 */
    /* USER CODE BEGIN 3 */

Books on Digital Signal Processing:

  1. Think DSP in Python, Allen B Downey »
  2. Understanding Digital Signal Processing, Richard G Lyons »
  3. The Scientist & Engineer's Guide to Digital Signal Processing, Steven W Smith »