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


Manually installing std periph libs

EDIT: Stupid is as stupid does, tried everything but updating eclipse (help -> check for updates) before posting.

Old post for context:
Only a quick little project requiring just the uart a timer and all gpio on a Nucleo F303k8, should be a piece of cake taking just 30mins tops to do right?

However having given up on CoIde moved to this IDE in hope of there being better STM32 processor support but alais gotten stuck without the std periph library and so what other options do I have other than painstakingly defining every register taking potentially days to do. There has to be an easier way.

When configuring the project I get the attached error when attempting to download the standard periph lib (note this was not an issue for me on F407, F411).

Assuming that either the link has moved or was wrong from the start I have downloaded the library (STSW-STM32108 ) from ST manually, but am too ignorant to install it into this variation of eclipse, or whether it is even possible.

Is it possible to do? which directories are important? is there configfiles etc that need editing?

Thanks in advance for any help and thank you for reading.

- CCG

Hi,

The ST firmwares are defaulty stored in C:\Users\${USERNAME}\AppData\Roaming\Ac6\SW4STM32\firmwares (can be changed in Window > Preferences > System Workbench)

You can copy the zip into this folder then extract it.

Be aware that the IDE is checking for the zip file with its filename, it has to be the same than the one in the database. It’ve seen that ST does rename the downloaded file into en.stm32f30x_dsp_stdperiph_lib.zip. If that’s the case, please rename it back to stm32f30x_dsp_stdperiph_lib_v123.zip before relaunching System Workbench.

When creating a C Project with StdPeriph, the wizard should not ask you to download it anymore.

Hope it helps,
Kevin.

Thanks Kevin that was certainly useful, wouldn’t have even thought of looking there for the firmware location.

Although simply checking for updates did fix the F30xx std lib issue for me, I thought it best I go through the process (taking notes) on one that is not available the friendly way should I have this issue in future, and found that with the L1xx (again checking for updates before begining)

Unlike with the F30x lib, strangely eclipse this time did not place “Target firmware has not been found, please download it” text above the Download target firmware button. On clicking the Download firmware button followed by the license agreement dialog box only has eclipse busy for a short while before returning to previous state. Finishing the wizard yeilds a project with no library.

So downloaded stsw-stm32077.zip placed it in C:\Users\user\AppData\Roaming\Ac6\SW4STM32\firmwares\
Also unzipped containing folder as C:\Users\user\AppData\Roaming\Ac6\SW4STM32\firmwares\STM32L1xx_StdPeriph_Lib_V1.3.1

The behaviour of eclipse did not change. On the off chance I gave it a try changing the zip file name to stm32l1xx_stdperiph_lib_v131.zip from and this didn’t change anything either.

To check I wasn’t completely rolling down the wrong path I manually installed stm32f0_stdperiph_lib_v150.zip into C:\Users\user\AppData\Roaming\Ac6\SW4STM32\firmwares with success, so there must be something wrong with what defines eclipse to look for regarding the L1xx library

So I assume that there is a config file of sorts somewhere providing a processor/library lookup for eclipse. Any idea where I will find that?

Thank you again for your help.

- CCG

There is an .xml config file where all libraries are defined.
It is Ac6\SystemWorkbench\plugins\fr.ac6.mcu.ide_2.4.0.201801121207\resources\board_def\stm32targets.xml.
I have found it searching the Ac6 directory for the files, which contain “stdperiph”.
In this file you can find your board or mcu family and get the correct name of the zip file.
Note, that there are different files for mcu families and evaluation boards.

So, all you then need is to download the zip-archive from stm website, then copy it into the user\AppData\Roaming\Ac6\SW4STM32\firmwares directory and unpack there, then rename zip with the name expected by System Workbench.

I suppose, it is the only way to install libraries on the offline machine.

United States

Here is a device with firmware:

NUCLEO-L152RE
Active
stm32l152retx
ST-LinkV2-1


stm32l1xx_nucleo.h
stsw-stm32143.zip
5cb395448b55744e3eada971d255a5e7



-DNUCLEO_L152RE


and a board I just purchased:

NUCLEO-L452RE-P
Active
stm32l452retxp
ST-LinkV2-1

-DNUCLEO_L452RE_P



I can use STMCubeMX to setup the L452 and export the firmware to eclipse BUT
How do I add one of the many add on cards to the L452?


Hi fellows !
Method not works (september 2020).
Now step by step how I fix it:
1) See https://visualsilicon.com/2020/03/22/how-to-fix-openstm32-error-download-task-start-issue/Question for more information, but method from here also need to be corrected.
2) Go to https://www.st.com/content/st_com/en/search.html#q=stsw-stm32-t=tools-page=3Question , find DSP and standard peripherals library for your family (for example: STM32F4 DSP and standard peripherals library), download it and place downloaded file to ~/.ac6/SW4STM32/firmwares/ (For linux. For windows location pointed in previous posts)
3) Open file SystemWorkbench/plugins/fr.ac6.mcu.ide_x.x.x.xxxxxxxxxxxx/resources/board_def/stm32targets.xml , find tag family id=”stm32XXX” for your family (for example in my case family id=”stm32f4”), and see there tags firmware type=”StdPeriph”, url (stm32f4_dsp_stdperiph_lib_v180.zip in my case).
4) Rename downloaded and saved in ~/.ac6/SW4STM32/firmwares/ to name from url tag. Calculate md5( http://onlinemd5.com/Question ) of this file and correct tag urlMd5 if need.
5) If you now save stm32targets.xml, restart SystemWorkbench and try to load StdPeriph, it will NOT WORKS. One important step was ommited. See once more to the tag firmware type=”StdPeriph” . It includes tag name and it is empty. Tag family id also includes firmware type=”HAL” . It also has name = FW.F4.1.24.0 and url = stm32cube_fw_f4_v1240.zip. HAL downloaded ok ! So, I assume, that problem in empty name tag.
6) I assume that correct name format is: PRODUCT.FAMILY.VERSION. So for StdPeriph name must be DSP.F4.1.8.0 . Insert this into name tag, save file, and restart. Try to load StdPeriph. All right ! StdPeripf installed ok !

Enjoy !

P.S. I look at stm32targets.xml and find, that tag firmware type=”StdPeriph” ->name is empy for all families. Furthermore, some families has not tag firmware type=”StdPeriph” at all ! So, as can I see, it is very common problem. Maybe STM will refuse the StdPeripf in future and will use only HAL.