I think programming a microcontroller without an operating system is a good exercise for most coders / software engineers. It gives you a perspective of how much you can accomplish using MMIO and an imperative programming language. (C, C++, Rust generally).
These days, microcontrollers span a range of price points and capabilities. (CPU speed, flash, RAM, onboard peripherals etc). There are even <$1 32-bit ones (See STM32C0), and ones that cost $10-20 and have 2MB of flash run at 500Mhz, have 64-bit FPUs, loads of hardware IO protocols and ADC/DAC channels etc. Also some that are ~$3USD and have onboard Wi-Fi, Btle, LoRa etc, and can run for years on small batteries.
Agree. Writing assembly for the Motorola 68HC11 and getting it to drive two servo motors I had attached felt like some of the original magic that I remember feeling when I wrote my first HELLO WORLD program in BASIC as a teenager.
I think programming a microcontroller without an operating system is a good exercise for most coders / software engineers. It gives you a perspective of how much you can accomplish using MMIO and an imperative programming language. (C, C++, Rust generally).
These days, microcontrollers span a range of price points and capabilities. (CPU speed, flash, RAM, onboard peripherals etc). There are even <$1 32-bit ones (See STM32C0), and ones that cost $10-20 and have 2MB of flash run at 500Mhz, have 64-bit FPUs, loads of hardware IO protocols and ADC/DAC channels etc. Also some that are ~$3USD and have onboard Wi-Fi, Btle, LoRa etc, and can run for years on small batteries.