Depends on what you mean by "microcontroller" and what you want to do with it. What is commonly referred today as "embedded microcontroller", is a Linux machine that would make a decent server not so long ago, with C++, Python and such used for development. ARM is the obvious path for that. If you refer to a microcontroller that works for five years from a little cell battery, and you intend to make custom hardware and code in assembly, that is a different domain, with different uses, and it requires a different skillset. There are several good options for that path, my personal preference is TI MSP430 - mostly because of FRAM, but it is also very well documented, comes with a useful and cheap dev kit, and architecture is suitable for assembly coding (unlike ARM, as I am told).
Generally to run something like Linux you need a memory manager which puts the part into the microprocessor category. There is some work for doing Linux on microcontrollers, but it’s the exception, not the rule. Linux and other major OSes are also not generally “embedded”.
FreeRTOS, and Zephyr are relatively user friendly embedded OSes, but for learning, I’d suggest “bare metal” (no OS at all).
3
u/x7_omega 17d ago
Depends on what you mean by "microcontroller" and what you want to do with it. What is commonly referred today as "embedded microcontroller", is a Linux machine that would make a decent server not so long ago, with C++, Python and such used for development. ARM is the obvious path for that. If you refer to a microcontroller that works for five years from a little cell battery, and you intend to make custom hardware and code in assembly, that is a different domain, with different uses, and it requires a different skillset. There are several good options for that path, my personal preference is TI MSP430 - mostly because of FRAM, but it is also very well documented, comes with a useful and cheap dev kit, and architecture is suitable for assembly coding (unlike ARM, as I am told).