The Best and Worst MCU SDKs | Interrupt

@francois Thanks for your article.
1- Can you write a post about your vim setup? What do you use for completion and linting? LSPs?
2- How do you debug if you use vim? Isn’t register/peripheral views of Eclipse and VSCode’s Cortex-Debug a deal-breaker?

1 Like

Hi! To find out what I can do, say @discobot display help.

A minor note: NXP features another line of Cortex-M devices: S32K Automotive MCUs for those requiring ASIL certification.

I have used TIVAWARE, the wonky exe is actually a self extracting zip. It works well for Windows users. However, when I switched to linux, even I had to ‘extract the exe’ manually. Never tried nordic, maybe I should get a dev board to try it out.

Creator will be good for graphical interfaces. Dont know how easy or tough to maintain these graphical interface codes.

Have you folks looked into PlatformIO? There’s an IDE variant, which is probably what most people use, but the link above is for just the CLI core. In my opinion, PIO is crazy effective in combination with vim (my favourite), supports a ridiculous number of platforms, auto-installs and -updates all their toolchains, takes care of all libraries and dependencies, and supports TDD and CI. I’ve been using it for years now, mostly STM32 and ESP32. I’m still bumping into features which were designed “just right”.

I’m not a fanboy, nor do I have a stake in this open source project. I just use it. Daily.

First of all, great overview!
The focus on the software development side is intentional I believe, but I feel that it is very important to also look at the hardware and hardware/firmware crossover point when judging a SDK.
Meaning - the ease of pin function planning and peripheral mapping to those pins and enabling required peripherals. For me, a very important metric is a following workflow: choose any MCU from the manufacturers lineup, configure it for your specific application and get to a compiling sample project with all peripheral set up (clocks, DMAs, interrupt handlers etc) ready for further tuning and application development.
For example, with STM32Cube, setting up a project with Ethernet, FreeRTOS, LWIP, DMA channels and couple of other communication busses is quite trivial. Would be really interesting how other manufacturers SDKs compare to that. For me, often, getting to the point where the MCU feature planning and setup is done is the most frustrating and error-prone part of the development process…

great article.
Please, consider creating an updated blog post… perhaps including other vendors as well like Nuvoton (spoiler: might get 0/10)

and also include RP2040 sdk (spoiler: might get 10/10)