3.文件系统关联及字符设备操作


文件系统关联 设备文件都是由标准函数处理,类似普通文件。设备文件也是通过虚拟文件系统来管理的,和普通文件都是通过完全相同的接口访问的。 inode中设备文件的成员数据 虚拟文件系统每个文件都关联到一个inode,用于管理文件的属性。源码如下:

5.插入模块及删除模块操作


基础知识 模块是一种向Linux内核添加设备驱动程序、文件系统及其他组件的有效方法,不需要编译新内核 优点 通过使用模块,内核发布者能够预先编译大量驱动程序,而不会致使内核映像的尺寸发生膨胀。 内核开发者可以将实验性的代码打包到模块中,模块可以卸载,修改代码或重新打包后可以重新装载。 添加和删除 从

4.资源分配及总线系统


资源分配 掌握用于管理资源的数据结构和函数 资源管理 数据结构分析 Linux提供通用框架,用于在内存中构建数据结构。这些结构描述了系统中可用的资源,使得内核代码能够管理和分配资源。其中关键的数据结构resource源码如下:

6.插入删除模块实战


前面已经讲了Linux模块的基本知识,现在我们来熟悉一下模块相关的基本操作。 模块的编写 #include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> // 插入内核时的函数 static int __ini

7.PCI设备驱动详解


详细分析 [[8.PCI驱动代码分析]] PCI基础 PCI总线为高性能局部总线,主要解决外部设备之间以及外部设备与主机之间高速数据传输。在数字图形、图像等处理,以及告诉实时数据采集与处理等队数据传输速率要求高的应用中,采用PCI总线进行数据传输。 PCI规范能够实现32位并行数据传输,工作频率为3

8.PCI驱动代码分析


获取配置信息 // 打印配置空间信息 void skel_get_configs(struct pci_dev* dev) { uint8_t revisin_id; uint16_t vendor_id, device_id; uint32_t class_id;

9.USB设备驱动架构分析


总线速度及主机控制器 USB系统架构 USB系统主机端提供为4个引脚的A型接口,USB外围设备通过4个引脚的B型接口和主机端连接。那4个引脚(一条电压线VBUS、一条地线GND、一条正方向传输数据的D+和一条反方向传输数据的D-线。)USB主机和USB设备收发器可以采用相同型号的芯片。 嵌入式设备的

Redis-value编码


https://imagehyj.oss-cn-hangzhou.aliyuncs.com/blog/20240826161037.png

spdlog使用


CMake cmake_minimum_required(VERSION 3.11) project(spdlog_example) if(NOT TARGET spdlog) find_package(spdlog REQUIRED) endif() add_executable(${

MYSQL POOL


今天来聊一下池化技术中的 MYSQL 连接池,首先了解一下实现的环境和库: Ubuntu 22.04 libmysqlclient-dev 我个人是比较喜欢 Ubuntu 的,不过用什么发行版不冲突,有三方库就好了。 封装 查询结果类 我们首先将查询到的结果抽象出来,应该是一个二维数据,我们可以将其