usb驱动怎么写

1. 怎么做usb的驱动

你用的是笔记本吗?从本人的维修经验来看无法识别,一是电脑无法识别USB设备。

二是USB设备不能被电脑识别。我们先要判断是电脑的问题还是USB设备的问题。我们可以用其他的USB设备来测试电脑有没有问题。

如果是电脑的问题。你的电脑是不是被病毒破坏。USB2.0的驱动是不是安装完好或版本不兼容。有没有软件冲突(先解决软件问题)一般情况出来一个安装驱动程序的提示。

如果是电脑硬件问题。我们先用万用表测量USB的四条线(红+5V 白DATA-数据- 绿DATA-数据- 黑 地线)万用表红表笔对地黑表笔测量(白线和渌线。的阻值不相差50欧,这两条线都是从南桥出来的,如果阻值变化过大则可以判断是南桥问题。说明USB在南桥内部的模块烧毁。

在来看看外面的USB设备现在很多都要驱动程序。即使没有驱动程序也不会出来无法识别的情况。出现无法识别的情况有几种。一USB数据线不通或接触不良一般都接触那个地方因为时间长可能里面生锈有胀东西还可能有东西在里面挡住了。二 USB线不通。红线不通什么反应也不会有,白线不通无法识别。绿线不通也是无法识别。白线和绿线不可以接反。也是无法识别。黑线不通也没有反应,这个测量的方法上面已经讲到。

注意.红线5V电压低也可导致无法识别.

三 USB机板内部问题。1晶振不良,不起振。2晶振电容不良(20P)有两个

3复位电容电阻不良。复位电压偏底偏高 4三端IC不良为IC提供电压不够5.

主IC不良

祝你好运!

2. 电脑自带的USB驱动上面写的什么

是不想用还是其它问题,如果涉及安全问题建议屏蔽usb端口

釜底抽薪:屏蔽USB控制器

通过修改BIOS设置,可以直接屏蔽主板上的USB控制器,这个方法几乎适用于所有计算机。这里笔者以目前使用最为广泛的Award BIOS为例进行说明。启动计算机时按键盘的Del键进入BIOS设置界面,用方向键定位到“Integrated Peripherals”项,按回车打开,把其中“USB Controller”设置为“Disabled”。

另外为了防止非法用户更改该设置,请务必加上BIOS密码,然后保存退出,计算机会自动重启,以后计算机上所有的USB接口即告失效。

这个方法虽然简单有效,但副作用也非常明显,因为在屏蔽USB接口之后,不但闪存盘之类的移动存储设备不能用,而且连USB接口的外设,例如USB鼠标、键盘、打印机等都将无法使用,很不方便。

温柔一刀:修改注册表停用USB驱动

在“开始”/“运行”中输入“Regedit”,按回车即可打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor”主键,双击名为“Start”的DWORD值,将“数值数据”改为4。

注意右边的“基数”默认为“十六进制”,该设置切勿更改,单击“确定”即可修改完成。

现在试试看,插上闪盘,闪盘的工作指示灯不亮,而系统也没有任何反应,这证明我们的修改成功了。为了防止非法用户用同样的方法解锁,最好把Regedit.exe程序改名或者直接删除。

小提示:“Start”值是一个控制USB存储设备驱动程序工作状态的开关,可设为以下三种值,设为2时表示自动,设为3时表示手动(这是默认设置),设为4则为停用

3. 如何写一个Android USB接口驱动

说到 android 驱动是离不开 Linux 驱动的。

Android 内核采用的是 Linux2.6 内核 (最近Linux 3.3 已经包含了一些 Android 代码)。但 Android 并没有完全照搬 Linux 系统内核,除了对Linux 进行部分修正,还增加了不少内容。

android 驱动 主要分两种类型:Android 专用驱动 和 Android 使用的设备驱动(linux)。 Android 专有驱动程序: 1)Android Ashmem 匿名共享内存; 为用户空间程序提供分配内存的机制,为进程间提供大块共享内存,同时为内核提供回收和管理这个内存。

2)Android Logger 轻量级的LOG(日志) 驱动; 3)Android Binder 基于 OpenBinder 框架的一个驱动; 4)Android Power Management 电源管理模块; 5)Low Memory Killer 低内存管理器; 6)Android PMEM 物理内存驱动; 7)USB Gadget USB 驱动(基于 gaeget 框架); 8)Ram Console 用于调试写入日志信息的设备; 9)Time Device 定时控制设备; 10)Android Alarm 硬件时钟; Android 上的设备驱动: 1)Framebuff 显示驱动; 2)Event 输入设备驱动; 3)ALSA 音频驱动; 4)OSS 音频驱动; 5)v412摄像头:视频驱动; 6)MTD 驱动; 7)蓝牙驱动; 8)WLAN 设备驱动; Android 专有驱动程序 1.Android Ashmem 为用户空间程序提供分配内存的机制,为进程间提供大块共享内存,同时为内核提供回收和管理这个内存。 设备节点:/dev/ashmen .主设备号 10. 源码位置: include/linux/ashmen.h Kernel /mm/ashmen.c 相比于 malloc 和 anonymous/named mmap 等传统的内存分配机制,其优势是通过内核驱动提供了辅助内核的内存回收算法机制(pin/unoin) 2.Android Logger 无论是底层的源代码还上层的应用,我们都可以使用 logger 这个日志设备看、来进行调试。

设备节点: /dev/log/main /dev/log/event /dev/log/radio 源码位置:include/linux/logger.h include/linux/logger.c 3.Android Binder IPC Binder 一种进程间通信机制。他的进程能够为其它进程提供服务 ----- 通过标准的 Linux 系统调用 API。

设备节点 :/dev/binder 源码位置:Kernel/include/linux/binder.h Kernel/drivers/misc/binder.c 4.Android Power Management 一个基于标准 linux 电源管理的轻量级 Android 电源管理系统,在 drivers/android/power.c kernel/power/ 5.Low Memory Killer 它在用户空间中指定了一组内存临界值,当其中某个值与进程描述中的 oom_adj 值在同一范围时,该进程将被Kill掉(在parameters/adj中指定oome_adj 的最小值)。它与标准的Linux OOM机制类似,只是实现方法不同 源码位置:drivers/misc/lowmemorykiller.c 6.Android PMEM PMEM 主要作用就是向用户空间提供连续的物理内存区域。

1.让 GPU 或 VPU 缓冲区共享 CPU 核心。 2.用于 Android service 堆。

源码位置:include/linux/android_pmem.h drivers/android/pmem.c 7.USB Gadget 基于标准 Linux USB gaeget 驱动框架的设备驱动。 源码位置:drivers/usb/gadet/ 8.Ram Console 为了提供调试功能,android 允许将调试日志信息写入这个设备,它是基于 RAM 的 buffer. 源码位置: drivers/staging/android/ram_console.c 9.Time Device 定时控制,提供了对设备进行定时控制的功能。

源码位置:drivers/staging/android/timed_output.c(timed_gpio.c) 10.Android Alarm 提供一个定时器,用于把设备从睡眠状态唤醒,同时它还提供了一个即使在设备睡眠时也会运行的时钟基准。 设备节点:/dev/alarm 源码位置:drivers/trc/alarm.c Android 设备驱动 1. Framebuffer 帧缓存设备 Framebuffer 驱动在 Linux 中是标准的显示设备的驱动。

对于 PC 系统,它是显卡的驱动 ; 对于嵌入式 SOC 处理器系统,它是 LCD 控制器或者其他显示控制器的驱动。它是一个字符设备,在文件系统中设备节点通常是 /dev/fbx 。

每个系统可以有多个显示设备 , 依次用 /dev/fbO 、/dev/fb l 等来表示。在 Android 系统中主设备号为 29 ,次设备号递增生成。

Android 对 Framebuffer 驱动的使用方式是标准的 , 在 / dev / graphie / 中的 Framebuffer 设备节点由 init 进程自动创建 , 被 libui 库调用 。 Android 的 GUI 系统中 , 通过调用 Framebuffer 驱动的标准接口,实现显示设备的抽象。

Framebuff的结构框架和实现 : linux LCD驱动(二)--FrameBuffer Linux LCD驱动(四)--驱动的实现 2.Event输入设备驱动 Input 驱动程序是 Linux 输入设备的驱动程序 , 分为游戏杆 (joystick) 、鼠标 (mouse 和 mice)和事件设备 (Event queue)3 种驱动程序。其中事件驱动程序是目前通用的程序,可支持键盘 、鼠标、触摸屏等多种输入设备。

Input 驱动程序的主设备号是 l3 ,每一种 Input 设备从设备号占 用5 位 , 3 种从设备号分配是 : 游戏杆 0 ~ 61 ; Mouse 鼠标 33 ~ 62 ; Mice 鼠标 63 ; 事件设备 64 ~ 95 ,各个具体的设备在 misc 、touchscreen 、keyboard 等目录中。 Event 设备在用户空问使用 read 、ioctl 、poll 等文件系统的接口操作, read 用于读取输入信息, ioctl 用于获取和设置信息, poll 用于用户空间的阻塞,当内核有按键等中断时,通过在中断中唤醒内核的 poll 实现。

4. 怎样写Linux下的USB设备驱动程序

写一个USB的驱动程序最 基本的要做四件事:驱动程序要支持的设备、注册USB驱动程序、探测和断开、提交和控制urb(USB请求块) 驱动程序支持的设备:有一个结构体struct usb_device_id,这个结构体提供了一列不同类型的该驱动程序支持的USB设备,对于一个只控制一个特定的USB设备的驱动程序来说,struct usb_device_id表被定义为:/* 驱动程序支持的设备列表 */ static struct usb_device_id skel_table [] = { { USB_DEVICE(USB_SKEL_VENDOR_ID, USB_SKEL_PRODUCT_ID) }, { } /* 终止入口 */ }; MODULE_DEVICE_TABLE (usb, skel_table); 对 于PC驱动程序,MODULE_DEVICE_TABLE是必需的,而且usb必需为该宏的第一个值,而USB_SKEL_VENDOR_ID和 USB_SKEL_PRODUCT_ID就是这个特殊设备的制造商和产品的ID了,我们在程序中把定义的值改为我们这款USB的,如:/* 定义制造商和产品的ID号 */#define USB_SKEL_VENDOR_ID 0x1234#define USB_SKEL_PRODUCT_ID 0x2345 这两个值可以通过命令lsusb,当然你得先把USB设备先插到主机上了。

或者查看厂商的USB设备的手册也能得到,在我机器上运行lsusb是这样的结果:Bus 004 Device 001: ID 0000:0000 Bus 003 Device 002: ID 1234:2345 Abc Corp. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 得到这两个值后把它定义到程序里就可以了。注册USB驱动程序:所 有的USB驱动程序都必须创建的结构体是struct usb_driver。

这个结构体必须由USB驱动程序来填写,包括许多回调函数和变量,它们向USB核心代码描述USB驱动程序。创建一个有效的 struct usb_driver结构体,只须要初始化五个字段就可以了,在框架程序中是这样的:static struct usb_driver skel_driver = { .owner = THIS_MODULE, .name = "skeleton", .probe = skel_probe, .disconnect = skel_disconnect, .id_table = skel_table,}; 探测和断开:当 一个设备被安装而USB核心认为该驱动程序应该处理时,探测函数被调用,探测函数检查传递给它的设备信息,确定驱动程序是否真的适合该设备。

当驱动程序因 为某种原因不应该控制设备时,断开函数被调用,它可以做一些清理工作。探测回调函数中,USB驱动程序初始化任何可能用于控制USB设备的局部结构体,它 还把所需的任何设备相关信息保存到一个局部结构体中,提交和控制urb:当驱动程序有数据要发送到USB设备时(大多数情况是在驱动程序的写函数中),要分配一个urb来把数据传输给设备: /* 创建一个urb,并且给它分配一个缓存*/ urb = usb_alloc_urb(0, GFP_KERNEL); if (!urb) { retval = -ENOMEM; goto error; } 当urb被成功分配后,还要创建一个DMA缓冲区来以高效的方式发送数据到设备,传递给驱动程序的数据要复制到这块缓冲中去: buf = usb_buffer_alloc(dev->udev, count, GFP_KERNEL, &urb->transfer_dma); if (!buf) { retval = -ENOMEM; goto error; } if (copy_from_user(buf, user_buffer, count)) { retval = -EFAULT; goto error; } 当数据从用户空间正确复制到局部缓冲区后,urb必须在可以被提交给USB核心之前被正确初始化: /* 初始化urb */ usb_fill_bulk_urb(urb, dev->udev, usb_sndbulkpipe(dev->udev, dev->bulk_out_endpointAddr), buf, count, skel_write_bulk_callback, dev); urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; 然后urb就可以被提交给USB核心以传输到设备了: /* 把数据从批量OUT端口发出 */ retval = usb_submit_urb(urb, GFP_KERNEL); if (retval) { err("%s - failed submitting write urb, error %d", __FUNCTION__, retval); goto error; } 当urb被成功传输到USB设备之后,urb回调函数将被USB核心调用,在我们的例子中,我们初始化urb,使它指向skel_write_bulk_callback函数,以下就是该函数:static void skel_write_bulk_callback(struct urb *urb, struct pt_regs *regs) { struct usb_skel *dev; dev = (struct usb_skel *)urb->context; if (urb->status && !(urb->status == -ENOENT || urb->status == -ECONNRESET || urb->status == -ESHUTDOWN)) { dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status); } /* 释放已分配的缓冲区 */ usb_buffer_free(urb->dev, urb->transfer_buffer_length, urb->transfer_buffer, urb->transfer_dma); } 有时候USB驱动程序只是要发送或者接收一些简单的数据,驱动程序也可以不用urb来进行数据的传输,这是里涉及到两个简单的接口函数:usb_bulk_msg和usb_control_msg ,在这个USB框架程序里读操作就是这样的一个应用:/* 进行阻塞的批量读以从设备获取数据 */ retval = usb_bulk_msg(dev->udev, usb_rcvbulkpipe(dev->udev, dev->bulk_in_endpointAddr), dev->bulk_in_buffer, min(dev->bulk_in_size, count), &count, HZ*10); /*如果读成功,复制到用户空间 */ if (!retval) { if (copy_to_user(buffer, dev->bulk_in_buffer, count)) retval = -EFAULT; else retval = count; } usb_bulk_msg接口函数的定义如下:int usb_bulk_msg(struct usb_device *usb_dev,unsigned int pipe,void *data,int len,。

usb驱动怎么写

转载请注明出处育才学习网 » usb驱动怎么写

知识

培日语怎么写

阅读(213)

本文主要为您介绍培日语怎么写,内容包括培言怎么用日语写、读,“培”字的平假名和片假名咋写,请高手帮忙翻译一下"培言"用日语,请写出写法和读音。例1私は高校での三年间、演剧部に所属し、三年生のときは部长を务めました。自分ではない人や

知识

赌博举报信怎么写

阅读(197)

本文主要为您介绍赌博举报信怎么写,内容包括给公安局写赌博举报信怎样写,举报赌博人的举报信怎么写,有范文吗,匿名举报信受理后如何办,如何写赌博举报信。赌博举报信并没有专门的格式, 举报人可以根据自己的习惯书写出举报信件, 只要能讲明举

知识

最早的鱼儿怎么没下巴仿写

阅读(215)

本文主要为您介绍最早的鱼儿怎么没下巴仿写,内容包括仿写最早的鱼儿怎么没下巴找四种不同的水果写出类似的一段话,模仿最早的鱼儿怎么没有下巴,仿写'最早的鱼儿怎么没下巴‘。较早期的动物向较晚期的动物进化的过程,实际上是通过其结构

知识

smtp怎么写

阅读(528)

本文主要为您介绍smtp怎么写,内容包括smtp码怎样写呢,发送邮件服务器smtp怎么填,smtp怎么填写。SMTP服务器是 smtp.qq.com ,smtp.sohu.com ,smtp.sina.com 等等。SMTP账号就是完整邮箱账号

知识

电信版苹果怎么写号

阅读(186)

本文主要为您介绍电信版苹果怎么写号,内容包括苹果电信版怎么写号,苹果电信怎么写号进去,苹果电信怎么写号进去。苹果电信版写号方法: 电脑下载itunes,然后安装 2、 手机越狱 3、 进入手机界面上的CYDIA管理软件源编辑添加维维网源(ht

知识

俄罗斯数字怎么写

阅读(216)

本文主要为您介绍俄罗斯数字怎么写,内容包括俄罗斯的数字25怎么写,俄罗斯数字123456789怎么写,俄语的数字怎么写。1. на всякий случай если некторые иероглифи не прававиние.如果一些文

知识

vb怎么写函数

阅读(284)

本文主要为您介绍vb怎么写函数,内容包括vb这个函数怎么写,用vb怎么自己编写一个函数,用VB写一个函数。public type 字符类型字符1 as string字符2 as string字符3 as stringend typePubli

知识

淘宝店铺签名怎么写

阅读(641)

本文主要为您介绍淘宝店铺签名怎么写,内容包括淘宝店铺掌柜签名怎么写,淘宝店铺的掌柜签名怎么写如题谢谢了,淘宝店铺简介怎么写。淘宝的开店步骤是不断在变化,而我们需要不断的学习。在这里分享一下最新的淘宝开店步骤,以后的开店步骤还会更

知识

阅兵式观后感怎么写

阅读(176)

本文主要为您介绍阅兵式观后感怎么写,内容包括阅兵式观后感怎么写,那个阅兵式的观后感怎么写啊600字呢,阅兵式观后感怎么写啊~~急啊~~最好要1000字左右的~~。在这秋风送爽的日子,在这喜悦收获的季节,中华大地普天同庆,华夏神洲欢呼雀跃。因为

知识

退票证明怎么写

阅读(195)

本文主要为您介绍退票证明怎么写,内容包括退票证明怎么写不是拒收证明啊,退发票证明怎么写,增值税退票证明怎么写。这个事情有两种处理办法:一.假如你的客户还没有拿增值税专用发票进行抵扣,那么可以直接把全套发票退回给你,然后你按照客户要

知识

支票人民币大写怎么写

阅读(232)

本文主要为您介绍支票人民币大写怎么写,内容包括支票的大写金额怎么填写,支票人民币大写怎么写,支票人民币大写怎么写。支票的大写金额大写数字的写法是:零、壹、贰、叁、肆、伍、陆、柒、捌、玖、亿、万、仟、佰、拾。支票填写样式和格式需

知识

留字的草书怎么写

阅读(179)

本文主要为您介绍留字的草书怎么写,内容包括“留”字行书怎么写,再字草书怎么写,对字的草书写法。1)【再】草书的几种写法【再】字的方正字迹-邢体草书简体写法

知识

毛笔字猴怎么写

阅读(152)

本文主要为您介绍毛笔字猴怎么写,内容包括猴的毛笔字写法,猴字毛笔写法,猴字毛笔写法。1)【猴】叶根友毛笔行书简体写法2)【毛笔字】基本要领要想写好毛笔字必须掌握好笔法和字法。【执笔】苏东坡说:“把笔无定法,要使虚而宽。”

知识

改字的篆书怎么写

阅读(169)

本文主要为您介绍改字的篆书怎么写,内容包括变字的金文篆书甲骨文的写法,变字的金文篆书甲骨文的写法,“制”字的篆书怎么写。变字没有甲骨文变字的金文

知识

怎么写usb驱动

阅读(185)

本文主要为您介绍怎么写usb驱动,内容包括usb的驱动应该怎么写,usb的驱动应该怎么写,如何编写USB驱动程序。你用的是笔记本吗?从本人的维修经验来看无法识别,一是电脑无法识别USB设备。 二是USB设备不能被电脑识别。我们先要判断是电脑的问题

知识

易语言怎么写驱动

阅读(499)

本文主要为您介绍易语言怎么写驱动,内容包括易语言怎样写驱动,易语言程序怎么写成驱动级的,如何用易语言写删除驱动服务。和必要用驱动器框呢 直接选择文件夹就可以.版本 2.支持库 shell.程序集 窗口程序集1.子程序 __启动窗口_创建完毕.子

知识

底层驱动怎么写

阅读(174)

本文主要为您介绍底层驱动怎么写,内容包括MCU底层驱动该如何写有什么具体的好的方法吗,那几种语言可以写底层驱动,现在底层驱动一般都是用什么语言写的。你看看这篇文章吧,写得非常好 转帖]关于ARM和嵌入式系统方向嵌入式系统无疑是当前最热

知识

驱动是怎么写的

阅读(181)

本文主要为您介绍驱动是怎么写的,内容包括怎么写驱动,驱动是什么意思啊,C语言如何编写驱动。这个可是一个艰巨的工程,计算器的驱动都是用计算机语言写的,想学习写东西,那得从最简单的C C++ JAVA BASIC等等一套的配合,可

知识

屏驱动怎么写

阅读(162)

本文主要为您介绍屏驱动怎么写,内容包括如何写入液晶显示器驱动程序,液晶电视万能驱动板怎么写程序,stc51单片机彩屏驱动程序怎么写希望具体点,谢谢。1。人的面部掉色什么意思?关机了还要亮点?还是说关机的瞬间会出现亮点?听你的描述我揣测应

知识

动怎么写驱动

阅读(159)

本文主要为您介绍动怎么写驱动,内容包括怎么写驱动,如何编写驱动程序,电脑怎么做程序、驱动。这个可是一个艰巨的工程,计算器的驱动都是用计算机语言写的,想学习写东西,那得从最简单的C C++ JAVA BASIC等等一套的配合,可

知识

怎么写任务驱动型作文

阅读(175)

本文主要为您介绍怎么写任务驱动型作文,内容包括怎样写好任务驱动型作文,任务驱动型作文怎么写,《任务型驱动作文怎么写》。语文教学一线盛行一个名词,叫做“任务驱动型作文”。大到省级的教研会议,小到普通的语文课堂,谈及这个名词,有人深感莫

知识

驱动英文怎么写

阅读(561)

本文主要为您介绍驱动英文怎么写,内容包括驱动英文怎样写,所有驱动程序英文名称怎么写,驱动,用英语怎么拼写。Audio声卡--包括品牌:ADI. ALT. C-Media. Conexant. Creative. HDAudio. nVIDIA

[/e:loop]