1. 简介
-  驱动模型中的总线可以是真是存在的物理总线(USB总线,I2C总线,PCI总线),也可以是为了驱动模型架构设计出的虚拟总线(Platform总线)。为此linux设备驱动模型都将围绕"总线–设备–驱动"来展开 
-  设备驱动模型有三个重要组件,分别是总线( bus type )、设备( platform_device ) 和驱动 ( platform_driver )。三者关系如图所示: 

-  platform_device现已使用dts来描述设备硬件的信息。硬件resouce资源 
-  platform_driver是设备的驱动程序代码 
-  platform_device链表和platform_driver链表通过compatible属性相互匹配,匹配成功之后执行platform_driver的probe回调函数。 
-  在驱动的init函数或者probe函数中注册file_operations结构体,并定义结构体的open,read,write…函数。file_operations结构体是驱动的核心,应用层与驱动层通过file_operations结构体的open,read,write…来交互传递信息。 
-  Init:负责驱动的一些初始化工作 
 register_chrdev:注册file_operations结构体
 class_create device_create
-  Exit: 负责驱动的一些释放销毁卸载工作,类似C++的析构函数 
 Class_destroy device_destroy free unregister_chrdev
-  驱动程序的基石:中断,休眠唤醒,poll机制,异步通知