《VxWorks设备驱动开发详解》笔记——第八章 块设备驱动

本文深入探讨块设备在操作系统中的关键作用,包括其与文件系统的关系,如rawFs和dosFs的特点,以及它们如何影响数据读写效率。文章还详细讲解了CBIO中间层的三层结构,以及在硬盘设备上的应用,如ATA(IDE)硬盘的组成部分及其工作原理。

1.基本上所有通用操作系统都需要块设备的配合才能使得系统本身正常运行,块设备的存在才让操作系统功能变得强大。块设备可以用于保存操作系统启动参数,提供给进程运行所需的数据以及永久保存进程生成的或从外界读取的数据,使得进程的工作方式显得有意义;

2.对于应用层,块设备以文件系统的形式存在,用户以操作文件和目录的方式访问块设备;

3.可将块设备定义为:每次只能以数据块的方式进行数据写入和读取的设备;

4.块设备最大的优势是容量大,不足是操作时间常;

5.flash设备本质上也是一类块设备,但是其操作方式与硬盘设备有些区别;

6.rawFs文件系统将整个硬盘设备当做一个单一的文件进行读写。对于多个任务同时写硬盘设备的操作,每个任务一般都需要指定其写入的偏移位置,使得各个任务写入的数据不至于相互覆盖;

7.rawFs没有dosFs文件系统中诸如超级块、文件节点位图等结构概念。

8.硬盘不能单个字节地进行数据读写,每次必须以一个扇区为单位进行数据的读写。实际底层块设备驱动直接打交道的是硬盘控制器,硬盘控制器之下是硬盘驱动器,硬盘驱动器才是真正完成数据在物理存储戒指上的读写;

9.CBIO中间层:是基于块设备读写操作时间相对较长而在内核所作的缓冲中间层。CBIO中间层内部又可以划分为3层:

  • CBIO分区管理层;
  • CBIO数据缓冲层;
作者:华清远见嵌入式学院。简单地说,驱动程序就是设置某个硬件完成其固有功能的程序,如网卡设备驱动程序就是设置网卡相关寄存器,使其能够正常收发网络数据包的程序。驱动程序直接与硬件设备交互,其大多数的工作就是操作硬件相关寄存器。首先,寄存器也是一种 RAM,在系统下电后,寄存器中的内容都会丢失,系统上电复位过程中,硬件寄存器一般都复位到一个默认值,默认状态下,硬件是不能正常工作的,如中断使能被屏蔽,工作使能位也被屏蔽,还有一些决定硬件工作情况的关键控制寄存器也需要被重新配置。而这些工作都有赖于设备驱动的完成。驱动一般都作为操作系统内核组成的一部分,即便现在很多系统支持驱动的动态加载,但是驱动代码在执行时,依然是以内核代码模式进行执行的。换句话说,驱动代码具有系统特权级,除了其自身资源对应的硬件设备资源,其还对操作系统资源具有完全的访问权。所以,一个驱动程序如果存在BUG,将直接会导致整个操作系统的崩溃。故调试驱动是一项十分关键的工作,必须对驱动进行仔细检查,并需要经受长时间的运行考验。应用层程序员往往对属于内核编程的外设驱动心存敬畏,认为驱动编程是一项非常复杂的工作。实际上,底层驱动编程往往比应用层编程具有更大的灵活性,就如没有调试不出来的硬件,也没有调试不出来的底层驱动,但是应用层 BUG 有时就是无法调试出来。底层驱动的调试过程是同时对硬件驱动进行验证的过程。底层驱动很多时候用来定位硬件设计错误或者硬件芯片本身可能的问题,故底层驱动程序员必须对所要驱动的硬件设备有一个比较充分的了解,以及对与硬件交互的其他硬件或外界环境也需要有一个比较清楚的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weekman93

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值