Linux驱动之设备模型(9)-platform
来源:互联网 发布:水溶性颜料淘宝 编辑:程序博客网 时间:2024/05/20 23:56
Linux驱动之设备模型(9)-platform
(2013-02-21 11:25:04)linux
设备模型
分类: 设备模型原文地址: http://blog.csdn.net/hsly_support/article/details/7366610
10.Platform
10.1
l
10.2
l
l
10.3
l
struct platform_device {
};
Platform_device通常在BSP的板文件中实现,在板文件中,将platform_device归纳为一个数组,最终调用platform_add_device()函数统一注册。
struct resource {
};
Platform_device的资源由resource来描述,通常只要关心start、end、flags,分别表示开始值,结束值和类型。Start和end的含义会随着flags而变更,当flags为IORESOURCE_MEM时,start和end分别表示该platform_device占据内存的开始地址和结束地址;当flags为IORESOURCE_IRQ时,start和end分别表示该platform_device使用的中断号的开始值和结束值。
对resource的定义通常也在BSP的板文件中进行,而我们在设备驱动中可以用platform_get_resource()来获取resource。
10.4平台驱动
l
struct
};
10.5
l
struct
};
int __init
{
}
l
static int
{
}
10.6
l
int
void
l
int
void
l
struct
type:资源类型
num:同类型资源的第num份资源
10.7
现在来看一个实际中典型的platform设备驱动实例-DM9000。分两步来分析:
l
文件位置:driver/net/dm9000
static
.driver
},
.probe
.remove
};
static
dm9000_init(void)
{
printk(KERN_INFO "%s Ethernet Driver,V%s\n", CARDNAME, DRV_VERSION);
return
}
static
dm9000_cleanup(void)
{
platform_driver_unregister(&dm9000_driver);
}
l
OK,我们来重点看下platform设备的代码,这是驱动工程师的工作,platform设备的代码一般都应该放在BSP的板文件中,分析一下mini2440的dm9000的设备代码。
文件位置:mach-s3c2440/mach-mini2440.c
static
};
Dm9000的资源信息
static
};
dm9000_plat_data可以包含MAC地址、总线宽度、板上有无E2PROM等信息。
static
};
static
……
……
};
static void__init mini2440_init(void)
{
platform_add_devices(mini2440_devices,ARRAY_SIZE(mini2440_devices));
……
}
把platform_add_devices对platform_device_register进行了封装,将一组platform_device进行注册。
到此设备模型告一段落,以后会不断更新,如有错误,不吝赐教。Email:cjok.liao@gmail.com Blog:blog.csdn.net/cjok376240497
通过git可以下载到实例源码:git clone
- Linux驱动之设备模型(9)-platform
- Linux驱动之设备模型(9)-platform
- Linux驱动之设备模型(9)-platform
- Linux驱动之设备模型(9)-platform
- Linux驱动之设备模型(9)-platform
- Linux驱动之设备模型(9)-platform
- 【linux设备模型】之platform设备驱动
- Linux设备驱动模型之platform总线
- Linux设备驱动模型之platform总线
- Linux驱动设备模型之Platform
- Linux设备驱动模型之platform总线
- linux设备总线驱动模型 之 platform总线驱动
- linux设备总线驱动模型 之 platform总线驱动
- linux设备总线驱动模型 之 platform总线驱动
- linux驱动中platform设备驱动模型
- LINUX设备驱动模型之PLATFORM(平台)总线详解
- Linux设备驱动模型之platform(平台)总线详解
- Linux之platform设备驱动
- window下RabbitMQ使用
- 选择画面PARAMETERS和SELECT-OPTIONS的参数选项
- 白盒测试
- iOS音频的后台播放总结(后台网络请求歌曲,Remote控制,锁屏封面,各种打断)
- ssl例4
- Linux驱动之设备模型(9)-platform
- 第12周项目1 一个定义完整的类
- (转载)Unity3D研究院之获取摄像机的视口区域
- Failed to obtain address information for hostname mynode1: Name or service not known
- 如何防止SQLserver服务器被黑?
- memset函数
- 使用log4jdbc记录SQL信息
- LOJ 1422 Halloween Costumes【区间DP】
- swift网络数据请求方法