自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(30)
  • 收藏
  • 关注

原创 STDOUT_FILENO stdout

在UNIX一些系统调用中使用到STDIN_FILENO表示标准输入,STDOUT_FILENO表示标准输出,STDERR_FILENO表示标准出错,使用时需要加头文件在UNIX下还有stdin,stdout,stderr表示同样的含义。二者的主要区别为:1.数据类型不同,前者为int类型,后者为FILE*;2.STDIN_FILENO STDOUT_FILEn主要用

2014-10-10 16:05:41 2269

转载 标准IO和不带缓存的IO

分类: Unix编程2014-09-17 00:47 42人阅读 评论(1) 收藏 举报IO缓存c最近在看《Unix环境高级编程》,这是自己的一些心得体会。不带缓存的IO是什么,比如read()函数和write()函数,这两个函数的函数原型如下:    需要注意的是这两个函数都有一个参数就是buf,这个参数用来指向读取或者写入的地方,

2014-10-10 16:03:27 1126

转载 库函数调用和系统调用的区别(转)

2011-06-09 17:57 2369人阅读 评论(0) 收藏 举报unixsystem存储user语言算法 http://blog.csdn.net/clearriver/archive/2009/05/05/4152780.aspxUnix操作系统设计上的陈述:理解库函数的区别和系统调用,首先要里理解Unix的kernel mode和user mode。考虑下面的函数段

2014-10-10 14:46:46 459

转载 没有LCD的camera调试方法

一  关闭开机锁屏frameworks/base/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java @@ -192,7 +192,7 @@ public class KeyguardViewMediator { /** * External apps (like the phone app) c

2014-08-12 08:55:27 524

转载 各种资源被封后android源码下载方法

各种资源被封后android源码下载方法。分类: Android 源码下载2013-08-29 22:27 579人阅读 评论(0) 收藏 举报先给个国内的下载链接,转至:http://www.apkbus.com/android-108480-1-1.htmlAndroid 2.2.2到Android 4.2.2源码下载地址  可能有些的地址已经过时了 And

2014-08-07 08:15:31 594

转载 repo安装

转载▼标签: 杂谈分类: Android问题1:找不到命令:repo方法:在下载android源码的时候用repo时提示找不到命令,可以用如下方法解决,在命令行中输入如下两行:echo 'export PATH=$PATH:$Home/bin' >> ~/.bashrcexport PATH=$PA

2014-06-26 17:39:17 1137

原创 高通源码下载

1.高通私有部分2.高通开源部分:repo init -u git://codeaurora.org/platform/manifest.git -b release -m M8974AAAAANLYA00050096.xml –repo-url=git://codeaurora.org/tools/repo.git$ repo sync

2014-06-26 11:09:24 5104 1

转载 高通平台USB2.0和3.0接口充电器识别原理

高通平台USB2.0和3.0接口充电器识别原理分类: USB Charger2014-06-09 16:45 64人阅读 评论(0) 收藏 举报BCS v1.2的充电器探测原理如下:当OTG驱动捕获到VBUS中断的时候,断开DP/DM与SIE接口的连接,然后等待数据线的连接(DCD)并设置超时,一般是750ms,如果超时,可启动usb gadget驱动做识别;否则在DP

2014-06-19 14:05:19 1950

转载 如何编写键盘驱动程序

2011-09-30 15:39 683人阅读 评论(0) 收藏 举报inputinterfacebuffermoduledescriptortable 1.  指定USB键盘驱动所需的头文件:#include/*内核头文件,含有内核一些常用函数的原型定义*/ #include/*定义内存分配的一些函数*/ #include/*模

2014-06-13 11:18:29 1826

转载 USB OTG插入检测识别

转载请标注原文地址:http://blog.csdn.net/uranus_wm/article/details/9838847 一 USB引脚一般四根线,定义如下:为支持OTG功能,mini/micro usb接口扩展了一个ID引脚(第4脚)A设备端ID脚接地,则初始状态为Host,例如PC和支持OTG设备做主设备时B设备端ID脚悬空,默认上拉为高电平,则初始状态为D

2014-06-12 16:25:46 530

转载 Makefile

http://scc.qibebt.cas.cn/docs/linux/base/%B8%FA%CE%D2%D2%BB%C6%F0%D0%B4Makefile-%B3%C2%F0%A9.pdf

2013-09-23 11:48:08 374

转载 7.最熟悉的陌生人--probe

7.最熟悉的陌生人--probe话说因为Hub驱动无所事事,所以hub_thread()进入了睡眠,直到某一天,hub_probe被调用。所以我们来看hub_probe(),这个函数来自drivers/usb/hub.c,其作用就如同当初我们在usb-storage中遇到的那个storage_probe()函数一样。887 static int hub_probe(struct u

2013-09-16 09:17:40 849

转载 6.等待,只因曾经承诺

6.等待,只因曾经承诺hub_thread()中还有一个函数没有讲,它就是try_to_freeze(),这是与电源管理相关的函数。对大多数人来说,关于这个函数,了解就可以了。随着Linux开始支持suspended之后,有人提倡,每一个内核进程都应该在适当的时候,调用try_to_freeze()。什么意思呢?有这样一个flag,PF_NOFREEZE,如果你这个进程或者内核线程

2013-09-16 09:16:18 520

转载 5.那些队列,那些队列操作函数(2)

5.那些队列,那些队列操作函数(2)从队列里删除一个元素,并且将该元素做初始化,首先看__list_del():155 static inline void __list_del(struct list_head * prev, struct list_head * next)  156 {  157     next->prevprev = prev;  158     prev->

2013-09-16 09:15:52 780

转载 5.那些队列,那些队列操作函数(1)

5.那些队列,那些队列操作函数(1)这一节我们讲队列。随着子进程进入了我们的视野,我们来看其入口函数hub_thread(),这是一个令你大跌隐形眼镜的函数。2817 static int hub_thread(void *__unused)  2818 {  2819    do {  2820        hub_events();  2821        wait_e

2013-09-16 09:14:41 1064

转载 4.一样的精灵,不一样的API(2)

4.一样的精灵,不一样的API(2)关于内核空间,我只想说,所有的驱动程序都是运行在内核空间的,内核空间虽然很大,但总是有限的。而在这有限的空间中,其最后一个page是专门保留的,也就是说,一般人不可能用到内核空间最后一个page的指针。换句话说,你在写设备驱动程序的过程中,涉及的任何一个指针,必然有三种情况:一种是有效指针,一种是NULL(空指针),还有一种是错误指针,或者说无效

2013-09-16 09:14:04 482

转载 4.一样的精灵,不一样的API(1)

4.一样的精灵,不一样的API(1)usb_register()这个函数是用来向USB核心层,即USB Core,注册一个USB设备驱动的,而这里我们注册的是Hub的驱动程序所对应的struct usb_driver结构体变量。定义于drivers/usb/ core/hub.c中:2841 static struct usb_driver hub_driver = {  2842  

2013-09-16 09:12:32 563

转载 3.特别的爱给特别的Root Hub

3.特别的爱给特别的Root Hub不懂Hub是怎么工作的就等于不知道USB设备驱动是怎么工作的。这句话一点没错,因为USB设备的初始化都是Hub这边发起的,通常我们写USB设备驱动程序都是在已经得到了一个struct usb_interface指针的情况下开始probe工作。可是我要问你,你的struct usb_interface从哪来的?老实说,要想知道从USB设备插入USB口的那一

2013-09-16 09:11:24 737

转载 2.跟我走吧,现在就出发

2.跟我走吧,现在就出发这里说的是USB中的Hub。在USB的世界里,Hub永远都只是绿叶,它不可能是红花,它的存在只是为了支持更多设备连接到USB总线上来,谁也不会为了使用Hub而购买Hub,买Hub的原因是为了要使用别的设备。也许设计代码的人和我一样,希望大家能够更多地关注Hub,所以,关于Hub的代码在Core的目录下面。在Linux内核代码目录中, 所有设备驱动程序

2013-09-16 09:10:43 1391

转载 1.引子

1.引子天有不测风云,人有旦夕祸福。在2007年的夏天,我那可爱的电脑声卡坏了。朋友给我推荐了一款飞利浦的外置声卡PSC805,老实说,声卡还能用外置的,的确让我觉得新鲜,它直接用USB连接,价钱也还可以。所以我去了一趟中关村买了一块外置声卡。然而,在店家那里好好的声卡买回来之后居然连指示灯都不亮,根本没法用。不是完全不亮,一开始会亮,然后就不亮了。凭直觉,我判定这是软件的

2013-09-16 09:09:34 545

转载 USB入门系列之七 —— USB的描述符及各种描述符之间的依赖关系

USB是个通用的总线,端口都是统一的。但是USB设备却各种各样,例如USB鼠标,USB键盘,U盘等等,那么USB主机是如何识别出不同的设备的呢?这就要依赖于描述符了。    USB的描述符主要有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,HID描述符,报告描述符等等。关于报告描述符,请看我以前写的:《USB HID报告及报告描述符简介 》 http://g

2013-09-10 09:08:49 708

转载 USB HID报告及报告描述符简介

在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等。USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。 USB HID设备是通过报告来给传送数据的,报告有输入报告和输出报告。输入报告是USB设备发送给主机的,例如USB鼠标将鼠标移动和鼠标点击等信息返回给电

2013-09-10 09:08:38 817

转载 USB入门系列之六 —— USB设备的枚举过程

USB主机在检测到USB设备插入后,就要对设备进行枚举了。为什么要枚举呢?枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。    在说枚举之前,先大概说一下USB的一种传输模式——控制传输。这种传输在USB中是非常重要的,它要保证数据的正确性

2013-09-10 09:07:56 1100

转载 USB入门系列之五 —— USB设备的插入检测机制[图]

USB主机是如何检测到设备的插入的呢?首先,在USB集线器的每个下游端口的D+和D-上,分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备,上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。这样,当设备插入到集线器时,由1.5K的上拉电阻和15K的下拉电阻分压,结果就

2013-09-10 09:06:00 6892

转载 USB入门系列之四 —— USB的线缆以及插头、插座[图]

USB是一个标准的协议,因此对线缆、插头、插座等有严格的规范要求。    在最初的标准里,USB接头有4条线:电源,D-,D+,地线。我们暂且把这样的叫做标准的USB接头吧。后来OTG出现了,又增加了miniUSB接头。而miniUSB接头则有5条线,多了一条ID线,用来标识身份用的。标准USB口只有A型和B型。其中每一型又分为插头和插座,例如A型插头,A型插座等。我们平常电脑上用

2013-09-10 09:05:19 2873

转载 USB入门系列之三 —— USB的电气特性

标准的USB使用4根线:5V电源线(Vbus),差分数据线负(D-),差分数据线正(D+),地(Gnd)。在USB OTG中,又增加了一种mini接口,使用的是5根线,比标准的USB多了一根身份识别(ID)线。USB使用的是差分传输模式,有两根数据线,分别是D+和D-。在USB的低速和全速模式中,采用的是电压传输模式。而在高速模式下,则是电流传输模式。关于具体的高低电平门限值,请参看USB协议。为

2013-09-10 09:01:10 2623

转载 USB入门系列之二 —— USB的连接模型[图]

USB是一种主从结构。主机叫做Host,从机叫做Device(也叫做设备),集线器也被当作一种特殊的设备处理。USB的数据交换只能发生在主机和设备之间,主机和主机,设备和设备之间不能互连。为了在物理上区分主机和设备,使用了不同的插头和插座,这个在USB的连接器一节中会讲到。所有的数据传输都由主机主动发起,而设备只是被动的负责应答。例如,在读数据时,USB先发出读命令,设备收到该命令后,才返回数据。

2013-09-10 09:00:29 1265

转载 USB入门系列之一 —— USB概述

USB是什么呢?一说USB是You SB的意思,即“你傻B”的意思。另一种说法是USB其实是美国的弟弟,因为美国叫USA,USB当然是他的弟弟了。    那么USB到底是什么呢?其实USB是通用串行总线(Universal Serial Bus)的简写,它已经有了10多年的历史了。USB协议出现过的版本有USB1.0,USB1.1,USB2.0。由于USB是主从模式,设备与设备之间、主机与主机

2013-09-10 08:59:06 745

转载 USB枚举

在说枚举过程之前,先把一些必须了解的说明白一.USB包结构和分类     包的共同特点是,都是以同步域开始,接着是PID,最后以EOP结束,而设备端则靠SEI(串行接口引擎,硬件上实现)来进行这些底层的处理,包括CRC的校验之类的东东。    8位的PID,PID0~PID3,用于表示包,高四位进行取反,进行校验    各种包的如下:    令牌类:OUT,IN ,SOF,

2013-09-09 09:25:00 681

转载 USB协议基本知识

USB协议基本知识USB 基本知识 USB的重要关键概念: 1、 端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点) 2、 帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个

2013-09-09 09:21:35 714

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除