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 two short videos (registration required) highlighting:

System Workbench for STM32


Compilation is very slow

Hi,

We are evaluating OpenSTM as an alternative to a well known compiler for ST processors for some internal projects.
Clean projects were generated by STM32CubeMX and compiled both on the well known compiler (in its native IDE) and with OpenSTM’s GCC.

We have set the parallel compilation in OpenSTM. the compile time for openSTM is about 10 times slower than the well known compiler.
We have also done the same with a real project and the results were very significant. a minute vs almost 10 minutes.


Compilations on Win7 and Win10.
OpenSTM Version: 1.14.0.201705091103
MCU: STM32F401RE

I would appreciate advice.

Thanks
Lior

Hi Lior,

Some users has also reported this issue, we are still investigating the problem.

For some people, the antivirus scans every new build processes which significantly increase the build time. The solution is to add OpenSTM32 System Workbench installation location in the antivirus exception list.

For other ones, shutdown every network connections does fix compilation. Our team is investigating to locate where the problem comes from and will provide a fix ASAP.

Could you try these solutions ?

Sorry for inconvenience.

Regards,
Kevin

In addition I remember to have read on another topic that some anti-malwares were slowing down the build time.
Maybe try by temporarily disabling your protection software.

Rgds,

Hi Kevin,

Disabling network connecivity (Ethernet, Wifi) fixed the problem. This is not a long term solution though. If it helps, i maybe can provide additional information to assist?



Best regards,
Lior


I moved from version 1.14 to version 2.0.
Same symptoms (build very, very slow), and also in my case disabling _all_ network connections restores normal compilation speed.

This is a serious issue, I usually use 2 or 3 network devices at the same time for different purposes.

The system is windows 7 professional, 64 bit.

regards,
Adriano


You might try switching to the “internal builder” and see if that speeds up compilation for you.

Project -> Properties -> C/C++ Build -> Builder Settings
Select builder type “Internal builder”

I also found that turning off “Build logging” (also under the C/C++ Build dialog) sped things up a bit.

Hi,

Can you please elaborate what is the internal builder? how does it differ from GCC and why isnt it the default?

Thanks
Lior

Lior,

the internal builder is used by Eclipse alternatively to the external builder (usually make).
make is the tool used normally to manage the dependencies and precedences between files during compiling and linking, actions which are done by gcc.


Hi all,

some more information

I changed the builder to internal as suggested by MSchultz above, the sources are compiled much more rapidly, so this can be a viable temporary solution for some people.

It would be very interesting to understand why make (the external tool) is troubled when the network interfaces are enabled: pleas fix the issue anyhow!

_Post build commands_
the post build command string must be changed! instead of && (double ampersand) between commands, using the internal builder a ; (semicolon) must be used.

examples:
with external builder
arm-none-eabi-objcopy -O binary “${BuildArtifactFileBaseName}.elf” “${BuildArtifactFileBaseName}.bin” && arm-none-eabi-size “${BuildArtifactFileName}” && arm-none-eabi-readelf -e “${BuildArtifactFileBaseName}.elf”

with internal builder:
arm-none-eabi-objcopy -O binary “${BuildArtifactFileBaseName}.elf” “${BuildArtifactFileBaseName}.bin”; arm-none-eabi-size “${BuildArtifactFileName}”; arm-none-eabi-readelf -e “${BuildArtifactFileBaseName}.elf”


regards,
Adriano

Hello,

I have the same problem, the compilation is extremely slow, even clean the project is slow.
In my case I don’t have antivirus, I just have the standard windows 10 protection. Change builder to internal doesn’t have impact and disabling WIFI doesn’t improve anything :-(

Is there any other recommendation?

I am using install_sw4stm32_win_64bits-v2.2.exe


I have a theory - or at least a partial one - why builds may be slow when using the external (make) builder and networking is enabled.

It may have something to do with the executable search PATH (environment variable) pointing to locations on network resources. Or, perhaps something within Eclipse’s build system is doing a PATH-driven search to find the toolchain executables, or maybe make is doing this.

It is just a theory - completely untested - that occurred to me while I was reading this thread.


On my home pc i have no network and compilation after cleaning of a empty project with lwip and fatfs takes:

20:48:23 Build Finished (took 2m:36s.732ms)

The build logging is disabled. It seems like every file to compile takes 3 seconds and my pc is a 8GB ram I7 with SSD


Found the answer on anoter thread on this forum. (Slow Build)
Exclude the compiler directory from the virus scanner:
C:\Ac6\SystemWorkbench\plugins\fr.ac6.mcu.externaltools.arm-none.win32_1.15.0.201708311556\tools

Now the compilation time takes:
10:53:44 Build Finished (took 1m:4s.52ms)

My cpu load is never higher than 24% so there is room for improvement