OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4139|回复: 0

迅为4412开发板Linux驱动教程——总线_设备_驱动注册流程详解

[复制链接]

45

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2015-5-7
在线时间
10 小时
发表于 2015-8-12 15:20:16 | 显示全部楼层 |阅读模式


视频下载地址:

驱动注册: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的基础上添加驱动注册部分

? 编译,在开发板上加载和卸载驱动

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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