Loading...
 

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


How to use HAL_FLASH_Program_IT ?

Make sure the NVIC is configured for flash interrupts. If using CubeMX, enable NVIC Flash intterupt and expect CubeMX to generate FLASH_IRQHandler() that calls HAL_FLASH_IRQHandler() in the xxx_it.c file. A breakpoint can be used to ensure that FLASH_IRQHandler() or HAL_FLASH_IRQHandler() are bing called.

You can define a HAL_FLASH_EndOfOperationCallback to perform some operation upon completion. Or, you can look at pFlash.ProcedureOnGoing == FLASH_PROC_NONE to know the operation is complete.

Note that if the purpose of using HAL_FLASH_Program_IT is to erase flash asynchronously while running from flash, it will not work as expected. Expect execution from flash to freeze while an erase is in-progress which effectively means HAL_FLASH_Program_IT() will block until complete. If you’re executing from RAM, this blocking won’t occur.