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 remember that "I invented the microprocessor" patent claim. I'm glad he lost in the end. Gaming the system with patent continuations isn't the same as doing the technical work necessary to create practical CPUs-on-a-chip, and doesn't deserve to be rewarded.
The interesting story about Hyatt isn’t his invention claims but what happened after he won. He relocated post-haste to Nevada for tax reasons but California’s Franchise Tax Board didn’t believe him, harassing him until they lost a serious lawsuit.
This is a nicely in depth and enjoyable read, especially as a long time software engineer, who's recently become interested in raspberry pi's and microcontrollers.
Wait. What? The instruction pointer incremented as an LFSR and not a binary counter to save on transistors? That is the craziest thing I've heard. But also kind of awesome. Digital designers of the ancient era were masters of the crazy-awesome.
Yes, the IP as a binary counter is a historical artifact :). If you look at the first computer reports, the IP was a binary counter because the memories were linear addressable since they were made from mercury tubes - so one could only increment by 1. This got carried over even though we developed RAM.
One wonders what impact the LFSR would have on the processor cache architecture, since there is spatial locality is not preserved. There is also a potential to run the program in reverse.
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.