2013年3月9日

摘要: 原文链接地址:http://www.linuxidc.com/Linux/2012-12/76197p9.htm跟USB鼠标类型一样,USB键盘也属于HID类型,代码在/dirver/hid/usbhid/usbkbd.c下。USB键盘除了提交中断URB外,还需要提交控制URB。不多话,我们看代码[cpp]view plaincopystaticint__initusb_kbd_init(void){intresult=usb_register(&usb_kbd_driver);if(result==0)printk(KERN_INFOKBUILD_MODNAME":&quo 阅读全文
posted @ 2013-03-09 17:06 lightsalt2011 阅读(1128) 评论(0) 推荐(0) 编辑
摘要: USB鼠标驱动 usbmouse.c原文链接:http://www.linuxidc.com/Linux/2012-12/76197p7.htmdrivers/hid/usbhid/usbmouse.c下面我们分析下USB鼠标驱动,鼠标输入HID类型,其数据传输采用中断URB,鼠标端点类型为IN。我们先看看这个驱动的模块加载部分。[cpp]view plaincopystaticint__initusb_mouse_init(void){intretval=usb_register(&usb_mouse_driver);if(retval==0)printk(KERN_INFOKBUI 阅读全文
posted @ 2013-03-09 17:05 lightsalt2011 阅读(904) 评论(0) 推荐(0) 编辑
摘要: 原文链接:http://www.linuxidc.com/Linux/2012-12/76197p2.htmUSB驱动框架usb-skeleton.cUSB骨架程序可以被看做一个最简单的USB设备驱动的实例。首先看看USB骨架程序的usb_driver的定义[cpp]view plaincopystaticstructusb_driverskel_driver={.name="skeleton",.probe=skel_probe,//设备探测.disconnect=skel_disconnect,.suspend=skel_suspend,.resume=skel_res 阅读全文
posted @ 2013-03-09 17:04 lightsalt2011 阅读(962) 评论(0) 推荐(0) 编辑
摘要: 原文链接地址:http://www.linuxidc.com/Linux/2012-12/76197.htm1. USB概念概述USB1.0版本速度1.5Mbps(低速USB) USB1.1版本速度12Mbps(全速USB)USB2.0版本速度480Mbps(高速USB)USB驱动由USB主机控制器驱动和USB设备驱动组成。USB主机控制器是用来控制USB设备和CPU之间通信的,USB主机控制器驱动主要用来驱动芯片上的主机控制器硬件。USB设备驱动主要是指具体的例如USB鼠标,USB键盘灯设备的驱动。一般的通用的Linux设备,如U盘、USB鼠标、USB键盘,都不需要工程师再编写驱动,需要.. 阅读全文
posted @ 2013-03-09 17:03 lightsalt2011 阅读(1518) 评论(0) 推荐(0) 编辑

2012年6月28日

摘要: http://tangzibot.blog.163.com/blog/static/6044209320094159558397/看了一段时间的驱动编程,从LDD3的hello wrod到后来的字符设备以至于更加复杂的驱动,越看越是觉得对linux驱动的结构不清楚,越看越是迷糊。于是就停下脚步搜索一下资料理一下头绪:以下四个方面来总结一些内容:1.底层数据结构:kobject,kset.2.linux设备模型层次关系:bus_type,device,device_driver.3.集成:PCI设备驱动模型实例及设备,设备驱动注册源码的简单分析.4.面向对象的思想在linux设备模型中的应用分析 阅读全文
posted @ 2012-06-28 10:11 lightsalt2011 阅读(283) 评论(0) 推荐(0) 编辑

2012年6月20日

摘要: 看到文章标题,你肯定会很奇怪,为什么“别碰鼠标”,离开鼠标还怎么操作电脑?“让键盘飞起来”,键盘怎么会飞呢?你可以保留这些疑问,先跟着我的描述操作一遍,注意操作的过程中记住你都做了哪些动作,以及花费了多长时间。前提条件:假设你正在写代码,你的双手都放在键盘上。如果你用Win7,请暂时忽略任务栏锁定的软件。1、打开QQQQ很常用,你可能把它放在桌面了。于是你把手从键盘移到鼠标上,移动鼠标并定位到Win7的右下角点击切换到桌面。如果是Vista之前的系统,你需要移动鼠标到快速启动栏,定位到“切换到桌面”按钮并点击。然后你在桌面找到QQ的图标,双击启动。这个过程可能花费你2秒或3秒,似乎并不算长,操 阅读全文
posted @ 2012-06-20 10:50 lightsalt2011 阅读(1289) 评论(0) 推荐(0) 编辑

2012年5月30日

摘要: ;========================================= ; NAME: 2440INIT.S ; DESC: C start up codes ; Configure memory, ISR ,stacks ; Initialize C-variables ; 完全注释 ; HISTORY: ; 2002.02.25:kwtark: ver 0.0 ; 2002.03.20:purnnamu: Add some functions for testing STOP,Sleep mode ; 2003.03.14:DonGo: Modif... 阅读全文
posted @ 2012-05-30 11:01 lightsalt2011 阅读(501) 评论(0) 推荐(0) 编辑

2012年5月21日

摘要: 非技术面试题锦集源地址:http://bbs.yingjiesheng.com/thread-42149-1-1.html http://blog.csdn.net/cjok376240497/article/details/7366790 一、 你如何选择自己的职业? 分析思路:这个问题是为了了解求职者的动机,看他应聘这份工作是否漫无目的。 选择答案: A:我一直都想在企业界工作。自孩提时代起,我就梦想自己至少也要成为大企业的副总裁。 B:在大学三年级前的时候,我决定集中精力在某一领域谋求发展。尽管我是学商业的,但我不知道自己最终会从事哪一行业的工作。我花了一定的时间考虑自己的目标,... 阅读全文
posted @ 2012-05-21 14:12 lightsalt2011 阅读(338) 评论(0) 推荐(0) 编辑

2012年5月18日

摘要: 下面是按键驱动的简单例子,这个输入设备只有一个按键,按键被连接到一条中断线上,当按键被按下时,将产生一个中断,内核将检测到这个中断,并对其进行处理。代码含注释如下:C++代码#include<asm/irq.h>#include<asm/io.h>staticstructinput_dev*button_dev;/*输入设备结构体*/staticirqreturn_tbutton_interrupt(int,irq,void*dummy)/*中断处理函数*/{input_report_key(button_dev,BTN_0,inb(BUTTON_PORT)&1 阅读全文
posted @ 2012-05-18 12:15 lightsalt2011 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 下面是按键驱动的简单例子,这个输入设备只有一个按键,按键被连接到一条中断线上,当按键被按下时,将产生一个中断,内核将检测到这个中断,并对其进行处理。代码含注释如下:C++代码#include<asm/irq.h>#include<asm/io.h>staticstructinput_dev*button_dev;/*输入设备结构体*/staticirqreturn_tbutton_interrupt(int,irq,void*dummy)/*中断处理函数*/{input_report_key(button_dev,BTN_0,inb(BUTTON_PORT)&1 阅读全文
posted @ 2012-05-18 11:02 lightsalt2011 阅读(555) 评论(0) 推荐(0) 编辑

导航