完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 charles_jinbao 于 2016-9-23 05:45 编辑
硬件基础:一个带USB的系统含有USB主机控制器和USB设备(从机),当USB插上时,D+或D-被USB设备内拉高,主机控制器会检测到USB设备***入,进行软件的操作。 USB主机驱动:由linux系统完成,仅作为了解;USB设备驱动(鼠标作为按键输入): 分配和注册USB_driver结构体:里面包含probe,disconnect函数和id_table; probe函数: a.分配一个输入设备input_dev; b.设置输入设备能产生哪些事件,即鼠标输入对于linux系统的含义; c.注册输入设备; d.硬件操作: 1.USB设备驱动程序和USB主机驱动之间是用URB进行通信的,URB相当于快递员,要发送一个快递,得有目的地址,发送地址,快递大小重量(好分配车子),URB同样需要这3要素(源,目的,大小),和发快递一样的步骤,首先从快递那边拿到一个包装盒(分配一个u***_alloc_urb),然后将3要素打包进包装盒(u***_fill_int_urb),最后提交给快递公司(u***_submit_urb). 2.与我们日常生活中发送快递不同的是,源的内容可能不停的在变化,USB主机控制器需要不停地查询源的内容,当检测到内容发生变化时,USB主机控制器会产生中断,再次提交URB. disconnect函数 释放urb,释放缓冲区,释放输入设备,卸载u***_driver |
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-开发环境搭建之交叉编译
888 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之输入输出重定向
1392 浏览 0 评论
飞凌嵌入式-ELFBOARD ELF 1外设扩展硬件分享第一期
2133 浏览 0 评论
5478 浏览 0 评论
2271 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-6 19:34 , Processed in 1.132315 second(s), Total 35, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号