驱动简介

原创kylin_zeng:http://blog.csdn.net/kylin_fire_zeng  本文参考国嵌视频教程,在此感谢国嵌教育。

一、
早期驱动:模式一

缺点:驱动没有统一复用起来,浪费资源。

早期驱动:模式二

缺点:驱动程序和应用程序接口要统一,若驱动接口一改应用层也得改

 

二、驱动分类:
1)字符设备驱动(重点);
      字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备,这样的驱动通常实现open, close, read和write 系统调用。
    特点不能随机访问,比如串口,不能跳跃的接收
    c
2)块设备驱动
      在大部分的Unix 系统, 块设备不能按字节处理数据,只能一次传送一个或多个长度是512字节( 或一个更大的2 次幂的数)的整块数据。
而Linux则允许块设备传送任意数目的字节。因此, 块和字符设备的区别仅仅是驱动的与内核的接口不同
      特定:可以随机访问,比如读写硬盘。可以不从头开始。
       b
2)网络接口驱动(重点)
   任何网络事务都通过一个接口来进行, 一个接口通常是一个硬件设备(eth0), 但是它也可以是一个纯粹的软件设备, 比如回环接口(lo)。一个网络接口负责发送和接收数据报文
   
三、编译进内核:
  要修改Kconfig和Makefile  
  Kconfig 中:
  config HELLO_DRIVER  //config固定,HELLO_DRIVER 在.config文件中有CONFIG_HELLO_DRIVER=y
     bool "hello"   // bool 表示可以选择* 或 空 没有M, hello可以在menuconfig中看到hello名称
     
四、应用层使用驱动程序:
图:


字符设备文件:可以用open,close,read,write,等访问字符设备文件
块设备文件:同字符设备文件,只是它还可以通过文件系统访问
网络接口:不同于字符设备和块设备,不能用read,write等,只用用socket访问等。

Linux用户程序通过设备文件(又名:设备节点)来使用驱动程序操作字符设备和块设备
设备(字符、块)文件在何处 /dev里面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值