The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
I am using the MS visual studio (2019) with some external tools for compiling and linking. The tools are the .bat file invoking the GNU compiler. I am using the same construction also for the AVR processor. It is working good enough (after my opinion). The main reason to implement this system was to keep the same development tool for any application.
The first problem is frameworks that are cluttered with crap that hardly anyone uses. Why? Because its architects are either clueless or actually think they're doing users a favor.
There has to be a use case for everything in a framework. If it isn't going to be used as soon as it's added, it should only go in if there are likely-to-occur scenarios where it would clearly be useful.
The other problem affects the whole industry. The hardware weenies do too good a job delivering faster processors, more memory, and more disk space. Thoughtless developers then piss it away because it's all good if it runs in less than an hour.
In their defense a lot of the crap is for supporting hardware that the device has, even if you won't be using most of it (they don't know in advance what you will use) - but the ESP-IDF has a "menuconfig" script that will remove headers for components you aren't using to shorten the compile times.
IoT doesn't suffer from the "free lunch problem" you describe. Every cycle and byte counts. You're dealing with 80kB of RAM and 256kB of non-volatile flash program space and that's being generous. Some have far less.
Its because we have to think of performance, cycles, milliamp hours, that I choose to play with uControllers.
Protected mode made the x86 landscape considerably less fun. Pre-emptive multi-tasking? Meh, why even bother anymore! I'll just play games on it.
Another problem with frameworks is that their surface-to-volume ratio keeps getting worse because of the unwillingness to deprecate anything, let alone make "breaking changes" that force users to update their code.
I am working with STM32 for several years. Looks like every new release has more and more bugs, which are never fixed.
On the other hand, new CubeIDE version has super-ugly new look. Probably they have too much UI programmers, but not enough hadrware programmers.
CubeMX code generator produces non-working code. But if you don't want code generator, you can write everything from scratch. All code samples are written from scratch without CubeMX.
CubeIDE itself is OK, it is Eclipse-based and makes its work.
Starting a new project now, I think I will look for another options. If looks like STM moves in wrong direction.
I really like the ESP32s. The ESP-IDF is nice to code in - you can use fopen() and printf() and such, though I've had some issues with the SPI, but SPI works great under the Arduino framework with it.
The achilles heel is it's kind of quirky and draws more power than some other offerings. However, again, coding with it is just great compared to the STM32, IMO.
They are also powerful for an IoT device. The minimum configuration is single core, 360k or so of RAM and 4MB of NVS flash. A typical configuration has 520k of RAM and two cores. They have generous IO, with multiple SPI and I2C controllers, a ton of built in widgets including bluetooth and wifi, touch sensors, a magnetic field detector, ADCs (though a bit dodgy) and DACs, and all the pins are remappable in software.
My experiences with ARM so far are very negative: Keil makes VisualStudio 6 look futuristic, stm32CubeIDE as you say makes VB6 look streamlined (and I have a decade of experience with VB6).
Also the programmers (devices, not coworkers) suck, especially the Infineon line, and they try to scam developers with incomplete devices that allow for minimal debugging (limited breakpoints, no trace...). I much preferred the Renesas microcontroller, despite MultiIDE being absolutely terrible and buggy.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
Last Visit: 31-Dec-99 18:00 Last Update: 22-May-22 7:54