Linux驱动开发之路(二)按照驱动框架来提交第一个驱动

本文详细介绍了Linux驱动开发的过程,从理解Linux文件概念到遵循驱动框架编写、注册和删除驱动,再到编写第一个驱动的详细步骤,包括初始化函数、makefile和测试。还探讨了驱动加载、设备号管理以及使用udev/mdev优化设备创建。最后强调了驱动编写中的注意事项和设备查看方法。

一、目的

  1. 描述如何看待驱动框架。
  2. 注册驱动
  3. 删除驱动

二、linux对于文件的概念

linux中认为一切都是文件。那么文件就有三个操作:读写和擦除。
所以我们对于文件的操作,也是统一的要求:
使用这些函数

open
write
名称 概念
.ko 驱动文件
设备号 主设备号和次设备号统称为设备号。主设备号用来表示一个特定的驱动程序。次设备号用来表示使用该驱动程序的各设备

三、驱动框架

我们使用系统的目的就是让系统帮我们做事,那么我们就要把一些东西和模块交给系统来进行管理,例如一个灯的驱动程序,我们如果还像以前那样直接使用C函数来调用,那采用系统又有什么意义。所以我们需要按照驱动框架来,主要有三步。

  1. 上层采用标准打开方式来打开对应的驱动。
  2. 驱动程序直接沟通硬件。
  3. 驱动程序注册到系统中。

四、第一个驱动编写流程

4.1、编写驱动函数:

这边,我们先写两个空白的函数来测试:

static int first_drv_open(struct inode *inode, struct file *file)
{
   
   
}
static ssize_t first_drv_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)
{
   
   
}

4.2、编写初始化函数:

注意,我们要采用官方的函数来实现注册:
就是这个函数

//注册
register_chrdev();
//删除
unregister_chrdev();

这是我们的启动函数,也就是用来初始化的:

static int first_drv_init(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值