For: Intelligence for Arm Cortex-M with TrueSTUDIO
Leveraging CMSIS for DSP & Machine Learning
Overview:
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: webinars@doulos.com
Webinar outline:
This 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:
- STMicroelectronics STM32F7 microcontrollers »
- ST/Atollic TrueSTUDIO »
- Arm Cortex-M7 Developer Documentation »
- Arm CMSIS Documentation »
- Arm CMSIS Releases »
- Doulos KnowHow »
- Doulos Hands-on Learning »
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 */ My_DspInit(); ... /* USER CODE BEGIN 3 */ My_DspProcessing();