平台设备驱动
来源:互联网 发布:网络get是什么意思 编辑:程序博客网 时间:2024/06/13 13:00
来自精通Linux设备驱动程序开发:平台设备驱动中的平台可看做一种伪总线,通常用于将集成进片上系统的 轻量级设备和Linux设备模型连接在一起。平台由平台设备和平台设备驱动程序组成。
(来自:http://blog.tianya.cn/blogger/post_show.asp?BlogID=862226&PostID=21247170)
设备驱动中,平台设备作为一个虚拟的设备和总线可以大大简化设计难度。
内核在初始化过程中,首先初始化虚拟总线,其次将设备添加到虚拟总线上,最后注册设备驱动,它会扫描虚拟总线寻找与之匹配的设备(如果设备名相符,就进行探测,探测成功后进行绑定)
probe函数一般完成硬件设备使能, struct resource的获取以及虚拟地址的动态映射和具体类型设备的注册(因为平台设备只是一种虚拟的设备类型);remove函数与之相反。
只要和内核本身运行依赖性不大的外围设备 ( 换句话说只要不在内核运行所需的一个最小系统之内的设备 ), 相对独立的 , 拥有各自独自的资源 (addresses and IRQs) ,都可以用 platform_driver 实现。
在开发过程中内核版本的不同对于平台设备驱动注册方式也有不同的表示方法。
- 如2.6.14.1中的注册和注销 如2.6.26.1中的注册和注销
- staticint __init s3c2410_rtc_init(void) staticint __init s3c2410_rtc_init(void)
- { {
- return driver_register(&s3c2410_rtcdrv); return platform_driver_register(&s3c2410_rtcdrv);
- } }
- staticvoid __exit s3c2410_rtc_exit(void) staticvoid __exit s3c2410_rtc_exit(void)
- { {
- driver_unregister(&s3c2410_rtcdrv); platform_driver_unregister(&s3c2410_rtcdrv);
- } }
- 如2.6.14.1中 如2.6.26.1中
- staticstruct device_driver s3c2410_rtcdrv={ staticstruct platform_driver s3c2410_rtcdrv = {
- .name ="s3c2410-rtc", .probe = s3c2410_rtc_probe,
- .owner = THIS_MODULE, .remove = s3c2410_rtc_remove,
- .bus = &platform_bus_type, .suspend = s3c2410_rtc_suspend,
- .probe = s3c2410_rtc_probe, .resume = s3c2410_rtc_resume,
- .remove = s3c2410_rtc_remove, .driver = {
- .suspend = s3c2410_rtc_suspend, .name ="s3c2410-rtc",
- .resume = s3c2410_rtc_resume, .owner = THIS_MODULE,}
- }; };
来自:http://yuxu9710108.blog.163.com/blog/static/23751534201111805633259/平台设备,平台驱动间及资源间的关系
平台设备:platform_device{}用于定义好该SOC芯片上所用的各个设备所需要占用的资源
然后platform_add_devices()初始化好之,注册其需要占用的资源。
- 平台设备驱动总结
- Linux平台设备驱动
- 平台设备驱动分析
- linux平台设备驱动
- Linux平台设备驱动
- 平台设备驱动
- Mini2440LED平台设备驱动
- 平台设备驱动总结
- linux平台设备驱动
- 平台设备驱动
- 按键平台设备驱动
- 平台设备驱动模型
- Linux平台设备驱动
- 平台设备驱动
- Linux平台设备驱动
- platform平台设备驱动
- Linux平台设备驱动
- Linux平台设备驱动
- UIWebView之获取所点位置图片URL
- linux configure make make install
- 日期 控件 ios 4.3 显示不全
- vs2010打包windows服务安装包版本升级的解决方案
- object-c开发中混合使用或不使用ARC
- 平台设备驱动
- json_ajax提交json格式数据到servlet并解析
- emctl start 失败
- 逼供应商给当当涨价 京东或充当电商价格战看客
- Mac OS开发者常用软件集锦(一)
- csapp2e家庭作业2.58
- Windows和Unix下面的换行符问题
- monkey 实例
- Android---01---打电话和发短信