泰山派5--注册字符类设备

老小孩
原创
发布时间: 2025-06-14 15:32:25 | 阅读数 0收藏数 0评论数 0
封面
在Linux中,每个硬件设备,都对应系统中一个设备节点文件。编写驱动中,在申请好设备号后,还需生成一个对应的设备节点。

准备工作:

材料:

  1. 一台装有Linux虚拟机的PC
  2. 一个泰山派开发板
  3. 一个串口烧录器CH341
1

cdev结构体

Linux中,使用cdev结构体描述一个字符设备。cdev结构体定义inclde/linux/cdev.h文件中。代码如下:

struct cdev {

struct kobject kobj;

struct module *owner; //所属模块

const struct file_operations*ops; //文件操作结构体 编写驱动主要操作的部分

struct list head list;

dev t dev; //设备号

unsigned int count;

}

2

cdev_init函数

cdev_init函数用于初始化cdev结构体成员,建立cdev和fie_operations之间的联系。

3

cdev_add函数

cdev_add函数用于向系统添加一个cdev结构体,也就是添加一个字符设备。

4

cdev_del函数

最后在驱动卸载函数中,用cdev_del函数把这个cdev结构体删除掉。

5

编写驱动.c文件

还是以前篇的基础上进行编写,添加头文件/linux/cdev.h。

先定义一个cdev结构体和一个file_operations 结构体,

在驱动加载函数中添加cdev_init函数和cdev_add函数。

在驱动卸载函数中添加cdev_del函数。

Makefile 文件和上次一样没变。

最后编译。

C
dev_t.c
1.92KB
MA...
Makefile
184B
6

在开发板实验

用insmod 命令加载.ko文件 用cat命令查看设备节点。

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载