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


Re: Re: SW4STM32 or CubeMX to init STM32 device

Hi Bernard,

Thanks for your quick reply. This is similar to things I’ve tried already, and didn’t work. My steps were:

1) Create a new, empty Eclipse workspace
2) Place my CubeMX .ioc file in a subdirectory of the workspace, run CubeMX, generate all files
3) Run System Workbench with this workspace, project->import, General->Existing, select the CubeMX directory
4) System Workbench claims to import everything

Result:

There’s a directory tree that on its surface looks good, but none of the files exist. Example: off the root directory, there’s a Middlewares/USB_Device_Library directory with four .c files. In the project tree, each of these files has a little exclamation point next to it. If I double click one of the files, I get the message: “Error retrieving content description for resource ‘/Board Configuration/Middlewares/USB_Device_Library/usbd_cdc.c’.
System Workbench created a directory ‘Board Configuration/Middlewares/USB_Device_Library’ but didn’t put any files in it. The file is actually in ‘CubeMX/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c’.

If I copy the file to where System Workbench appears to think it is, I still get the same message. At first glance it appears that System Workbench is improperly adding a leading ‘/’ to the filename, but if I look in the .project file at the root of the project directory, I see (xml tags changed so it posts):
(link)
(name)Middlewares/USB_Device_Library/usbd_cdc.c(/name)
(type)1(/type)
(location)PARENT-2-PROJECT_LOC/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c(/location)
(/link)
... which, assuming that PARENT-2-PROJECT_LOC is correct, would be the correct file location. Not exactly sure where PARENT-2-PROJECT_LOC is defined.


If I right click the file in the Project Explorer and select properties, I can see it is a linked file; the Path is ‘/Board Configuration/Middlewares/USB_Device_Library/usbd_cdc.c’ and Location is ‘PROJECT_LOC....\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c’ and Resolved location is ‘D:\sw\sw4stm32\Middlewares\ST\STM32_USB_Device_Library\Class\CDC\Src\usbd_cdc.c - (does not exist)’

So clearly this is a problem; PROJECT_LOC.... is outside of the workspace.

If I look at poperties for the project, I see under Linked Resources that there is a PROJECT_LOC path, under Path Variables, that accurately reflects the project location. Interestingly, what this means is that the linked path is incorrect because PROJECT_LOC....\Middlewares... is not correct - it should actually be PROJECT_LOC..\CubeMX\Middlewares ... so that seems fixable. Fortunately there’s a Linked Resources tab with a convenient list of all of the invalidly linked files. I’m going to try to fix all of them and see what happens. Hopefully it’s just an import glitch and everything will be fine once I correct these. I’ll also fix the Include paths, which are similarly incorrect, and maybe I can compile something. I’ll post an update if that works.