How to Design a Logging System for Embedded Software

How to Design a Logging System for Embedded Software

Scan to FollowLearn Embedded Together, learn and grow together In embedded system development, a logging system is a crucial debugging and diagnostic tool. A well-designed logging system can help developers quickly locate issues, analyze system behavior, and monitor operational status. This article will detail how to develop a fully functional embedded software logging system. Requirements … Read more

Which Operating System Should You Learn First for Embedded Development?

Which Operating System Should You Learn First for Embedded Development?

Many beginners focus on Linux and VxWorks, thinking that “the more complex the system, the more powerful it is,” which is completely the opposite. Embedded devices are different from our computers; some devices have only a few KB of memory (like smart door locks), while others need to run dozens of tasks simultaneously (like automotive … Read more

Bare-Metal Programming vs RTOS Programming

Bare-Metal Programming vs RTOS Programming

In embedded development, bare-metal and RTOS programming are two core implementation methods. This article focuses on the STM32F4xx series MCUs, first explaining the concepts and applicable scenarios of both, and then comparing the code implementation differences between bare-metal and FreeRTOS through three examples: multi-LED blinking, sensor data processing, and button-controlled motor. Finally, it provides selection … Read more

FreeRTOS Queue Communication Mechanism and Kernel Implementation

FreeRTOS Queue Communication Mechanism and Kernel Implementation

FreeRTOS provides various communication mechanisms for inter-task communication, including queues, semaphores, mutexes, event groups, and task notifications. Below is a detailed introduction to queues.Queues Queues support asynchronous data transfer between tasks and between tasks and ISRs. They can transfer any type of data and support multiple tasks sending data to the same queue, as well … Read more

Mastering FreeRTOS from Scratch (2): Definition of List Node

Mastering FreeRTOS from Scratch (2): Definition of List Node

In the previous article, we completed the porting of FreeRTOS. In FreeRTOS, all functionalities are divided into tasks, which need to be mounted on a linked list. In this chapter, we will master the various types of nodes in a linked list. Before creating tasks, we need to understand the operating mechanism of FreeRTOS. FreeRTOS … Read more

Task Scheduling and Kernel Implementation of FreeRTOS

Task Scheduling and Kernel Implementation of FreeRTOS

This article introduces the tasks and scheduling kernel implementation of FreeRTOS.1. Concept of Tasks In FreeRTOS, a task is the smallest unit of system scheduling and execution. Each task has its own stack space, program counter (PC), registers, and state. Task Stack Spaceis a contiguous memory area that stores local variables, function call information, and … Read more

Mastering FreeRTOS from Scratch (3): Inserting and Deleting Nodes in Linked Lists

Mastering FreeRTOS from Scratch (3): Inserting and Deleting Nodes in Linked Lists

The previous article introduced the basic concepts of FreeRTOS linked lists, and this article will explain how to insert and delete nodes. Inserting Nodes To insert a node into a linked list, you first need to break the connection between the two nodes at the insertion point, and then connect the new node to these … Read more

What Certifications Does the FreeRTOS Operating System Have?

What Certifications Does the FreeRTOS Operating System Have?

Some industries have certification requirements for both hardware and software. Recently, some users have been asking:What certifications has the FreeRTOS operating system obtained?There are about six or seven relatively popular and general-purpose RTOS on the market, such as:FreeRTOS, µCOS,RT-Thread, ThreadX, Zephyr, NuttX, and other real-time operating systems.Among these popular RTOS, FreeRTOS has relatively few certifications, … Read more

The Essence of Task Switching in FreeRTOS

The Essence of Task Switching in FreeRTOS

“ In embedded development, multi-task concurrency relies on task switching. This article focuses on FreeRTOS, starting from the concept of task switching, breaking down its “trigger → request → execute” process, analyzing core function source code and functionality, helping developers understand the logic of hardware-software co-design, and mastering practical methods for optimizing task scheduling and … Read more

Combining Embedded and PC Programming Concepts

Combining Embedded and PC Programming Concepts

The first step is to look at embedded issues from the perspective of PC programming; The second step is to learn to use embedded programming concepts; The third step is to combine PC and embedded thinking and apply it to real projects. Many friends transition from PC programming to embedded programming. In China, very few … Read more