Linux 中的三大类驱动:字符设备驱动、块设备驱动和网络、设备驱动。
其中字符设备驱动是占用篇幅最大的一类驱动,因为字符设备最多,从最简单的点
灯到 I2C、 SPI、音频等都属于字符设备驱动的类型。块设备和网络设备驱动要比字符设备驱动
复杂,就是因为其复杂所以半导体厂商一般都给我们编写好了,大多数情况下都是直接可以使
用的。所谓的块设备驱动就是存储器设备的驱动,比如 EMMC、 NAND、 SD 卡和 U 盘等存储
设备,因为这些存储设备的特点是以存储块为基础,因此叫做块设备。网络设备驱动就更好理
解了,就是网络驱动,不管是有线的还是无线的,都属于网络设备驱动的范畴。
2.Linux 下的应用程序是如何调用驱动程序的:
在 Linux 中一切皆为文件,驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应
用程序通过对这个名为“/dev/xxx” (xxx 是具体的驱动文件名字)的文件进行相应的操作即可实
现对硬件的操作。
比如现在有个叫做/dev/led 的驱动文件,此文件是 led 灯的驱动文件。应用程
序使用 open 函数来打开文件/dev/led,使用完成以后使用 close 函数关闭/dev/led 这个文件。 open和 close 就是打开和关闭 led 驱动的函数,如果要点亮或关闭 led,那么就使用 write 函数来操作,也就是向此驱动写入数据,这个数据就是要关闭还是要打开 led 的控制参数。如果要获取
led 灯的状态