RTOS Firmware Programming
RTOS Firmware Programming · TESA Firmware SDK for Edge AI course
Objectives
Section titled “Objectives”Split work by responsibility and timing with FreeRTOS: tasks, priority, queues, mutexes, semaphores and event groups, along with the rules of an ISR.
Lessons
Section titled “Lessons”| # | Lesson | Content |
|---|---|---|
| 1 | Multi-task firmware with FreeRTOS | Creating a periodic task, choosing a priority, passing data with a queue, protecting a bus with a mutex, signalling with a semaphore/event group, and respecting the rules of an ISR |
| 2 | Lab: multi-task firmware with FreeRTOS | Creating two tasks with different periods, passing a button event through a queue, protecting a shared bus with a mutex, then writing notes about timing |
Approximate time per the original: about 3.5–4 hours (lessons) + a 2.5–3.5 hour lab.
Accompanying sheets and templates (in the resources/ folder of lesson 1):
The C code in this module uses the API of the TESAIoT Bitstream firmware, which is not yet open source. Read the note at the top of the lesson before you start.
Checkpoint
Section titled “Checkpoint”Before moving to the next module, check that you can do the following:
- Two tasks blink an LED at different periods with no busy-waiting
- A button event travels through a queue to a task that prints over UART
- A shared resource is protected with a mutex or a bus-locking API
- Lab E’s timing questions are all answered
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0
Content is licensed CC BY-NC 4.0. Reuse it non-commercially and credit the Thai Embedded Systems Association (TESA) every time. · How to cite TESA