What Do You Need to Learn to Become an Embedded Driver Engineer?

What Do You Need to Learn to Become an Embedded Driver Engineer?

Many students who are new to embedded systems feel intimidated when they hear the term “driver engineer”: “Do I need to understand low-level assembly? Do I need to solder circuit boards? It seems 10 times harder than writing applications!” In fact, being a driver engineer is not as “unreachable” as it seems; it is essentially … Read more

Challenge Yourself: 21 Days to Master Linux Kernel Driver Development

Challenge Yourself: 21 Days to Master Linux Kernel Driver Development

Table of Contents 1. About the Author 1.1 Author’s Contact Information 1.2 Support 2. Required Knowledge and Tools 2.1 Knowledge Points to Master 2.2 Knowledge Points to Understand 3. What You Can Learn from This Series of Blogs 3.1 Features of This Blog Series 3.2 21-Day Learning Goals 3.3 21-Day Learning Content 3.4 Learning Schedule … Read more

VxBus Driver Development: A Complete Guide for VxWorks Developers

VxBus Driver Development: A Complete Guide for VxWorks Developers

Introduction Device driver development is at the core of embedded systems. In the industry-leading real-time operating system (RTOS) VxWorks, hardware drivers are implemented using the VxBus framework. This guide will provide a comprehensive overview of VxBus driver development, covering all aspects from architecture to practical implementation. Whether you are a newcomer to VxWorks 7 or … Read more

What Exactly is Embedded Technology? Exploring Its Various Subfields

What Exactly is Embedded Technology? Exploring Its Various Subfields

When it comes to “embedded systems”, many people might feel that it is far removed from daily life, often associating it with machines filled with buttons in factories or circuit boards cluttered with wires in laboratories. However, embedded technology is actually hidden in many of the devices we interact with every day. For instance, we … Read more

Embedded Linux Driver Development: Lighting an LED

Embedded Linux Driver Development: Lighting an LED

Today, we will light up an LED using driver development. Let’s see what the differences are between the two methods. 1. First, let’s look at the schematic First, we check the schematic to see which IO port the LED on our board is connected to. Now, from the schematic, we know that the LED is … Read more

Kernel C++ Member Function and C Interface Adaptation Technology from an Assembly Language Perspective

Kernel C++ Member Function and C Interface Adaptation Technology from an Assembly Language Perspective

Fundamental Differences Between Member Functions and C Functions From an assembly perspective, the essential difference between member functions and ordinary C functions lies in the implicit <span>this</span> pointer passing: ; Ordinary C function call push param2 ; Parameter 2 push param1 ; Parameter 1 call CFunction ; Direct call add rsp, 10h ; Clean up … Read more

Kernel C/C++ Hybrid Programming Techniques from an Assembly Language Perspective

Kernel C/C++ Hybrid Programming Techniques from an Assembly Language Perspective

Assembly Level Analysis of Header File Declaration Issues When C++ references a C header file without adding <span>extern "C"</span>, it leads to name mangling issues: ; C-style function without processing call ?ExAllocatePoolWithTag@@YAPEAXW4_POOL_TYPE@@KPEAD@Z ; C++ mangled name ; Correct usage with extern "C" call ExAllocatePoolWithTag ; Original C name The correct approach when including <span>ntifs.h</span> is: … Read more

Windows PCI Device Driver Development Guide: How to Use DMA in User Mode

Windows PCI Device Driver Development Guide: How to Use DMA in User Mode

In this article (Implementing a PCIe Device in Qemu: Adding DMA Functionality), we added a vector addition feature to the PCIe device simulated with Qemu. This PCIe device uses DMA read operations to transfer the contents of two operand vectors provided by the driver into an internal buffer of the PCIe device, computes the sum … Read more

Guide to Windows PCI Device Driver Development: Interrupt Handling

Guide to Windows PCI Device Driver Development: Interrupt Handling

In this article, we add a periodic Timer to the PCIe device previously simulated in Qemu. Once this Timer is enabled, it will trigger an MSI interrupt to the Qemu virtual machine every second. To verify that this interrupt function works correctly, we need to add interrupt handling capabilities to the driver for this PCIe … Read more

How a Veteran Embedded Developer Learns and Uses RT-Thread Quickly

How a Veteran Embedded Developer Learns and Uses RT-Thread Quickly

Warm Reminder This article is approximately 5000 words long, and it will take about 10 minutes to read, while skimming through will take about 5 minutes. If you like this article, please share it with your friends. For more information, please follow me. [Experience Summary] How a Veteran Embedded Developer with Nearly 10 Years of … Read more