linux是文件型系统,在linux中,一切皆文件,所有硬件都会在对应的目录(/dev)下面用相应的文件表示。 文件系统的linux下面,都有对于文件与这些设备关联的,访问这些文件就可以访问实际硬件。 通过访问文件去操作硬件设备,一切都会简单很多,不需要再调用各种复杂的接口。 直接读文件,写文件就可以向设备发送、接收数据。 按照读写存储数据方式,我们可以把设备分为以下几种:字符设备(character device)、块设备(Block device)和网络设备(?network interface)。
字符设备(character device):指应用程序采用字符流方式访问的设备。这些设备节点通常为传真、虚拟终端和串口调制解调器、键盘之类设备提供流通信服务, 它通常只支持顺序访问。字符设备在实现时,大多不使用缓存器。系统直接从设备读取/写入每一个字符。
块设备(Block device):通常支持随机存取和寻址,并使用缓存器,支持mount文件系统。典型的块设备有硬盘、SD卡、闪存等,但此类设备一般不需要自己开发,linux对此提过了大部分的驱动。
网络设备(?network interface):是一种特殊设备,它并不存在于/dev下面,主要用于网络数据的收发。网络驱动同块驱动最大的不同在于网络驱动异步接受外界数据,而块驱动只对内核的请求作出响应。
上述设备中,字符设备驱动程序适合于大多数简单的硬件设备,算是各类驱动程序中最简单的一类,一般也是从这类驱动开始学习,然后再开始学习采用IIC、SPI等通讯接口的一些设备驱动,可以基于此类驱动调试LKT和LCS系列加密芯片。注意:7位IIC地址是0x28。
相关文章
- 07-21设备驱动中的异步通知与异步I/O
- 07-21嵌入式Linux驱动学习之路(二十一)字符设备驱动程序总结和块设备驱动程序的引入
- 07-21如何编写一个简单的Linux驱动(二)——设备操作集file_operations
- 07-21如何编写一个简单的Linux驱动(二)——完善设备驱动
- 07-21【工业串口和网络软件通讯平台(SuperIO)教程】八.SuperIO通讯机制与设备驱动对接的说明
- 07-21驱动篇:Linux 的 I2C设备驱动(三)(摘录)
- 07-21linux设备和驱动加载的先后顺序
- 07-21Linux设备驱动开发详解-Note(11)--- Linux 文件系统与设备文件系统(3)
- 07-21《linux设备驱动开发详解》笔记——12linux设备驱动的软件架构思想
- 07-21《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)--宋宝华