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 .
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.
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.
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!
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.
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!
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)
@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?
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.
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.