This is a companion repository for Making Embedded Systems, 2nd Ed. by Elecia White.
The OSDev Wiki is a fantastic resource for learning about operating systems. It is a little easier to start with a question and dig in than to wander that site.
FreeRTOS demo list shows MCUs supported by FreeRTOS. Alternatively, check out Getting Started With Zephyr
Designing Reusable Classes by Ralph Johnson and Brian Foote is a paper from 1988 that is still one of the best references for how to design reusable code (and why).
Miro Samek of Quantum Leaps is an enthusiastic advocate for the active object pattern and good software in embedded systems. His books and blog are filled with excellent information but his YouTube channel are particularly instructive as he codes the systems as he talks.
State Machine Diagramming Tools
- draw.io make online flowcharts and diagrams (its code), no signup
- PlantUML.com generates many different types of diagrams from a text description. Less control over placement, but ability to check diagram into source control is a strong tradeoff, no signup
- State Machine Diagramming
- QFSM (sourceforge) and Ragel (wiki) which generates code from UML
- Sketch.Systems: Online tool to describe state machines and make them into clickable prototypes.
Denigma.app is a tool to translate code to “understandable” English
Watchdog
- Proper Watchdog Timer Use a blog post by Phil Koopman
- A comparison of Internal vs External Watchdog Timers an article by Analog Devices
FIXME: Active objects in a repo FIXME: State machine code, stoplight controller FIXME: Different main loops FIXME: Generate code from csv
If you like what's here, please consider buying the book: Making Embedded Systems, 2nd Ed. by Elecia White