嵌入式Linux驱动程序设计

Unix like 系统中,正是有了驱动程序才使得用户可以完全透明的使用计算机系统。设备驱动隐藏了硬件设备的具体的细节和功能,对于不同的硬件设备都提供了一致的接口。比如在 Linux 系统中,为了便于用户的使用,系统把计算机系统的各种设备映射成一系列的特殊的设备文件,叫设备文件节点。用户可以任意的使用它来协助自己完成任何工作。在 Linux 系统中,所有的设备都可归为三类之列,一是字符设备,如键盘等;二是块设备,如磁盘等;第三种就是用于网络的网络设备,这类设备主要是用于网络通讯中,在其他的地方没有什么特别使用。

 

一、              设备驱动程序的三个主要组成部分

1、  自动配置和初始化子程序;

2、  I/O 提供服务的子程序;

3、  中断子程序;

 

二、              设备驱动入口点分析

此处以字符设备为例列举设备驱动程序的入口点

1、  open 入口点:设备 I/O 操作之前进行的操作,打开了设备后准备 I/O 操作;

2、  close 入口点:对设备操作完成之后对设备的关闭操作;

3、  read 入口点:完成对设备的 open 操作之后就可以以此入口点在设备上读取数据;

4、  write 入口点:完成对设备的 open 操作之后就可以以此入口点在设备上写入数据;

5、  ioctl 入口点:在设备上执行 I/O 控制操作;

6、  select 入口点:在数据写入或读取之前对设备的检测操作。

 

三、              Linux 系统下的设备驱动程序

以下借用 Linux 系统内核的代码来分析字符设备驱动程序

1 、以下是入口点的结构体定义:

#/usr/include/linux/fs.h

struct file_operations {

    struct module *owner;

    loff_t (*llseek) (struct file *, loff_t, int);

    ssize_t (*read) (struct file *, char *, size_t, loff_t *);

    ssize_t (*write) (struct file *, const char *, size_t, loff_t *);

    int (*readdir) (struct file *, void *, filldir_t);

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值