Linux 字符设备驱动模板

本文介绍了Linux内核中的字符设备驱动,包括驱动模块的加载和卸载、字符驱动的操作成员函数,以及DEMO测试。提供了驱动Demo的完整代码,并详细说明了如何在用户空间进行测试和查看驱动。
摘要由CSDN通过智能技术生成

在Linux内核里面,设备(device)主要分为字符设备,块设备,网络设备,字符设备驱动是Linux驱动基础,在看《Linux 设备驱动开发详解》这本书的过程中,把字符设备相知识记录整理如下。

字符设备驱动的组成

字符设备驱动模块加载和卸载函数

//设备结构体
struct xxx_dev_t{
   
	struct cdev cdev;
	//......
}xxx_dev;

static struct xxx_dev *xxx_dev;
const struct file_operations xxx_fops = {
   
	.owner = THIS_MODULE,
	.read = xxx_read,
	.write = xxx_write,
	//......
}
stattic int __init xxx_init(void)
{
   
	//......
	cdev_init(&xxx_dev->cdev, &xxx_fops);
	xxx_dev->cdev.owner = THIS_MODULE;
	//获取字符设备号
	alloc_chrdev_region(&xxx_dev_no, 0, DEVICE_COUNT, DEVICE_NAME);
	//注册设备
	ret = cdev_add(&xxx_dev->cdev, xxx_dev_no, 1);
    //......
}

static void __exit xxx_exit(void)
{
   	
	//注销设备
	cdev_del(&xxx_dev->cdev);
	//注销设备号
	unregister_chrdev_region(xxx_dev_no,1);
	//......
}

字符驱动操作成员函数

static int xxx_open(
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值