- Why System Workbench proposes to load firmware in a library project?
- Why is there an error "Program "arm-none-eabi-gcc" not found in PATH" while my project can be built ?
- How can I import a project created by STM32CubeMX (Micro Explorer)
- I got plenty of "could not be resolved" errors in a newly created/imported project
When the firmware is placed in a library project, it is compiled independently of your application, then linked with your application. This setup informs the linker of what code is really required (your application) and what code should only be included when used by some "required" code. This selection can then be done on a function by function level on the external static library.
On the opposite, if you include the code from the firmware into your application project, then all the code from the firmware will be included in the final object code, as the linked does not know how to choose what is really needed.
Note that if you develop middleware code, you should also deploy it as a static library, so that only the relevant part of your code (at function granularity) is included in your final system.
When creating your project, you probably selected to import the low-level drivers as static library. This error does not really exists and should not affect the usage. This is a known bug, we are working on it not to display the error message.
If you find it inconvenient, you can remove this message. Go to the "Problems" view (Windows > Show views > Problems) then select the errors and delete them. Unlike real problems, these errors won't appear again. The error could also disappear when System Workbench is restarted.
Basically there is currently three possibilities:
- Importing the CubeMX-generated project in an existing workspace without copying it; the code will then remain in the generation directory, out of your workspace
- Direct CubeMX to generate code in your workspace, then import the project from there
- Select the base directory where CubeMX generated the source code as your workspace when starting Ac6 System Workbench for STM32, then import the project; your workspace will then include only this project
In all cases CubeMX may be used to re-generate code and will keep your modifications if they are placed between the code generation "User Code begin/end" comments.
It is usually advisable to use one of the first two possibilities, as the third one will impair the ability to place the generated code under source-code-management systems like GIT or SVN.
Detailed instructions are provided in the Ac6 System Workbench for STM32 documentation at Importing a STCubeMX generated project