Linux驱动中的platform
作者:李智敏,华清远见嵌入式学院讲师.
从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver .Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示;驱动用 platform_driver 进行注册. Linux platform driver 机制和传统的device driver机制(即:通过 driver_register 函数进行注册)相比,一个十分明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中用使用这些资源时,通过platform device提供的标准接口进行申请并使用. platform 是一个虚拟的地址总线,相比 PCI、USB,它主要用于描述SOC上的片上资源.platform 所描述的资源有一个共同点:在CPU 的总线上直接取址.平台设备会分到一个名称(用在驱动绑定中)以及一系列诸如地址和中断请求号(IRQ)之类的资源. platform 总线下驱动的开发步骤是: 1、 设备 需要实现的结构体是:platform_device . 1)初始化 resource 结构变量 2)初始化 platform_device 结构变量 3)向系统注册设备:platform_device_register. 以上三步,在设备驱动加载前完成,即执行platform_driver_register()之前,原因是驱动注册时需要匹配内核中所有已注册的设备名.platform_driver_register()中添加device到内核最终还是调用的device_add函数.Platform_device_add和中:为设备指派管理该设备的驱动:dev->driver = drv, 调用probe()函数初始化设备:drv->probe(dev)
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |