设为首页 加入收藏

TOP

Linux设备模型之platform_device和platform_driver
2014-11-24 08:22:38 来源: 作者: 【 】 浏览:1
Tags:Linux 设备 模型 platform_device platform_driver

首先来看这两个结构体的定义,都在/include/linux/platform_device.h中被定义:





可见上文提到的device结构体被封装在platform_device中,而device_driver结构体被封装在platform_driver中。


其中,resource结构体在/include/linux/ioport.h中定义,该结构体指明了设备的地址范围,名称,设备类型(flags字段:存储,IO,中断等,在/include/linux/ioport.h中定义),已经指向父兄子节点的指针(不常用)。



下面以at91sam9260中的I2C总线驱动为例对platform设备注册过程进行分析。


在/arch/arm/mach-at91rm9200/at91sam9260_devices.c中定义如下:




twi_resource中定义了两个资源:一个是作为存储的资源(IORESOURCE_MEM),定义了I2C的地址,这里注意用的是物理地址;另一个是I2C中断,使用的是at91sam9260的peripheral identifier designator。at91sam9260_twi_device即描述了TWI这个具体设备的资源,这里没有对其中的device结构进行初始化。at91_i2c_driver则是具体的驱动封装,指向了具体的操作函数,并对platform_driver结构体中的name和owner域进行了赋值,注意name的值要要一致。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇学习笔记之Linux内核同步方法 下一篇Linux设备模型分析之基本数据结构

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)