学习笔记
驱动程序有很多,LED KEY CAMERA 的驱动程序
接口都是标准的:open read write
open read write 会通过swi指令来触发异常。
内核的swi异常处理函数中,根据文件信息找到相应(比如led )的驱动程序
文件和驱动程序怎么建立联系?(open - led_open)
先不讲。
图2_1
Linux的驱动程序可以使用MCU的驱动程序的经验
你的应用程序必须使用open read write
驱动必须提供类似led_open led_read led_write
这个就是所谓框架。
Linux的驱动程序 = 框架 + 硬件操作
这里面的硬件操作和MCU一样
SWI: softeware interrupt 软件中断
总结:
linux中应用程序和驱动程序严格分开
open read write 不是你写的,一般是库函数glibc。
实质是汇编指令产生异常。
2_2 图
sys_open 找到相应的驱动程序 然后调用 drv_open
sys_write、sys_read 直接调用drv_write/drv_write (不需要在找驱动程序了)