登录
注册
一键加入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
热门版块:
友善之臂最新动态
开发板实战手册及教程
友善之臂官方客服中心
ROM发布区
NanoPi 玩家交流区
我的论坛我的贴
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访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://aiothome.net
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问