Ubuntu – Software Center and Device Drivers

Ubuntu - Software Center and Device Drivers

Device Drivers By default, Ubuntu comes pre-installed with the necessary drivers for mouse, keyboard, audio, and video. The days when device drivers were a nightmare for Linux-based operating systems are long gone. To view device options, go to the settings option on the left control panel. In the hardware section, you will see various options … Read more

Analysis of the Applications and Advantages of C Language in System Programming

Analysis of the Applications and Advantages of C Language in System Programming

Analysis of the Applications and Advantages of C Language in System Programming The C language is a general-purpose programming language widely used in the field of system programming. Its design intention is to provide an efficient, flexible, and hardware-near programming method, allowing programmers to directly manipulate computer hardware resources. This article will detail the applications … Read more

Understanding PID: An Introduction to Motors and Drivers

Understanding PID: An Introduction to Motors and Drivers

When learning and using PID, there are many motor options available. However, the PID parameters used for different motors can vary significantly. Therefore, we need to understand motors and drivers. 1 Types of Motors 1.1 Introduction to Motors A motor is a device that can convert electrical energy into mechanical energy and vice versa. Generators … Read more

Windows PCI Device Driver Development Guide: Introduction to Driver Template Code

Windows PCI Device Driver Development Guide: Introduction to Driver Template Code

In the previous article, we introduced how to “write” a Windows PCI device driver from scratch. The term “write” is in quotes because we didn’t actually write any code; the driver code was generated using the KMDF template in Visual Studio. In this article, we will introduce the generated driver code. The first function to … Read more

Basics of Device Driver Development in C Language

Basics of Device Driver Development in C Language

Basics of Device Driver Development in C Language A device driver is a bridge between the operating system and hardware, responsible for managing and controlling hardware devices. This article will introduce how to develop simple device drivers using the C language, suitable for beginners. 1. What is a Device Driver? A device driver is a … Read more

Illustrating the Relationship Between Embedded Linux Applications, Kernel, Drivers, and Hardware

Illustrating the Relationship Between Embedded Linux Applications, Kernel, Drivers, and Hardware

Currently, Linux software engineers can be roughly divided into two levels: 01 Linux Application Software Engineer: Mainly writes application software using C library functions and Linux APIs; Those engaged in this type of development work mainly need to learn: API functions and system calls that comply with the Linux POSIX standard, Linux multitasking programming techniques: … Read more

Miscellaneous Devices in Linux Drivers

Miscellaneous Devices in Linux Drivers

1. The Three Major Types of Linux Device Drivers 1. Character Devices: The IO transfer process is done in characters without buffering, such as I2C and SPI, which are character devices. 2. Block Devices: The IO transfer process is done in blocks, related to storage, such as TF cards. 3. Network Devices: Unlike the previous … Read more

Linux Power Management (14): Power Management from the Perspective of Device Drivers

Linux Power Management (14): Power Management from the Perspective of Device Drivers

Original:Wowotech Technology http://www.wowotech.net/pm_subsystem/pm_architecture.html 1. Introduction It is well known among Linux driver engineers who have been working for a while: In the past, implementing power management functions for a device was a straightforward task. Most devices were abstracted as platform devices, and the driver only needed to provide callback functions for suspend/resume/shutdown and register them … Read more

Dynamic Debugging in the Linux Kernel: A Powerful Tool for Runtime Debugging

Dynamic Debugging in the Linux Kernel: A Powerful Tool for Runtime Debugging

Introduction Previously, we discussed Linux Kernel Debugging: The Powerful printk (Part 2) Linux Kernel Debugging: The Powerful printk (Part 3) In those articles, we introduced pr_debug and dev_dbg. Below is the definition of dev_dbg: #if defined(CONFIG_DYNAMIC_DEBUG) || \ (defined(CONFIG_DYNAMIC_DEBUG_CORE) && defined(DYNAMIC_DEBUG_MODULE)) #define dev_dbg(dev, fmt, …) \ dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__) #elif defined(DEBUG) #define dev_dbg(dev, fmt, …) … Read more

Detailed Explanation of LCD Driver in Embedded Linux Kernel

Detailed Explanation of LCD Driver in Embedded Linux Kernel

1 Application Layer Calls to LCD Driver Methods Open the corresponding device node app: open(“/dev/fb0”, …) Major device number: 29, Minor device number: 0 ————————————————————– kernel: fb_open // fbmem.c struct fb_info *info; info = get_fb_info(fbidx); if (info->fbops->fb_open) { res = info->fbops->fb_open(info,1); // Hardware-related driver if (res) module_put(info->fbops->owner); } Obtain variable information (including resolution, etc.) app: … Read more