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


Blind Compiler - A Blindfolded Compiler Is Useless

The Compiler is blind for a clearly present header file. This is unacceptable in 2016. In 1985 there were compilers who were strikt, clear and obvious and absolutely logic. Where are they today???

I sure want a liberating answer or a ‘thank you’ for finding a bug because yes this is more like a bug than a configuration problem. If it is a configuration problem then the technology is seriously going awry. There is no reason something should be an added ‘configuration’ to make a compiler see the obviously present file. It really beats me these days how unnecessary complicated thing have become for a straightforward job. Unbelievable.

Of course this is board independent. The issue is straightforward about blindness to clearly visible tree incorporated files.

Screenshot in attachment.


Below you have it. However, I do believe such erroneous situations are unacceptable under any circumstances. The error notification absolutely makes no sense from a didactic point of view. It is fundamentally illogic as Mr. Spock would say. I, me, and all visitors can see the compiler is blind without deductive resolvable reason. Progress is no progress with increase of obscurities and hidden depencies.


23:55:54 **** Incremental Build of configuration ReLeAsE for project Cstm32f103c8t6mini_PC13LED Configuration ****
make all
Building file: /home/benoit/workspaceSTM32Fxx/Cstm32f103c8t6mini_PC13LED/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c
Invoking: MCU GCC Compiler
/home/benoit/workspaceSTM32Fxx/Cstm32f103c8t6mini_PC13LED/SW4STM32/Cstm32f103c8t6mini_PC13LED Configuration/ReLeAsE
arm-none-eabi-gcc -mthumb -mfloat-abi=soft -O3 -Wall -fmessage-length=0 -ffunction-sections -c -MMD -MP -MF”Drivers/STM32F1xx_HAL_Driver/stm32f1xx_hal.d” -MT”Drivers/STM32F1xx_HAL_Driver/stm32f1xx_hal.o” -o “Drivers/STM32F1xx_HAL_Driver/stm32f1xx_hal.o” “/home/benoit/workspaceSTM32Fxx/Cstm32f103c8t6mini_PC13LED/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c”
/home/benoit/workspaceSTM32Fxx/Cstm32f103c8t6mini_PC13LED/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c:54:27: fatal error: stm32f1xx_hal.h: No such file or directory
#include “stm32f1xx_hal.h”
^
compilation terminated.
make: *** Drivers/STM32F1xx_HAL_Driver/stm32f1xx_hal.o Error 1

23:55:55 Build Finished (took 231ms)

Tunisia

The compiler invocation command does not contains any -I (for incude directories shown in your screenshot)

Could you ensure that this displayed directories in inculdes tree are added in MCU GCC Compiler Includes and not in Assembler General Includes ?


Hi Tarek,

I really appreciate the help you give however it is obviously indicative of some awfully wrong development . Eclipse having 200+ megabytes of code sure knows it must first look into its project tree before crying it cannot find file such or so. It is sure not asked too much for an IDE who already manages to compose a project tree to first look in that same project tree before outputing some nonsensical notification about a ‘fatal error’? If it cannot manage for itself to FIRST look in an already established project tree for the user/developer to see with his/her own eyes then why it has a project tree in the first plays? For us to tell eclipse on top of it where to look? Something seriously is wrong in the minds of who created eclipse and or its ARM plugins.




Creating Release build configuration and copying build configuration from Debug build configuration to Release build configuration.

Eclipse menu: Project => Build Configurations => Manage... => => Name: Release, Description: whatever, Import from projects: choose current project/Debug => . Done


France

Hi ben,

From the errors you mention, it looks like you manually created a Release configuration for a CubeMX generated project as, regretfully, CubeMX only generates a Debug configuration for the project.

Eclipse is able to keep all configurations up-to-date with the include file directory specifications, but only for existing configurations, not configurations that are created later on...

You thus have two alternatives:

  1. Only work in Debug mode; if the Debug mode works why change it?
    1. You will deliver code that is not properly tested (except if you fully test it again in Release mode);
    2. Moreover the delivered code will not be debuggable so quite hard to fix if an error is later on detected
    3. Rather than switching to a Release configuration (that optimize and do not provide debug information) you should consider just increasing the optimization level of the Debug configuration
      • Then the final code will still be debuggable (although sometime a bit strange debug behavior can be due to optimizations) so the delivered code will be simpler to fix in case of error.
  2. Create a Release configuration by importing the Debug configuration then adapt the optimize and debug options.


Hope these clarifications will help; hopefully, in a forthcoming release, we can expect CubeMX to generate the Release configuration; ST is aware of the problem and should fix it.

Bernard (Ac6)


Thanks Bernard,

Yes I have already figured out the “Create a Release configuration by importing the Debug configuration then adapt the optimize and debug options.” option by trial and error and could imagine an extra Build configuration as ‘Release’ giving the opportunity for configuring for optimized code.

Thx and greetings!