SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32

What means the Msp in HAL_MspInit ?

Hi All,

When Googling ‘STM32 HAL What is MSP’ and absolutely no relevant answer comes as result then a system of developing has become seriously archaïc.

Anybody knows what MSP exactly stands for? It’s neither explained in none of the repository files.


I wondered the same thing before finding a definition of “MCU Support Package”.

Unfortunately, after stumbling across that definition I just picked myself up and carried on and now I have no idea where I found it...

ST document UM1718 section 5.1

Took me a while to find as well.



This comment generated by the CubeMX at the start of main()
defines MSP.
/* STM32F4xx HAL library initialization:
- Configure the Flash prefetch, instruction and Data caches
- Configure the Systick to generate an interrupt each 1 msec
- Set NVIC Group Priority to 4
- Global MSP (MCU Support Package) initialization


This comment does not appear in any file I create using STM32CubeMX V4.13.0


Me too. Well yeah... I guess I’m not the only one that was obsessively hung up in what turned out to be a STUPID LOOP on finding that #@!!@#$!~@!.....”thing”

Deedle dum.... “TSCH”

Wahhh waahhh


MSP = MCU Specific Package

Source: Acronyms and definitions of “UM1725 User Manual Description of STM32F4xx HAL drivers” (http://www.st.com/content/ccc/resource/technical/document/user_manual/2f/71/ba/b8/75/54/47/cf/DM00105879.pdf/files/DM00105879.pdf/jcr:content/translations/en.DM00105879.pdf)

exclaim In UM1718 I see it in section 6.1, not 5.1.

MSPs are user callback functions to perform system level initializations such as (Clock, GPIOs, DMA, interrupts).

The peripheral initialization is done through HAL_PPP_Init() while the hardware resources
initialization used by a peripheral (PPP) is performed during this initialization by calling
MSP callback function HAL_PPP_MspInit().
The MspInit callback performs the low-level initialization related to the different additional
hardware resources: RCC, GPIO, NVIC and DMA.