|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" d) Z8 W2 l+ ^0 r {
linux是文件型系统,在linux中,一切皆文件,所有硬件都会在对应的目录(/dev)下面用相应的文件表示。 文件系统的linux下面,都有对于文件与这些设备关联的,访问这些文件就可以访问实际硬件。 通过访问文件去操作硬件设备,一切都会简单很多,不需要再调用各种复杂的接口。 直接读文件,写文件就可以向设备发送、接收数据。 按照读写存储数据方式,我们可以把设备分为以下几种:字符设备(character device)、块设备(Block device)和网络设备( network inteRFace)。
1 V) @; s/ y) M0 r3 h- h- @
0 I) d6 Y) z/ `- x0 q- |, P字符设备(character device):指应用程序采用字符流方式访问的设备。这些设备节点通常为传真、虚拟终端和串口调制解调器、键盘之类设备提供流通信服务, 它通常只支持顺序访问。字符设备在实现时,大多不使用缓存器。系统直接从设备读取/写入每一个字符。
" R l; Q3 u* _& ~, S. Q T% X! i2 N1 U9 P
块设备(Block device):通常支持随机存取和寻址,并使用缓存器,支持mount文件系统。典型的块设备有硬盘、SD卡、闪存等,但此类设备一般不需要自己开发,linux对此提过了大部分的驱动。
w9 D5 C9 a: r, I) L7 h2 s, ]' J; K5 h2 ~2 R+ N3 l4 |$ }9 z% S
网络设备( network interface):是一种特殊设备,它并不存在于/dev下面,主要用于网络数据的收发。网络驱动同块驱动最大的不同在于网络驱动异步接受外界数据,而块驱动只对内核的请求作出响应。/ u/ x/ ~9 E& J' K0 J
& x2 i: O L3 |
上述设备中,字符设备驱动程序适合于大多数简单的硬件设备,算是各类驱动程序中最简单的一类,一般也是从这类驱动开始学习,然后再开始学习采用IIC、SPI等通讯接口的一些设备驱动。可以基于此类驱动调试LKT和LCS系列加密芯片。注意7位IIC地址是0x28。 |
|