FreeRTOS Part 1: Introduction to Real-Time Operating Systems

FreeRTOS Part 1: Introduction to Real-Time Operating Systems

This article lays the foundation for Bob’s new series on the open-source FreeRTOS, where he introduces the history of early multitasking real-time operating systems (RTOS) that allowed multiple tasks to run “simultaneously.” He uses FreeRTOS as an example to explain how multitasking RTOS works and its basic components. In 2019, as the world prepared to … Read more

FreeRTOS Part Two: Tasks

FreeRTOS Part Two: Tasks

FreeRTOS Tasks Let’s continue Bob’s open-source FreeRTOS series articles. The core of FreeRTOS is the task. In this second part, I will explore what a task is, what options are available to configure the Task Control Block (TCB), and what functionalities might be missing in the FreeRTOS TCB. As I grew up, I gradually discovered … Read more

FreeRTOS Part Three: Configuration

FreeRTOS Part Three: Configuration

FreeRTOS Configuration Let us continue Bob’s open-source FreeRTOS series. All RTOS require configuration. In this article, Bob will discuss the configuration parameters available when setting up FreeRTOS. Every real-time operating system (RTOS) I have integrated into embedded systems required configuration. The first was RSX-11, developed by David Cutler for Digital Equipment’s PDP-11 (Figure 1). (David … Read more

Introduction to FreeRTOS

Introduction to FreeRTOS

1. Overview of FreeRTOS FreeRTOS is a lightweight, open-source real-time operating system suitable for embedded systems. It provides features such as task scheduling, synchronization, and communication, characterized by its portability, configurability, and efficiency, making it widely used in resource-constrained embedded devices. 2. FreeRTOS File Structure (1) Source Folder This contains the core source code of … Read more

Arduino-ESP32: A Tailored Arduino Core for Powerful Chips like ESP32-P4, ESP32-C3, and ESP32-S3

Arduino-ESP32: A Tailored Arduino Core for Powerful Chips like ESP32-P4, ESP32-C3, and ESP32-S3

Want to explore new possibilities with hardware? Today, let’s talk about Arduino-ESP32, a hidden gem in the open-source community. I hope that after reading this, you’ll be eager to dive into the ESP32 series chips. What is Arduino-ESP32? In simple terms, Arduino-ESP32 is a tailored Arduino core for powerful chips like ESP32, ESP32-C3, ESP32-S2/S3, and … Read more

A Deep Dive into ARM Architecture: Understanding Cortex-M Exception Handling Mechanism

A Deep Dive into ARM Architecture: Understanding Cortex-M Exception Handling Mechanism

In embedded development, handling asynchronous events is an unavoidable challenge. For instance, reading sensor data from an accelerometer to calculate steps, or triggering RTOS context switches via timers, all rely on the support of exception handling mechanisms. Today, we will discuss the exception handling model of ARM Cortex-M. The Core of Exception Handling In the … Read more

Using Events in Embedded Development with MCU

Using Events in Embedded Development with MCU

It is assumed that everyone has learned about inter-task communication. If you haven’t, don’t worry; you can check out the previous content. In the context of inter-task communication, we are generally waiting for an event to occur. But what if we need to wait for multiple events? Surely, none of you here are without a … Read more

An Introduction to FreeRTOS Kernel Source Code: From Task Creation to Context Switching

An Introduction to FreeRTOS Kernel Source Code: From Task Creation to Context Switching

1. Introduction FreeRTOS has become the preferred choice for embedded real-time systems due to its small footprint, portability, and flexible customization capabilities. Before delving into the source code, let us review the core requirements of real-time operating systems (RTOS) in the embedded field: Determinism: Predictable task response delays. Scalability: Support for memory usage ranging from … Read more

What Are the Differences Between FreeRTOS and the Commercial SAFERTOS?

What Are the Differences Between FreeRTOS and the Commercial SAFERTOS?

The open-source FreeRTOS was created by Richard Barry while working at WHIS. WHIS identified all the weaknesses in the functional model and API through a complete HAZOP analysis based on the capabilities of FreeRTOS, mitigated all weak points, and redesigned SAFERTOS using the IEC 61508 SIL 3 development lifecycle. SAFERTOS and its accompanying Design Assurance … Read more

Should You Learn Linux After Studying RTOS in Graduate School? Absolutely!

Should You Learn Linux After Studying RTOS in Graduate School? Absolutely!

Student Situation:This student is a graduate student with limited time, looking to enhance their skills through our teaching to complete their project. Recently, a student consulted about the embedded STM32 learning course, wanting to improve their skills to complete their project. Based on their background, we recommended that the student start with Linux, and we … Read more