platform 总线、设备与驱动

platform 总线、设备与驱动

ID:1249715

大小:61.00 KB

页数:6页

时间:2017-11-09

platform 总线、设备与驱动_第1页
platform 总线、设备与驱动_第2页
platform 总线、设备与驱动_第3页
platform 总线、设备与驱动_第4页
platform 总线、设备与驱动_第5页
资源描述:

《platform 总线、设备与驱动》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、platform总线、设备与驱动 2013-09-0417:38:36分类: LINUXLinux2.6的设备驱动模型中,关心总线、设备和驱动3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反,在系统每次注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。Linux发明了一种虚拟的总线,称为platform总线,相应的设备称为platform_device,而驱动称为platform_driver。platform_device结构体:点击(此处)折叠或打开1.structplat

2、form_device {2.    const char    * name;3.    u32        id;4.    structdevice    dev;5.    u32        num_resources;6.    structresource    * resource;7.};platform_driver结构体:点击(此处)折叠或打开1.structplatform_driver {2.    int (*probe)(structplatform_device *);3.    int 

3、(*remove)(structplatform_device *);4.    void (*shutdown)(structplatform_device *);5.    int (*suspend)(structplatform_device *, pm_message_tstate);6.    int (*suspend_late)(structplatform_device *, pm_message_tstate);7.    int (*resume_early)(structplatform_device

4、 *);8.    int (*resume)(structplatform_device *);9.    structdevice_driverdriver;10.};系统中为platform总线定义了一个bus_type的实例platform_bus_type:点击(此处)折叠或打开1.structbus_typeplatform_bus_type = {2.    .name        = "platform",3.    .dev_attrs    = platform_dev_attrs,4.    .mat

5、ch        = platform_match,5.    .uevent        = platform_uevent,6.    .suspend    = platform_suspend,7.    .suspend_late    = platform_suspend_late,8.    .resume_early    = platform_resume_early,9.    .resume        = platform_resume,10.};下面就以2.6.22.6内核和DM9000为例,

6、介绍下platform总线、设备与驱动在代码中的实现,DM9000驱动部分,依照《嵌入式Linux应用开发完全手册》进行配置,配置如下:archarmplat-s3c24xxcommon-smdk.c文件中添加,对应的是platform_device这个结构体:点击(此处)折叠或打开1.  #include 2.  3.  staticstructresources3c_dm9k_resource[] = {4.      [0] = {5.          .start = S3C2

7、410_CS4,        //ADDR2 = 0 ,发送地址时使用这个地址6.          .end = S3C2410_CS4 + 3,7.          .flags = IORESOURCE_MEM,8.      },9.      [1] = {10.          .start = S3C2410_CS4 + 4, //ADDR2 = 1 ,发送数据时使用这个地址11.          .end = S3C2410_CS4 + 4 + 3,12.          .flags = IORE

8、SOURCE_MEM,13.      },14.      [2] = {15.          .start = IRQ_EINT7, //IRQ_DM900016.          .end = IRQ_EINT7, //IRQ_DM900017.          .flags

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。