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


SystemWorkbench : when basic user expectation are not met at all

Here is my story, super easy, super basic. I just want to do fast prototyping.
1) Buy the eval board.

  • I bought a Nucleo-L496ZG-P board from ST.

2) Create a sample project with STMWorkbench

  • I downloaded STMWorkbench and all its updates.
  • I create a C++ project : Ac6 STM32 MCU Project
  • Choose the L496ZG-P board
  • Choose Cube HAL
  • Choose USB Host, USB Device and fatfs library


Should that not be as easy?

Then, build all ...

  • FatFs fails : ../Middlewares/Third_Party/FatFs/src/drivers/ppp_diskio_template.c:98:22: error: ‘PPP_OK’ undeclared (first use in this function); did you mean ‘FR_OK’?

Bah ... fast prototyping, let’s remove fatfs for now.

Then, build all ...

  • Middlewares/ST/STM32_USB_Host_Library/Core/Inc/usbh_ioreq.h:29:10: fatal error: usbh_conf.h: No such file or directory

... there is a file named template, let’s rename it to usbh_conf.h

Then, build all ...

  • Middlewares/ST/STM32_USB_Host_Library/Core/Inc/usbh_def.h:466:3: error: unknown type name ‘osMessageQId’


Any advice, my fast prototyping should now be as long as doing it for real non?

Best regards,

For a C++ project, create the project with CubeMX _then_ use SW4STM32 to load the project.
You can then right click on the project, in contextual menu choose “New”:”Convert to a C++ Project”.

Be careful not to use C++include files in C compilation units or it will fail - there are several posts here by myself and others on how this results in the kind of include files errors you mention. Understand how to use extern “C” to make sure you have right symbol naming for linking C++ functions into C compilation units.
The bulk of the STM32 resources will not compile as C++ although they are C++ aware and friendly (again, extern “C”) - you can use the HAL code from C++ easily but you can’t compile it with the C++ compiler.

It works, I do it every day for a living...