2021-10-23 10:17 PM
HI everybody,
we're are trying to build up a few more work spaces for developing STM32CubeIDE
applications and we're unsure in what kind of laptop / desktop hardware we should invest.
Can somebody point out the most important parts responsible in speeding up linking
and compiling processes? CPU type, number of cores, RAM size, type of storage, etc..
Maybe it's possible to recommend a certain system that is optimised in supporting
embedded programming.
Thanks and best regards
Markus Spiekermann
2021-10-24 12:44 AM
Few thoughts: STM32CubeIDE uses "make -j" for building which uses all cores for parallel compilations. The more cores the faster. When my Win10 machine is idle, it uses 14GB of RAM, so 16GB seems tight, I'm on 32GB. The gcc compiler and linker are IO intensive -> one or two fast SSDs come handy.
A clean build of a "typical" F7 project (96 .c files) in Debug configuration takes about 15 seconds. I'm happy with that.
hth
KnarfB
2021-10-24 07:34 AM
Certainly a fast SSD would be the best bang for the buck here since compiling often uses so many different files at once.
I don't think you really need a specialized system though. General CPU benchmarks should be applicable. Compiling can be easily parallelized, so more cores are better. Linking not as much.
2021-10-28 01:04 AM
Thank you for your thougths and comments. I'll keep them in mind by setting up the hardware.
2021-10-28 01:12 AM
Hope this helps.
2021-10-28 04:08 AM
Consider also flashing time of the resulting executable.
2021-10-28 04:23 AM
I'm not 100% sure about this, but I think the bottleneck on flashing time will be the ST-LINK and the USB2.0 link, not some component on the PC. It seems like the ST-LINK is making the PC wait instead of the other way around.
2021-10-28 04:37 AM
Flashing time: Good point too. Well I believe that boundnaries are set by the programming hardware. St-LINK in combination how fast the DUT flash memory allows to be written to. And here embedded developers can't do much to optimize.
2021-10-29 03:14 AM
Hello!
One thing that's not related to hardware but is one of the absolute biggest performance boosts is using Linux and/or macOS.
The file system in Windows makes CubeIDE kind of slow.
For reference, when we test the GNU tools toolchain which implies compiling and executing several thousands of tests across Linux/mac/windows.
Then Windows is always way slower than the other two operating systems.
I could imagine that you could set up a RAM disk and check out your workspace/project to be compiled from RAM instead of the hard drive to boost the performance on Windows.