The Best and Worst MCU SDKs | Interrupt

:100: I was careful in the introduction to note that this is an opinion piece. There probably is no objective truth on this topic!

I agree with you that examples are important, though I do not typically care whether or not the example code is high quality. As long as it demonstrate the use pattern for a peripheral, I’ve got what I need. One thing I did allude to in the code, is that I like to have all the examples downloaded so I can browse their code. Some SDKs require you use their project configurator to instantiate examples one by one :face_vomiting:.

This is completely biased.
Do you see only PSoC BLE with PSoC creator from Cypress?
Cypress also provides ModusToolbox which is cross platform (Mac, Win, Linux) and uses Makefile ecosystem.
Provides large set of code examples through Github. So continuous delivery is always there to be updated (prefered more than zip).
They support eclipse and vscode officially. But it doesn’t stop you from using vim or Emacs.

If I’d not need to manage others, especially young and/or inexperienced fellows then I may think like you’re saying. Any example needs to show not only a single side one needs but everything including grammatically correct comments. An example needs to show WHAT, HOW and WHY otherwise it is just a clue! Sometimes it’s enough.

1 Like

Hey @ranjith, thanks for the note! I had not heard of Modus Toolbox before, looks like it is relatively new.

I made a change to the article to note that I’m specifically talking about PSoC Creator rather than the PSoC6 family as a whole. I’ll take a look at the module toolbox and update the article as needed.

1 Like

After using Creator can’t switch my mind to Modus. Way too different tools.

Great post, @francois! This is an important but not often discussed topic. I’ve done some similar experimentation and wanted to offer a few pointers for the post. Forgive me if you’re already aware of both of these!

  1. You mentioned that the STM32 SDK isn’t available as a monolithic download but I believe it is. Here is the link to that for the F1, and I believe that every device family has a similar resource.

  2. You’re correct that Infineon doesn’t provide a makefile for their MCUs, but I found that the generic makefile generated by STM32CubeMX makes a decent stand-in, with a few modifications. You can find one that I used here and as long as I’m not going to get in trouble for modifying and sharing ST Microelectronics’ makefile, you should feel free to share that as widely as you’d like!

Hi all ,
Now i used vs code and gdb.
Because it is cross platform (window and linux like).
And IDE’s editor is pool.

Thanks for the link, Nathan. I looked for those and just wasn’t able to find them. Good to see they still exist! I’ll add a note to the post.

Actually, ST’s notation is underevaluated.

Indeed, ST is proposing all of its SDKs either through their STM32CubeMX tool or directly through simple zip files or even GitHub directly !

You can check:

That’s an impressive effort !

This is very cool, and I did not know about the Github repository. Seems like a new effort? I’ll update the article tomorrow. Thanks for the note @SeaFood!

Great post!
Personally my experience with Silicon Labs’ SDK has been quite good, and the SDK can be downloaded as a single zip. Their example makefiles are quite nice.

I would also give a huge penalty to the Atmel/Microchip SDK (ASF) for using precompiled libraries for which they don’t release the source code (QTocuh, LoRa etc)

According to this page it seems it was done in last April.

It seems ST also opened the Pull requests, so not just a publication, but rather an opportunity to contribute :). Definitely cool !

As far as I can tell, those are deprecated. The downloadable toolchain in that forum post is from 2016.

My bad, here is a link to a fresh version, although you need a user at Definately not “as available” as some of the other SDKs.

@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.