Just curious, what do you think about CMSIS?
I sort of like the idea of a vendor independent framework. There seems to be some support from ARM, TI, ST, NXP, Keil, Atmel/Microchip and others. But somehow I get the idea that a lot of stuff is old and/or deprecated.
For the moment I think I'll start with MBED.
Platformio supports the MBED platform for the "Blue Pill" board and there seem to be lots of libraries for external chips, for example TFT controllers.
[ Rant]
I've always disliked the "arduino" stuff. The java contraption they use an "IDE" is easy to avoid with platformio, and the horrible pinout also if you buy something that fits on a breadboard. What is still annoying is the "digitalWrite()" which is sprinkled everywhere ( 45% speed penalty for already slow TFT library (Adafruit / AVR)) and the mixed bag with C and C++ and all kinds of pre intstantiated objects for hardware I want to use differently.
[ /Rant]
In mbed you have to declare objects yourself, so you only declare the objects you need, and this also makes it easy to plug in a homebrew alternative class if needed.
This example looks pretty clean:
#include "mbed.h"
Serial pc(USBTX, USBRX); // tx, rx
int main() {
pc.printf("Hello World!\n\r");
while(1) {
pc.putc(pc.getc() + 1); // echo input back to terminal
}
}
Most important is probably to "just start somewhere", as said before in this post. With platformio & mbed I can postpone having to dive into the low level stuff and get some fun projects going and gradually build knowledge of the peripherals I find interesting.
I by no means see mbed as the platform I want to use for the next 10 years, but just a starting point to ease the learning curve a bit and that is something I need badly because I've been skidding down that curve for more then a year.
Just a thought:
Another way to start / pick a framework is to find a project you are intersted in on github / gitlab / elsewhere and that compiles cleanly. (inclusive project / makefile / schematic etc), and then adopt whatever is used in that project and build from there.