平台模型分为设备层和驱动层
设备层比较简单,作用只是声明设备资源而已,表示存在这个设备,关键点是一下3个:
resource 结构体,生命设备地址、类型等等,name成员很重要,和设备层的platform_driver中的name匹配
platform_device_register 设备注册函数
platform_device_unregister 设备注销函数
驱动层:
驱动层负责设备的运行操作,关键是
platform_driver 结构体,成员指向probe、remove等函数,也有name成员,和设备层的resource中的name匹配
不管先注册驱动层,还是先注册设备层,结果都是先调用驱动层的probe函数
驱动层和标准字符设备驱动的差别:
原本的init函数只需执行platform_driver_register驱动注册函数,
原本的exit函数只需执行platform_driver_unregister驱动注销函数,
probe函数中添加platform_get_resource函数,用于从设备层获取设备信息(寄存器地址、类型、中断等)
注册设备的步骤放到probe函数中执行,删除设备的步骤放到remove函数中执行
阅读(1446) | 评论(0) | 转发(0) |