搜索
bottom↓
回复: 26

迅为电子Linux驱动教程——总线_设备_驱动注册流程详解

  [复制链接]

出0入0汤圆

发表于 2015-8-12 13:40:24 | 显示全部楼层 |阅读模式


视频驱动注册:http://pan.baidu.com/s/1i34HcDB
视频设备注册:http://pan.baidu.com/s/1kTlGkcR

总线_设备_驱动注册流程详解
• 注册流程图


• 设备一般都需要先注册,才能注册驱动
– 现在越来越多的热拔插设备,反过来了。先注册驱动,设备来了再注册
设备
• 本节使用的命令
– 查看总线的命令#ls /sys/bus/
– 查看设备号的命令#cat /proc/devices
• 设备都有主设备号和次设备号,否则255个设备号不够用
– 查看杂项设备号的命令#cat /proc/misc



设备注册
关于注册设备的一点说明
• 早先的Linux会使用单独的文件注册设备,现在大多是使用引入的虚拟
平台,使用虚拟平台来注册设备会容易很多
• 如果大家在网上看到大段的注册设备的代码,可简单了解一下,知道
有这么个东西就成,不用去深究。不要去学习“屠龙技”,现在基本都
是直接在平台文件中注册设备

注册设备
注册设备使用结构体platform_device,该结构体在头文件“vim
include/linux/platform_device.h”中。头文件中也有注册设备和卸载设
备的函数,了解即可。



• 操作过程
– 注册设备。将设备结构体放到平台文件中,会自动注册设备,不用去调
用注册设备的函数。
– 在Kconfig文件中添加编译HELLO设备的宏定义(前面教程中已经添加)
– 配置menuconfig中的HELLO宏定义,生成新的.config文件
– 生成新的zImage
• 注册完之后在虚拟平台总线下可以查到注册的设备
– ls /sys/devices/platform/



驱动注册
• 驱动注册
– 很重要,牢牢掌握,以后写任何Linux驱动都会用到
• 实验
– 在mini_linux_module的基础上添加驱动注册部分

驱动注册——头文件
• 驱动注册使用结构体platform_driver,该结构体在头文件“vim
include/linux/platform_device.h”中
• 驱动注册platform_driver_register,驱动卸载函数
platform_driver_unregister也在这个头文件中
– 这两个函数的参数都只有结构体platform_driver

驱动注册——注册结构体



驱动注册——注册结构体
• 驱动常见的几种状态,初始化,移除,休眠,复位
– 就像PC一样,有的驱动休眠之后无法使用,有的可以使用;有的系统唤
醒之后,驱动需要重新启动才能正常工作,也有直接就可以使用等等
• probe函数
– platform_match函数匹配之后,驱动调用的初始化函数
• remove函数
– 移除驱动函数
• suspend函数
– 悬挂(休眠)驱动函数
• resume函数
– 休眠后恢复驱动
• device_driver数据结构的两个参数
– name和注册的设备name要一致
– owner一般赋值THIS_MODULE

实验
• 在mini_linux_module的基础上添加驱动注册部分
• 编译,在开发板上加载和卸载驱动

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2015-8-12 13:47:38 | 显示全部楼层
很不错,支持

出0入0汤圆

发表于 2015-8-12 16:03:12 | 显示全部楼层
很不错!!

出0入0汤圆

发表于 2015-8-12 16:05:45 | 显示全部楼层
支持一下...

出0入0汤圆

发表于 2015-8-12 16:10:40 | 显示全部楼层
正在看device tree

出0入0汤圆

发表于 2015-8-13 12:38:35 | 显示全部楼层
好东西啊,以后会用的到,mark

出0入0汤圆

发表于 2015-8-13 13:13:21 | 显示全部楼层
支持

出0入0汤圆

 楼主| 发表于 2015-8-17 14:13:15 | 显示全部楼层

出0入0汤圆

发表于 2015-8-17 21:12:43 | 显示全部楼层
http://pan.baidu.com/s/1i34HcDBhttp://pan.baidu.com/s/1kTlGkcR 两个网址的视频都是 视频07_驱动注册.avi

出0入0汤圆

发表于 2015-8-17 22:55:39 | 显示全部楼层
好资料,收藏

出0入0汤圆

 楼主| 发表于 2015-8-18 10:53:29 | 显示全部楼层
wangcjishu 发表于 2015-8-17 21:12
http://pan.baidu.com/s/1i34HcDB和http://pan.baidu.com/s/1kTlGkcR 两个网址的视频都是 视频07_驱动注册. ...

设备注册:http://pan.baidu.com/s/1pJHw7EV

出0入0汤圆

发表于 2015-8-18 21:02:09 | 显示全部楼层
buguai 发表于 2015-8-18 10:53
设备注册:http://pan.baidu.com/s/1pJHw7EV

谢谢楼主!!

出0入0汤圆

发表于 2015-8-18 22:08:59 来自手机 | 显示全部楼层
收藏了!

出0入0汤圆

发表于 2015-8-20 10:26:46 来自手机 | 显示全部楼层
对于使用Linux,需要了解,很有趣。

出0入0汤圆

 楼主| 发表于 2015-8-24 15:13:57 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2015-8-24 15:14:31 | 显示全部楼层

不客气               

出0入0汤圆

发表于 2015-8-29 09:42:02 | 显示全部楼层
mark, 有时间深入看下

出0入0汤圆

 楼主| 发表于 2015-9-6 15:59:10 | 显示全部楼层
jzhang123 发表于 2015-8-29 09:42
mark, 有时间深入看下

出0入0汤圆

发表于 2015-9-6 19:09:34 | 显示全部楼层
不错,是好东西

出0入0汤圆

发表于 2015-9-6 20:29:11 | 显示全部楼层
现在是device tree了,这个是老内核吧

出0入0汤圆

 楼主| 发表于 2015-9-14 15:13:12 | 显示全部楼层
dmzy 发表于 2015-9-6 19:09
不错,是好东西

出0入0汤圆

发表于 2015-10-6 09:49:00 | 显示全部楼层
越来越不看好Linux。

出0入0汤圆

发表于 2015-10-7 19:12:31 | 显示全部楼层
yanhaijian2005 发表于 2015-10-6 09:49
越来越不看好Linux。

愿闻其详...

出0入0汤圆

发表于 2015-10-7 22:41:40 | 显示全部楼层
支持,好东西

出0入0汤圆

发表于 2015-10-9 12:29:50 | 显示全部楼层

你到招聘网上搜搜就知道了。

出0入0汤圆

 楼主| 发表于 2015-11-5 18:42:02 | 显示全部楼层

回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 -- 东莞阿莫电子网站 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2022-9-29 10:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表