设备驱动简介

更新时间:
2024-01-09
下载文档

设备驱动简介

设备驱动概念

设备驱动隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。

在 SylixOS 中,设备驱动是内核空间的一部分,其运行在内核态下,驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮询、中断处理、DMA 通信,进行物理内存向虚拟内存的映射等,最终让通信设备能收发数据,让显示设备能显示文字和画面,让存储设备能记录文件和数据。

同一个芯片的多种驱动支持组合被称为板级支持包 BSP,SylixOS 提供的集成开发套件 RealEvo-IDE 提供了 BSP 工程模板,在 BSP 工程模板中,可以将驱动静态的和内核编译在一起,此外,为了减小编译出的镜像大小,SylixOS 也提供了内核模块工程模板,可以将驱动以内核模块的方式编译,在需要的时候动态的载入。

设备驱动分类

SylixOS 中设备驱动大致分为以下几类:

字符设备驱动

字符设备是能够像字节流一样被访问的设备。字符设备驱动程序通常至少要实现 open、close、read、write 等系统调用。字符设备可以通过文件系统节点进行访问,这些设备文件和普通文件之间的唯一差别在于对普通文件的访问可以前后移动访问位置,而大多数字符设备是一个只能顺序访问的数据通道,如触摸屏、鼠标等都是字符设备。

块设备驱动

块设备能够容纳文件系统,其也是通过设备节点来访问。在 SylixOS 中,进行I/O操作时块设备每次只能传输一个或多个完整的块,而每块包含 512 字节(或 2 的幂字节倍数的数据),如 SD、硬盘等都是块设备。

网络设备驱动

网络设备不同于字符设备和块设备,它是面向报文的而不是面向流的,它不支持随机访问,也没有请求缓冲区。内核和网络设备驱动程序间的通讯,完全不同于内核和字符以及块驱动程序之间的通讯,内核调用一套和数据包传输相关的函数以实现对网络设备的控制。

总线子系统

总线子系统主要包括 I2C 总线和 SPI 总线,SylixOS 中为 I2C 总线和 SPI 总线各自实现了总线管理适配器、总线传输接口,这样诸如 EEPROM 和 SPI Flash 这样的 I2C 总线设备与 SPI 总线设备就可以调用统一的系统接口,以实现其功能。

文档内容是否对您有所帮助?
有帮助
没帮助