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


Customizing the Linker Script to place Code/Data in user defined sections

Hello OpenSTM32,

I am working on a project where i am using STM32F767 board with AC6 System Workbench as my IDE. I desire to perform runtime optimizations of my application. Therefore, I want to put my application data/code in different memory sections (user defined) e.g. DTCM, ITCM-Flash, ITCM-RAM, Flash-AXI, etc. and compare the run time measurements. I believe that to do so one has to customize the linker script file to include the above mentioned sections.

Could someone please guide me how can i do so. Is there any document for the syntax to customize the linker script. Also how can someone place data/code in those sections.

Your help is highly appreciated.

Regards,

Amit

Hi Vetch,

Thank you very much for your quick reply.

I have one more question. In the section “Placing zero-initialized variables in CCM” it is suggested to modify the ‘startup_stm32xxxxx.S’ file. Unfortunately I could not find the file in my project. Could you please tell me where i can find the file.


Thanking you in advance.

Regards,

Amit


Hi,
I am a lazy guy, so to get the startup file I create a new eclipe empty project :
- Right-click in the Project Explorer window >> New >> C Project >> Project Name + Ac6 STM32 MCU Project + Ac6 STM32 MCU GCC >> Next >> Next >> Select the Series & Board >> Next >> No firmware >> Finish
In startup folder contains the startup file startup_stm32.s corresponding to the chip serie and board previously selected.
You just have to copy the Startup folder with its file into your project.

The startup file templates are available in the Cube FW package. For example :
...\STM32Cube_FW_L4_V1.5.0\Drivers\CMSIS\Device\ST\STM32L4xx\Source\Templates\gcc


Hello Vetch,

The problem is I generated the code from CubeMX. I did not create a new project. I imported existing project from cubeMX to System Workbench and therefore I donot have this startup folder.

Is there any way to generate the startup.s file with the imported project.

Thanking You.

Regards,

Amit Dey


Sorry Amit, I was not clear.
There are several ways to get the starup file :
- You can get it from the Cube FW package especially in the following folder : ...\STM32Cube_FW_XX_VY.Y.Y\Drivers\CMSIS\Device\ST\STM32XXxx\Source\Templates\gcc, but you have to download the Cube FW package corresponding to your chip and it could be boring;
- The other way (I enjoy it because it is easy) is to create another C project (in the same workspace as you main project). You just have to create a dummy and empty project. Eclipse will create few files and especially the file you are looking for = startup_stm32.s. To do so : Right-click in the Project Explorer window >> New >> C Project >> Project Name + Ac6 STM32 MCU Project + Ac6 STM32 MCU GCC >> Next >> Next >> Select the Series & Board >> Next >> No firmware >> Finish
In the new C project there is a Startup folder. It contains the startup file startup_stm32.s corresponding to the chip serie and board previously selected.
You just have to copy the Startup folder with its file into your project.
Feel free to comment if I am not clear again :-)


Hello Vetch,

Thank you very much. I understood now clearly smile.


Hello Vetch,

I have one more issue. Modifying the linker life does not change anything. As if it is not the correct linker file i am modifying. But I have only one linker file in my project. Could you please share your knowledge on this.

Thanking you in advance.


Hello Vetch,

The solution to above mentioned problem is that I have to make ‘Clean Project’ everytime I change anything in linker file to take effect.