• Stars
    star
    358
  • Rank 118,841 (Top 3 %)
  • Language
    C
  • License
    GNU Affero Genera...
  • Created about 4 years ago
  • Updated almost 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Companion repository to the "Modern Embedded Systems Programming" video course.

Brought to you by:

Quantum Leaps


Modern Embedded Programming Course

What is it?

This repository is a companion to the "Modern Embedded Systems Programming" video course, which consists of focused, fast-paced, hands-on lessons that teach you how to program embedded microcontrollers in C. The course begins with the fundamentals, but gradually covers increasingly advanced concepts all the way to the contemporary modern embedded programming practice.

The course is specifically designed not just to be watched, but to be actively followed along on your own computer (Windows based PC) and a small, self-contained, very inexpensive evaluation board. This companion web-page provides the project downloads that you can open in a specific embedded toolchain and run on your PC at home.

The goal of the course is not just to teach C--other sources do it already quite well. But there are virtually no courses that would step down to the machine level and show you exactly what happens inside a microcontroller.

So, starting from Lesson 1 you will actually see how the ARM Cortex-M processor executes your code, how it manipulates registers, and how an embedded microcontroller can "do" things in the real world, such as turn on and off an LED.

This deeper understanding will allow you to use the C language more efficiently and with greater confidence. You will gain understanding not just what your program does, but also how the C statements translate to machine instructions and get a sense for how fast the processor can execute them. Also, you will get some familiarity with the ARM Cortex-M core, which will look really good on your resume.

The course has been going from January 2013, but it is never too late to join. Stay tuned...

Updates

All projects for ARM/KEIL uVision have been updated from the obsolete Compiler-5 to the newer Compiler-6.

Comments/Discussion

If you'd like to discuss this course or related subjects, plese post your questions or comments on YouTube, in the commend section under each pertaining video lesson.

Course Resources

Numerous resources for the video course are available through the companion webpage at:

www.state-machine.com/video-course

Among others, you can find there:

How to Help this Project?

If you like this project, please:

YouTube subscribe

  • spread the word about the videos you like (e.g., by posting on other websites frequented by embedded folks)

  • give this GitHub repository a star (in the upper-right corner of your browser window):

GitHub star

More Repositories

1

qpc

QP/C Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
C
788
star
2

qpcpp

QP/C++ Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
C++
316
star
3

OOP-in-C

Simple and efficient implementation of OOP in C suitable for real-time embedded systems.
C
159
star
4

qpn

QP-nano real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
C
148
star
5

qtools

QTools collection of open source tools for embedded systems development on Windows, Linux and MacOS
C
113
star
6

Super-Simple-Tasker

Event-driven, preemptive, priority-based, hardware RTOS for ARM Cortex-M.
C
111
star
7

qm

QM model-based design tool and code generator based on UML state machines
Shell
107
star
8

MiROS

MiROS (Minimal Real-Time Operating System) for ARM Cortex-M
C
65
star
9

FreeAct

FreeAct is a minimal Active Object (Actor) framework for FreeRTOS
C
65
star
10

lock-free-ring-buffer

"Lock-Free Ring Buffer" (LFRB) is a minimal, customizable implementation of a ring buffer (a.k.a. circular buffer) in C, specifically suitable for embedded systems.
C
60
star
11

qp-arduino

QP real-time embedded frameworks/RTOS for Arduino (AVR and SAM)
C++
41
star
12

State-Oriented-Programming

State-Oriented Programming: was a cover story article about Hierarchical State Machines in C and C++ published originally in "Embedded Systems Programming" magazine in August 2000. This repository contains the article PDF and the updated code.
C
25
star
13

embedded-coding-style

Embedded C and C++ Coding Style
CSS
14
star
14

Embedded-Test

Embedded Test (ET) -- The Super-Simple Embedded Test
C
8
star
15

DBC-for-embedded-C

Design By Contract (DBC) for embedded C and C++
C
4
star
16

qpc-zephyr-app

Example project and starting point for creating QP/C-Zephyr applications.
C
4
star
17

contributed

Software contributed to the QP framework ecosystem
3
star
18

qpcpp-zephyr-app

Example project and starting point for creating QP/C++-Zephyr applications.
C++
3
star
19

3rd_party

3rd-party code used in the QP/C and QP/C++ examples
C
2
star
20

cmsis-packs

CMSIS packs released by Quantum Leaps
2
star
21

spexygen

Traceable specifications based on Doxygen
CSS
2
star
22

ql-doxygen

Doxygen customization based on doxygen-awesome-css
CSS
2
star
23

spexygen1

Traceable specifications based on Doxygen.
CSS
2
star
24

ET

ET (Embedded Test) -- The Super-Simple Embedded Test
C
1
star
25

.github

Quantum Leaps' profile
1
star