In-Depth Understanding of Step-by-Step Implementation of Character Device Drivers

In-Depth Understanding of Step-by-Step Implementation of Character Device Drivers

In Linux driver development, character device drivers are the most common and fundamental type of driver. Most peripherals, whether they are LED lights, buttons, serial ports, or GPIOs, are initially provided to user space as character devices. This article will guide you from scratch,step by step to implement a character device driver, along with practical … Read more

The Essence and Core Value of C++ Comments: Conveying Design Intent from the Perspective of the Linux Kernel

The Essence and Core Value of C++ Comments: Conveying Design Intent from the Perspective of the Linux Kernel

1. The Essence and Core Value of Comments Comments are non-executable text in source code meant for human reading, and their core value lies in enhancing code maintainability. In Linux kernel development, the principle of “comments should explain why, not how” is followed. For example, in the memory management module, developers might comment, “Using a … Read more

Embedded Development Architecture Standards: Making Code Elegant, Reliable, and Portable Like LEGO!

Embedded Development Architecture Standards: Making Code Elegant, Reliable, and Portable Like LEGO!

1. Why do 90% of embedded projects fail during the “maintenance phase”? 👇 Let’s start with a soul-searching question When requirements change, do the driver layer, business layer, and UI all need to change too? When a newcomer takes over the code, do they spend two weeks just trying to find the entry point? 💡 … Read more

CMake User Guide (Part II): Operations and Basic Usage with Multiple Source Files

CMake User Guide (Part II): Operations and Basic Usage with Multiple Source Files

When managing multiple source files in C/C++ projects, CMake has become the industry standard for build systems. This article will analyze the core methods for handling multiple source file operations and common basic usages of CMake statements, documenting how to eliminate the tedious task of manually maintaining compilation lists. 1. Project Structure When there are … Read more

Why Typedef is Rarely Used in the Linux Kernel

Why Typedef is Rarely Used in the Linux Kernel

Follow+Star Public Account Number, don’t miss out on exciting contentSource | Embedded Art Have you ever read the source code of the Linux kernel? During the process of<span>Linux</span> driver development, have you encountered such a warning? WARNING: do not add new typedefs Using<span>typedef</span> is not allowed! Although it’s just a warning, if you want to … Read more

SOLID Principles and Layered Architecture: The Soul of Embedded System Design

SOLID Principles and Layered Architecture: The Soul of Embedded System Design

Sharing Power Knowledge | Summary Notes on Embedded Learning This is the third learning note related to embedded systems from Dream Chaser Power Electronics Introduction Recently, while learning embedded code, I have gained a lot of insights. I can appreciate many of the key points that experts incorporate when writing programs. I wondered how they … Read more

Modular Design in Embedded Software Development

Modular Design in Embedded Software Development

Scan to FollowLearn Embedded Together, learn and grow together Embedded system development is becoming increasingly complex, evolving from simple microcontroller control to today’s smart devices that integrate various sensors, communication protocols, and complex algorithms. Modular programming has become the core methodology in embedded software development. Modular programming refers to dividing a software system into a … Read more

Should Global Variables Be Recommended in Embedded Software?

Should Global Variables Be Recommended in Embedded Software?

Scan to FollowLearn Embedded Together, learn and grow together When it comes to global variables, the most common discussion is about reducing their usage or the various drawbacks associated with them. Today, we will discuss a different perspective. For embedded software, the use of global variables has many advantages. This article will explore the advantages … Read more

Design Reference: Four-Legged Robot Design

Design Reference: Four-Legged Robot Design

The core of the design of the four-legged robot lies in balancing performance, reliability, cost, maintainability, and usability, making it a practical, deployable, and economically viable tool for addressing specific industrial pain points such as hazardous environment inspections, flexible logistics over large areas, and inspections of unstructured spaces.01 –Core Functionality and Performance Definition– Mobility and … Read more

Code Style in C Language: The Importance of Uniformity

Code Style in C Language: The Importance of Uniformity

Code Style in C Language: The Importance of Uniformity In programming, the readability and maintainability of code are extremely important. Especially in a relatively low-level programming language like C, a good code style not only improves team collaboration efficiency but also reduces the likelihood of errors. This article will detail the code style in C … Read more