Visual Studio for Arduino development and STM32F4 support
I've been having some fun with Arduino boards over the last few weeks. I've been mainly using the UNO R3 board. There are three main drawbacks on using these devices, two tied to the microcontrollers they use, and one on the IDE:
- they are slow;
- they have very few memory available in both the RAM and Flash departments;
- Arduino IDE is, for lack of better word, "not very good".
Problem #1: performance
Problem #2: memory (or lack thereof)
Solving problem #1 and #2
Problem #3: the IDE
- Projects are unmanageable. You cannot easily add/rename/delete files.
- Corollary: subfolder are not a thing in projects.
- It absolutely REQUIRES a communication port to be specified to build and upload a project even when the uploading part is done through a separate process configured at IDE level. This means you can't really use it for STM32 development.
- It is horribly memory-hungry.
- Does it really need to spawn 11 processes when it starts?!? Look at this crap! That's 508.06MB just to show the IDE.
- Performances degrade the more you use it. You have to restart it every few hours, otherwise memory and CPU usage get out of hand (memory jumps from 400MB to 2.6GB in seconds, then gets freed, then gets reserved again, on, and on, and on, all while consuming a steady 25-35% of CPU resources).
- It's unstable and hangs often for no reason.
- Try to save a new sketch and the screen will blank out. Did your code save or not? Who knows!
- Code "intelligence" is practically non-existing. It can't figure out symbols correctly and the parser sometimes just... gives up? But it still displays errors from code that has long since changed.
- Building code is extremely, horribly, painfully slow, particularly if you use not-technically-Arduino boards.
- I don't think it caches the boards libraries it compiles and recompiles them for every project.
- IDE configuration is minimal/non-existent and not very flexible.