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


Run code from ram memory

Hallo.
this is the first time i face the ST platform.
In other mcu i’ve worked in the past, there were possibe to move some parts of time critical code to ram, and run them from there to get the best performance, since the flash mamory access were slower then the ram access.
How can I get this behaviour in ST Mcu?
Thank you in advance.
Paolo

OS: Windows 7
System Workbench for STM32 version: 2.0.1
MCU: STM32L051C8T3

In STM32 you rarely need to run code from RAM because the pros are very limited and there are cons. In more than 10 projects I used running code from core-coupled (CCM) RAM ( http://www.openstm32.org/Using+CCM+Memory?structure=DocumentationQuestion ) just once.

ARM Cortex-M uses the Harvard architecture with separate code and data buses, when you are running code from RAM you are losing the speed advantage of this architecture as now you have both your code and data in the RAM.

The core provides other means to workaround the slow flash access time: You should carefully read all the available documentation (programmer’s manual, datasheet, reference manual) then configure the bits for pre-fetch, pre-read, wait-time, buffers, caches, etc. according your core frequency and voltage scale to have maximum possible performance or energy efficiency (or something between).


This is the first time for me on this architecture.
Thank you for your advices, now it is more clear...
I’ll go through the documentation to get maximum performance running code from flash memory.