如何能编写Linux下地USB键盘驱动有注释

如何能编写Linux下地USB键盘驱动有注释

ID:44781673

大小:134.00 KB

页数:10页

时间:2019-10-28

如何能编写Linux下地USB键盘驱动有注释_第1页
如何能编写Linux下地USB键盘驱动有注释_第2页
如何能编写Linux下地USB键盘驱动有注释_第3页
如何能编写Linux下地USB键盘驱动有注释_第4页
如何能编写Linux下地USB键盘驱动有注释_第5页
资源描述:

《如何能编写Linux下地USB键盘驱动有注释》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用如何编写Linux下的USB键盘驱动1.指定USB键盘驱动所需的头文件:#include/*内核头文件,含有内核一些常用函数的原型定义*/#include/*定义内存分配的一些函数*/#include/*模块编译必须的头文件*/#include/*输入设备相关函数的头文件*/#include/*linux初始化模块函数定义*/#include/*USB设备相关函数定义*

2、/2.定义键盘码表数组:/*使用第一套键盘扫描码表:A-1E;B-30;C-2E…*/staticunsignedcharusb_kbd_keycode[256]={0,0,0,0,30,48,46,32,18,33,34,35,23,36,37,38,50,49,24,25,16,19,31,20,22,47,17,45,21,44,2,3,4,5,6,7,8,9,10,11,28,1,14,15,57,12,13,26,27,43,43,39,40,41,51,52,53,58,59,60,61,62,63,64,65,66,67,68,87

3、,88,99,70,119,110,102,104,111,107,109,106,105,108,103,69,98,55,74,78,96,79,80,81,75,76,77,71,72,73,82,83,86,127,116,117,183,184,185,186,187,188,189,190,191,192,193,194,134,138,130,132,128,129,131,137,133,135,136,113,115,114,0,0,0,121,0,89,93,124,92,94,95,0,0,0,122,123,90,91,8

4、5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,42,56,125,97,54,100,126,164,166,165,163,161,115,114,113,150,158,159,128,136,177,178,176,142,152,173,140};3.编写设备ID表:static

5、structusb_device_idusb_kbd_id_table[]={{USB_INTERFACE_INFO(3,1,1)},/*3,1,1分别表示接口类,接口子类,接口协议;3,1,1为键盘接口类;鼠标为3,1,2*/{}/*Terminatingentry*/};MODULE_DEVICE_TABLE(usb,usb_kbd_id_table);/*指定设备ID表*/4.定义USB键盘结构体:structusb_kbd{structinput_dev*dev;/*定义一个输入设备*/structusb_device*usbdev;/*

6、定义一个usb设备*/文档实用unsignedcharold[8];/*按键离开时所用之数据缓冲区*/structurb*irq/*usb键盘之中断请求块*/,*led/*usb键盘之指示灯请求块*/;unsignedcharnewleds;/*目标指定灯状态*/charname[128];/*存放厂商名字及产品名字*/charphys[64];/*设备之节点*/unsignedchar*new;/*按键按下时所用之数据缓冲区*/structusb_ctrlrequest*cr;/*控制请求结构*/unsignedchar*leds;/*当前指示

7、灯状态*/dma_addr_tcr_dma;/*控制请求DMA缓冲地址*/dma_addr_tnew_dma;/*中断urb会使用该DMA缓冲区*/dma_addr_tleds_dma;/*指示灯DAM缓冲地址*/};1.编写USB键盘驱动结构(任何一个LINUX下的驱动都有个类似的驱动结构):/*USB键盘驱动结构体*/staticstructusb_driverusb_kbd_driver={.name="usbkbd",/*驱动名字*/.probe=usb_kbd_probe,/*驱动探测函数,加载时用到*/.disconnect=usb_

8、kbd_disconnect,/*驱动断开函数,在卸载时用到*/.id_table=usb_kbd_id_table,/*驱动设备ID表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。