登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
固件下载
资料汇总
搜索帖子!
NanoPC 系列:
NanoPC-T2
NanoPC-T3 Plus
NanoPC-T4
NanoPC-T6
NanoPC-T6 Plus
NanoPi 系列:
NanoPi-NEO
NEO Core
NEO Air
M1 Plus
Duo2
NEO3
NEO4
M4B
M5
M6
M6V2
核心板:
Smart4418
Core4418
Smart6818
Core6818
SOM-RK3399V2
CM3588
CM3588 Plus
迷你R系列:
NanoPi-R1
R1S
R2S
R2S Plus
Zero2
R3S
R76S
R4S
R5S
R5C
R6C
R6S
热门版块:
开发板销售中心
开发板硬件讨论区
硬软DIY及开发
嵌入式交流与讨论
友友粉丝快线
Ubuntu技术交流区
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访IP统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
Android技术交流区
求教:android 下USB设备驱动的问题
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
«
1
2
»
Pages: 2/2 Go
新 帖
主题 : 求教:android 下USB设备驱动的问题
复制链接
|
浏览器收藏
|
打印
hatherlea
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
79057
精华:
0
发帖:
12
金钱:
60 两
威望:
12 点
综合积分:
24 分
注册时间:
2012-09-29
最后登录:
2012-10-23
10楼
发表于: 2012-10-09 16:59
只看该作者
|
小
中
大
驱动代码发出来了,求大神指教
stigreader.c.zip
(4 K) 下载次数:10
顶端
回复
引用
分享
kasim
*無鈳取玳
级别: 论坛版主
作者资料
发送短消息
加为好友
QQ联系
UID:
27
精华:
12
发帖:
5398
金钱:
40120 两
威望:
17929 点
综合积分:
11036 分
注册时间:
2008-01-16
最后登录:
2014-11-22
11楼
发表于: 2012-10-09 22:55
只看该作者
|
小
中
大
从驱动源文件看
复制代码
// 注册usb设备
retval = usb_register_dev(interface, &stigreader_class);
驱动应该是注册了一个名字叫STIGREADER_DEVICE_CLASS_NAME的字符设备,主设备号是USB_MAJOR(定义为180),次设备号是USB_SKEL_MINOR_BASE(定义为192)加上一个索引值。具体值可以通过把源代码里的
复制代码
//info("%s 链接成功-%d", STIGREADER_DESCRIPTION, interface->minor);
这句打印语句的注释去掉(当然你需要把中文改成英文)来获得。
如果在/dev目录下找不到相应主次设备号的设备文件,你试试可以通过手动"mknod /dev/stigreader c 180 <程序里打印出来的minor值>"来生成。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
顶端
回复
引用
分享
hatherlea
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
79057
精华:
0
发帖:
12
金钱:
60 两
威望:
12 点
综合积分:
24 分
注册时间:
2012-09-29
最后登录:
2012-10-23
12楼
发表于: 2012-10-10 15:49
只看该作者
|
小
中
大
多些版主的悉心指导
顶端
回复
引用
分享
hatherlea
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
79057
精华:
0
发帖:
12
金钱:
60 两
威望:
12 点
综合积分:
24 分
注册时间:
2012-09-29
最后登录:
2012-10-23
13楼
发表于: 2012-10-10 15:52
只看该作者
|
小
中
大
用mknod可以手动生成设备的字符几点
但是在驱动中能不能编写代码来执行mknod呢
顶端
回复
引用
分享
kasim
*無鈳取玳
级别: 论坛版主
作者资料
发送短消息
加为好友
QQ联系
UID:
27
精华:
12
发帖:
5398
金钱:
40120 两
威望:
17929 点
综合积分:
11036 分
注册时间:
2008-01-16
最后登录:
2014-11-22
14楼
发表于: 2012-10-10 16:44
只看该作者
|
小
中
大
回 13楼(hatherlea) 的帖子
通常我们不会在驱动里用mknod去生成节点。在Android上的ueventd就是负责从内核接收新设备的信息并且生成设备节点的。从源代码()看,它应该会创建一个/dev/bus/usb/<bus id>/<device id>的相应的设备节点。如果是那样的话,我想作为HAL程序,应该去遍历/dev/bus/usb下的设备节点文件(或者/sys/bus/usb下的设备属性节点文件?)找出匹配读卡器的节点来操作。
[ 此帖被kasim在2012-10-10 17:08重新编辑 ]
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
顶端
回复
引用
分享
hatherlea
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
79057
精华:
0
发帖:
12
金钱:
60 两
威望:
12 点
综合积分:
24 分
注册时间:
2012-09-29
最后登录:
2012-10-23
15楼
发表于: 2012-10-10 18:44
只看该作者
|
小
中
大
灰常感谢版主
在我执行ls /sys/class/usb/stigreader/ 后
显示
uevent
dev
subsystem
device
power
cat uevent 结果如下
MAJOR=180
MINOR=192
DEVNAME=stigreader
正好是我的设备
那这里的dev是不是我的设备节点,如果是的话,就省去了很多遍历过程了
不知道我说的对不对
顶端
回复
引用
分享
kasim
*無鈳取玳
级别: 论坛版主
作者资料
发送短消息
加为好友
QQ联系
UID:
27
精华:
12
发帖:
5398
金钱:
40120 两
威望:
17929 点
综合积分:
11036 分
注册时间:
2008-01-16
最后登录:
2014-11-22
16楼
发表于: 2012-10-11 10:34
只看该作者
|
小
中
大
我不觉得这里的dev是设备节点文件,它应该只是一个包含了<major>:<minor>字符串的一个文本文件。不过我想你可以利用这里获得的major和minor号,在HAL程序中调用mknod()这个系统调用来创建设备节点。关于mknod()系统调用的用法,参考man 2 mknod的输出。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
顶端
回复
引用
分享
上一主题
下一主题
«
1
2
»
Pages: 2/2 Go
Android技术交流区
http://121.40.142.80
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问