Modern Embedded Systems Programming Course logo

Modern Embedded Systems Programming Course

Free

Learn from the basics to modern embedded programming practice.

FreeFree tier
Type
Open Source

About Modern Embedded Systems Programming Course

Companion repository to the 'Modern Embedded Systems Programming' video course. This free, open-source course teaches embedded microcontroller programming from the basics to contemporary modern practice. It uniquely steps down to the machine level to show exactly what happens inside the microcontroller, enabling deeper understanding and confident application. The course covers fundamental concepts such as binary representations, flow control, variables, arrays, pointers, GPIO, bitwise operations, functions, call stack, recursion, ARM Procedure Call Standard, standard integers, structures, CMSIS, startup code, vector table, build process, interrupts, race conditions, superloop architecture, RTOS, object-oriented programming in C, event-driven programming, active objects, hierarchical state machines, automatic code generation, and software tracing. It is practical, hands-on, well-structured, and in-depth, making it suitable for beginners and experienced developers alike.

Key Features

Video course with companion repository of code examples
Covers essential embedded concepts: binary representation, GPIO, interrupts, RTOS, state machines, etc.
Step-down to machine level to explain microcontroller internals
Practical, hands-on approach with real ARM Cortex-M hardware examples (TI Tiva C series)
Well-structured into 56+ lessons progressing from basics to advanced
Free and open-source, hosted on GitHub

Pros & Cons

Pros
  • Completely free and open-source
  • Gradual progression from basics to modern advanced topics
  • In-depth explanations with machine-level views
  • Hands-on code examples for practical learning
  • Covers both hardware and software aspects of embedded systems
  • Includes modern practices like event-driven programming and hierarchical state machines
Cons
  • Requires specific ARM Cortex-M hardware (e.g., TI Tiva C LaunchPad) for full hands-on exercises
  • Course started in 2013; some toolchain details may have changed, but fundamentals remain relevant

Best For

Learning embedded systems programming from scratchUnderstanding ARM microcontroller internals and low-level operationsPreparing for professional embedded developmentTeaching embedded systems in academic or self-study settingsReference for experienced engineers to refresh fundamentals

FAQ

Is this course still relevant?
Yes, because it focuses on fundamental embedded concepts that never go out of style. The course is perhaps even more relevant now than when it started in 2013.
What is the format of the course?
It is a video course with a companion GitHub repository containing code examples and resources for each lesson.
What hardware is used in the course?
The course primarily uses ARM Cortex-M based microcontrollers, such as the TI Tiva C series (TM4C123).
Is the course free?
Yes, the entire course is free and open-source, hosted on GitHub.