Index of FreeRTOS Tutorials

1. Design of FreeRTOS Task Data Structures

This article discusses the basic unit of resource management in FreeRTOS – the task data structure, providing readers with a macro understanding of task (process) management in embedded operating systems.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes FreeRTOS Core Mechanism Analysis: Task Structure Design

2. FreeRTOS Task Management

Building on the previous article’s foundational understanding of embedded system process (task) data structures, this article further explains the scheduling methods, giving readers a complete concept of the data structures and algorithms for process management.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes FreeRTOS Core Mechanism Analysis: System Startup and Task Scheduling

3. FreeRTOS Inter-Task Communication Tool – Queues

After readers understand the management and scheduling of processes (tasks) in embedded operating systems, this article introduces a basic tool for inter-process communication – queues. With queues, tasks can directly exchange messages and work collaboratively. Of course, embedded systems differ from general-purpose Linux or Windows, as they can directly share memory, but queues provide some more convenient functionalities.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes FreeRTOS Queue Mechanism: From Principles to Practice

4. FreeRTOS Task Synchronization Tool – Semaphores

Since you have chosen an embedded operating system as the foundational platform for your program, it is likely that the complexity of your business has led you to require task (process) management. Semaphores are a convenient tool that allows for easy synchronization between tasks, enabling tasks to suspend while waiting for a resource (signal) and quickly execute once the condition is met.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes Comprehensive Analysis of FreeRTOS Semaphores: From Principles to Practical Applications

5. FreeRTOS Task Synchronization Tool – Event Groups

The semaphore tool mentioned earlier allows your tasks to wait for a single signal or multiple signals; however, if your needs require waiting for a group of different signals rather than just one, Event Groups come into play. They provide a mechanism for tasks to wait for a group of signals.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes In-Depth Analysis of FreeRTOS Event Groups

6. FreeRTOS Inter-Task Communication Tool – Stream Buffers

As an embedded program, you may need to handle various continuous data streams such as sensor data streams and audio data streams. FreeRTOS provides corresponding tools for these needs.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes FreeRTOS Stream Buffer: Real-Time Data Streams

7. FreeRTOS Inter-Task Communication Tool – Message Buffers

FreeRTOS offers many tools! Message Buffers are a mechanism in FreeRTOS for passing discrete messages between tasks and interrupts. Its core design philosophy supports variable-length message passing while ensuring data safety and reliability. Unlike traditional queues, Message Buffers allow messages to be stored as byte streams and can dynamically adjust in size.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes FreeRTOS Message Buffer: The “Message Courier” in Embedded Development

8. FreeRTOS Task Management Tool – Software Timers

FreeRTOS provides synchronization tools between tasks: semaphores, Event Groups; and message passing mechanisms: various queues. But how do you handle periodic tasks? You can implement it yourself, but the system also provides a corresponding tool: Software Timer.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes In-Depth Understanding of Software Timers in FreeRTOS

9. Essential Knowledge for FreeRTOS Beginners – Coding Standards

With such rich functionality in FreeRTOS, I am very interested in it and want to read its code, but I find its coding habits difficult to understand. What should I do? Please see the following explanation to help you get started quickly.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes Exploration of FreeRTOS Coding Standards and Data Type Design

10. Advanced FreeRTOS – System Customization

I have already understood the basic principles of FreeRTOS, but the default version still has some gaps with our needs. What should I do? Here, you can customize it.

Medical Engineering Notes, WeChat Official Account: Medical Engineering Notes Initial Exploration of FreeRTOS Kernel Configuration

11. No more for now, you are already very impressive, please leave a comment to guide me.

Leave a Comment