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 the messy folder structure

If I import a project from CubeMX, I get a “folder” structure, that seems like a mess. How should one use it. What are the folders under SW4STM32 for. Many of them are empty. There are two folders for Drivers. The structure in System workbench does not correspond the disk structure. Yes it is possible to do so, but in many cases it is missleading, any good reason for that.
It is possible to change the structure simplier, but then suddenly some links break, and at least I do not know, how to repair those. I imported a CubeMX project to TrueStudio, and that seems to be a lot better structure, something I prefer.
Will this structure be a mess also in the future?

You should update your CubeMX to the latest release (4.13), and recreate your project.
The structure changed heavily, and is now much more usable.

Harry


Thank you for your reply. I am using 4.14. CubeMX produces a clear structure, the mess comes, when I import it to System workbench.

As I in my previous post told, I have 4.14, and that produced messy structure. I decided, just in case, download again stm32cubef4.zip from st.com. In the zip-file, there I found STM32CubeUpdater.exe,and after running that the folder structure seems really nice. The firmware package version is now 4 V1.11.0.

I have checked new versions every now and then, but I have had the newest version. I believe, that that check is only for CubeMX GUI. How can one know, when there are new firmware versions.

Now I have one definition problem. I created a simple project with CubeMX. When I build it, I get an error in main.c, Symbol ‘SysTick_IRQn’ could not be resolved. SysTick_IRQn is defined in stm32f429xx.h, and that file is in path, and I can open it. It does not help, if I include explicitely that file to main.c. Same thing is with stm32f4xx_hal_timebase_TIM.c and TIM1_UP_TIM10_IRQn.

This is not a new feature. Some days ago I added STemWin to the project by draging and droping. That broke some links, and I got 120 errors. I could not find any means to correct the links, stm32f4xx_hal_conf.h seems to be OK, also stm32f4xx_hal.h.

Actually, what is the right way to add e.g. STemWin to a project, file by file.

Are there any links behind the scenes?

I have been working some 20 years with Delpi, so I have got used to a little too easy programming, C is for hard guys, and I have a lot to learn, mostly something that has nothing directly to do with what the application should do.


I made with CubeMX a very basic project, FreeRTOS, RCC High speed crystal, Low speed disable, sys debug SWD, Timebase TIM1. When I import it and build, I get errors:
Description Resource Path Location Type
Symbol ‘SysTick_IRQn’ could not be resolved main.c /Disco_emWIN_1/Src line 166 Semantic Error
Description Resource Path Location Type
Symbol ‘TIM1_UP_TIM10_IRQn’ could not be resolved stm32f4xx_hal_timebase_TIM.c /Disco_emWIN_1/Src line 71 Semantic Error
Description Resource Path Location Type
Symbol ‘TIM1_UP_TIM10_IRQn’ could not be resolved stm32f4xx_hal_timebase_TIM.c /Disco_emWIN_1/Src line 74 Semantic Error

When I changed optimization to 0, I got more errors, e.g.
GPIO_InitTypeDef GPIO_InitStruct;

/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOF_CLK_ENABLE();
__HAL_RCC_GPIOH_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
__HAL_RCC_GPIOE_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();

where unknown.

I added those missing interrupt definitions to a hfile in src, and all worked. That makes me think, that the include links do not work. Earlier I got some help by changing the include directory to ‘Is a workspace path’.

I generated the same project (same definitions) to TrueStudio, and that worked, although also there were same kind of problems earlier with another try.

I cannot say, are these problems especially or only partly dependent on HAL, but life was easier before HAL.

Hi

Try this to get rid off the semantic warnings regarding interrupt definitions:

Right click project name -> Properties -> C/C++ General (Tree) -> Indexer -> click on link “Configure Workspace Settings” (new window) -> uncheck “index unused headers” -> apply/ok

Dieter


Thank you Dieter, that was a good hint, all problems are gone. I played with the indexer, but I thought, that must index more.
I am happy now. Wau.