当前位置:主页 > 产品展示 >

产品展示

Products Classification

写一个小小的测试程序

  • 产品时间:2021-05-24 02:43
  • 价       格:

简要描述:一、Linux device driver 的观念 系统挪用是操纵系统内核和应用措施之间的接口,设备驱动措施是操纵系统内核和呆板硬件之间的接口。设备驱动措施为应用措施屏蔽了硬件的细节,这样...

详细介绍

 一、Linux device driver 的观念

系统挪用是操纵系统内核和应用措施之间的接口,设备驱动措施是操纵系统内核和呆板硬件之间的接口。设备驱动措施为应用措施屏蔽了硬件的细节,这样在应用措施看来,硬件设备只是一个设备文件,应用措施可以象操纵普通文件一样对硬件设备举办操纵。设备驱动措施是内核的一部门,它完成以下的成果:

1、对设备初始化和释放;

2、把数据从内核传送到硬件和从硬件读取数据;

3、读取应用措施传送给设备文件的数据和回送应用措施请求的数据;

4、检测和处理惩罚设备呈现的错误。

在linux操纵系统下有三类主要的设备文件范例,一是字符设备,二是块设备,三是网络设备。字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着产生了,块设备则否则,它操作一块系统内存作缓冲区,当用户历程对设备请求能满意用户的要求,就返回请求的数据,假如不能,就挪用请求函数来举办实际的I/O操纵。块设备是主要针对磁盘等慢速设备设计的,以免淹灭过多的CPU时间来期待。

已经提到,用户历程是通过设备文件来与实际的硬件打交道。每个设备文件都都有其文件属性(c/b),暗示是字符设备照旧块设备?别的每个文件都有两个设备号,第一个是主设备号,标识驱动措施,第二个是从设备号,标识利用同一个设备驱动措施的差异的硬件设备,好比有两个软盘,就可以用从设备号来区分他们。设备文件的的主设备号必需与设备驱动措施在挂号时申请的主设备号一致,不然用户历程将无法会见到驱动措施。

最后必需提到的是,在用户历程挪用驱动措施时,系统进入焦点态,这时不再是抢先式调治。也就是说,系统必需在你的驱动措施的子函数返回后才气举办其他的事情。假如你的驱动措施陷入死轮回,不幸的是你只有从头启动呆板了,然后就是漫长的fsck。

二、实例分解

我们来写一个最简朴的字符设备驱动措施。固然它什么也不做,可是通过它可以相识Linux的设备驱动措施的事情道理。把下面的C代码输入呆板,你就会得到一个真正的设备驱动措施。

由于用户历程是通过设备文件同硬件打交道,对设备文件的操纵方法不过乎就是一些系统挪用,如 open,read,write,close…, 留意,不是fopen, fread,可是如何把系统挪用和驱动措施关联起来呢?这需要相识一个很是要害的数据布局:

struct file_operations {

int (*seek) (struct inode * ,struct file *, off_t ,int); 

int (*read) (struct inode * ,struct file *, char ,int);

int (*write) (struct inode * ,struct file *, off_t ,int);

int (*readdir) (struct inode * ,struct file *, struct dirent * ,int); 

int (*select) (struct inode * ,struct file *, int ,select_table *);

int (*ioctl) (struct inode * ,struct file *, unsined int ,unsigned long); 

int (*mmap) (struct inode * ,struct file *, struct vm_area_struct *); 

int (*open) (struct inode * ,struct file *);

int (*release) (struct inode * ,struct file *);

int (*fsync) (struct inode * ,struct file *);

 


产品咨询

留言框

  • 产品:

  • 留言内容:

  • 您的单位:

  • 您的姓名:

  • 联系电话:

  • 常用邮箱:

  • 详细地址:


推荐产品

Copyright © 2002-2020 立博体育仪器仪表有限公司 版权所有 网站地图