自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AHC的专栏

记录我的学习

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

转载 EV_REP,input_repeat_key,键盘重复,GPIO键盘

要实现的效果:类似桌面打开记事本,按下键盘后有输入,按住按键不放的话就连续输入。环境:嵌入式Linux系统,键盘有GPIO扫描实现,模拟成标准键盘,界面用QT4的LineEdit显示。 键盘的驱动我就不多说了,参考input/keyboard的omap方面代码即可;QT里面继承keyPressEvent()即可判断按下的是哪个键。要注意的有一些,说说心得:1

2014-02-07 20:33:14 2937

转载 getevent/sendevent 使用说明

这两天准备写一下input子系统的分析,过程中发现了两个好工具,呵呵,就是本文介绍的主角:getevent用于获取当前系统input设备的一些参数和实时事件的数据;sendevent用于发送input事件,这样在调试的时候遇到有的样机按键坏了或者触摸屏坏了就方便了,工具的源码位于Android SDK的system/core/toolbox下面。一、getevent首先看一下命令的

2014-01-17 20:04:42 1389

转载 usb错误恢复

错误恢复信息包错误检查;错误EOP;总线超时(没有响应);数据触发器错误检查;串扰---在时间片结束之后发年事务处理;LOA---总线活动丢失。 三种类型的包错误:包ID(PID);CRC;位填充错误。发生以上错误,接收方忽略这个信息包,并且不会返回一个信息包。信息包的类型和CRC信息包的类型字段名字段的最大长度

2014-01-16 20:34:37 1843 1

转载 USB 接口关联描述符

USB 接口关联描述符 (IAD) 允许设备将属于一个函数的接口组合在一起。本主题描述客户端驱动程序如何能够确定设备是否包含某个函数的 IAD。通用串行总线规范版本 2.0 不支持将复合设备的多个接口组合在单一函数中。不过,USB 设备工作组 (DWG) 创建了允许函数具有多个接口的 USB 设备类,而且 USB 实施者论坛发布了工程变更通知 (ECN),为组合接口定义了一种机制。

2014-01-06 09:13:01 3275

转载 Scatter-gather DMA 与 block DMA

Scatter-gather DMA方式是与block DMA方式相对应的一种DMA方式。    在DMA传输数据的过程中,要求源物理地址和目标物理地址必须是连续的。但是在某些计算机体系中,如IA架构,连续的存储器地址在物理上不一定是连续的,所以DMA传输要分成多次完成。    如果在传输完一块物理上连续的数据后引起一次中断,然后再由主机进行下一块物理上连续的数据传输,那么这种方式

2014-01-03 19:27:44 1258

原创 Video for Linux Two API Specification

Video for Linux Two API Specification地址:http://www.linuxtv.org/downloads/legacy/video4linux/API/V4L2_API/spec-single/v4l2.html

2013-12-23 16:48:14 781

转载 V4L2 API详解 <三> Buffer的准备和数据读取

作者: Sam (甄峰)  [email protected]前面主要介绍的是:V4L2 的一些设置接口,如亮度,饱和度,曝光时间,帧数,增益,白平衡等。今天看看V4L2 得到数据的几个关键ioctl,Buffer的申请和数据的抓取。1. 初始化 Memory Mapping 或 User Pointer I/O.int ioctl

2013-12-23 16:26:03 1867

转载 V4L2 API详解 <二> Camera详细设置

作者: Sam (甄峰)  [email protected]的可设置项极多,V4L2 支持了不少。但Sam之前对这些设置的用法和涵义都是在看videodev2.h中边看边理解,感觉非常生涩。直到写这篇blog时,才发现v4l2有专门的SPEC来说明:http://www.linuxtv.org/downloads/legacy/video4linux

2013-12-23 16:16:21 1507 1

转载 V4L2 API详解 <一> 背景知识

www.linuxtv.org下,有篇文档详细讲解了V4L2相关知识和体系结构。是V4L2方面最全面的文档。可以通过它学习V4L2的一些思路和想法。http://www.linuxtv.org/downloads/v4l-dvb-apis/index.html文档包含的内容主要是Linux Kernel对 用户空间使用者提供的Video和Audio流Device. 包括

2013-12-23 16:01:28 846

转载 mmap函数

共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式, 因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域

2013-12-23 15:51:44 634

转载 关于might_sleep的一点说明

might_sleep(): 指示当前函数可以睡眠。如果它所在的函数处于原子上下文(atomic context)中(如,spinlock, irq-handler…),将打印出堆栈的回溯信息。这个函数主要用来做调试工作,在你不确定不期望睡眠的地方是否真的不会睡眠时,就把这个宏加进去。简单地说,如果没有调试的需求(绝大多数下你平常跑的系统都是release版本的kernel),那么这个

2013-12-23 11:08:36 1353

转载 字节序问题--大端法小端法

一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian。引用标准的Big-Endia

2013-12-16 21:26:45 629

转载 怎样写linux下的USB设备驱动程序

引言随着人们生活水平的提高,我们用到的USB设备也越来越多,但是Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和使用他们,也越来越成为困扰我们的一大问题;本文的目地是使大家了解怎样编制USB设备驱动,为更好地配置和使用USB设备提供方便;对于希望开发Linux系统下USB设备驱动的人员,也可作为进一步学习USB驱动的大体架构进而编写出特殊USB设备的驱动程序。

2013-12-14 22:01:34 1085

转载 URB数据结构

一、 transfer_flags/* * urb->transfer_flags: * * Note: URB_DIR_IN/OUT is automatically set in usb_submit_urb(). */#define URB_SHORT_NOT_OK 0x0001   /* report short reads as errors */#def

2013-12-14 22:00:36 1121

转载 V4l2接口使用--编程demo

V4l2接口使用demo,备份一下:http://linuxtv.org/downloads/v4l-dvb-apis/capture-example.html:/* * V4L2 video capture example * * This program can be used and distributed without restrictions. * * Th

2013-12-14 21:59:19 1760

转载 深入理解linux内核v4l2框架之videobuf2

Videobuf2框架1. 什么是videobuf2框架?它是一个针对多媒体设备的v4l2兼容驱动框架,是用户空间应用程序和设备驱动的中间层。它为驱动提供更为底层的模块化的内存管理功能。它能够使得驱动开发变得简单,减少代码量,帮助合理的连续的实现驱动当中的v4l2接口。videobuf2的内存管理是完全模块化的,这就允许在不改变更高级别缓冲管理框架的情况下可以为设备

2013-12-14 15:05:13 1104

转载 深入理解linux内核v4l2框架之videobuf

Videobuf下面来介绍以下videobuffer相关的一些东西。V4L2核心api提供了一套标准的方法来处理视频缓冲,这些方法允许驱动实现read(),mmap(), overlay()等操作。同样也有方法支持DMA的scatter/gather操作,并且支持vmallocbuffer(这个大多用在USB驱动上)。videobuf层功能是一种在v4l2驱动和用户空间当中

2013-12-14 15:04:07 1757

转载 深入理解l内核v4l2框架之video for linux 2

在看了很多关于v4l2驱动的例程之后,想深入研究下linux内核的v4l2框架,顺便把这些记录下来,以备查用。Video for Linux 2     随着一些视频或者图像硬件的复杂化,V4L2驱动也越来越趋于复杂。许多硬件有多个IC,在/dev下生成多个video设备或者其他的诸如,DVB,ALSA,FB,I2C ,IR等等非V4L2的设备。所以,V4L2驱动程序就要为

2013-12-14 14:40:38 1843

转载 CRC的校验原理

一、基本原理    CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列;附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系。如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏。因此,通过检查这一关系,就可以实现对数据正确性的检验。二、几个基本概念1、帧

2013-11-21 14:53:02 1520

转载 USB热插拔机制实现

一.等待static struct usb_driver hub_driver = { .name = "hub", .probe = hub_probe, .disconnect = hub_disconnect, .suspend = hub_suspend, .resume = hub_resume,

2013-11-21 11:12:24 1785

转载 USB的八个问题和答案

问题一:USB的传输线结构是如何的呢?答案一:一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(注意哦,与CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500MA(可以在编程中设置的,至于硬件的实现机制,就不要管它了)。 问题二:数据是如何在USB传输线里面传送的答案二:数据在USB线里传送是

2013-11-20 16:23:37 1765

原创 C语言零长度数组

零长度数组在ANSI C 和C++中是不允许的,在GNU C中是合法可以用的。看urb的结构体可以看到:

2013-11-15 18:22:51 810

转载 system/build.prop各行代码解释

如果想改的话可以直接用RE管理器修改sysytem-build.prop,长按build.prop使用文本编辑器打开来修改  ro.build.version.release=4.04 android版本修改4.04改为4.12 想改为5.0,6.0都可以  ro.build.date=三 12月 15 20:41:26 CST 2012 时区时间CST可以代表4个时区,这个百度一

2013-11-13 19:46:35 3161

转载 build.prop文件详细赏析

小知识:什么是build.prop? /system/build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件。这个文件是如何生成的呢?build/tools/buildinfo.sh 脚本就是专门用于生成build.prop文件build/core/Makefile中使用build/tools

2013-11-13 18:55:55 1800

转载 USB协议架构及驱动架构

1. USB协议1.1 USB主机系统       在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器。USB主机控制器包含硬件、软件和固件一部分。1.2 USB设备系统        USB设备按功能分为两部分:集线器(Hub)和功能部件。从下图可知,主机通过根集线器连接到各种外围设备(集线器和功能部件)。1.

2013-11-07 18:33:35 994

转载 usb-OTG-ADP-HNP-SRP

1. USB速率这得从USB的发展过程说起。 USB 1.0:最早的USB标准,有187.5Kbps和1.5Mbps两种传输速率,最高传输速率1.5Mbps USB 1.1:传输速率为USB 1.0标准的8倍,有1.5Mbps和12Mbps两种传输速率,最高速率12Mbps USB 2.0:较新的USB标准,最高传输速率为480Mbps USB 3.0:据说是最新的USB标

2013-11-07 18:32:15 2032

转载 USB OTG Session Request Protocol(SRP)请求过程

0.介绍SRP总体过程如下:1.通过管理VBUS与DATA LINES 来确定上一个SESSION的结束2.B-DEVICE通过DATA LINES 上的脉出来发送SRP3.A-DEVICE通过检测VBUS上的电压来确定SRP信号4.B-DEVICE检测新的SESSION是否有效1.SRP初始化条件首先,B-DEVICES只有在VBUS上的电压低于VOTG_SE

2013-11-07 18:31:17 2166

转载 usb协议深入理解

备份http://blog.csdn.net/myarrow/article/details/8484113

2013-11-06 14:03:07 1655

转载 android init中的service

android的init进程初始化的时候,除了对系统作一些必要的初始化外,就是启动service了。而service是定义在init脚本中的,故很有必要了解一下,init中对service的处理。struct service { /* list of all services */ struct listnode slist; const char *

2013-09-05 17:43:16 892

原创 DHCP原理介绍

DHCP分配的IP地址资源则具有时效性、是动态的,有利于提高IP资源的利用率DHCP使用UDP协议报头,服务器端口67,客户端端口68DHCP使用Request和Reply消息格式,DHCP的功能是依赖于报文的OPTION字段来进行实现的;DHCP报文介绍(续)DHCP报文直接借用了BOOTP的报文格式,其中的核心内容是OPTIONDHCP OPTION格式每个Op

2013-08-07 17:03:27 1037

转载 DHCP协议、报文,dhcpcd分析

第一部分 DHCP工作过程DHCP的工作过程主要分为以下六个阶段:     发现阶段,即DHCP客户端寻找DHCP服务器的阶段。DHCP客户端首先以广播方式发送DHCP DISCOVER发现信息来寻找DHCP服务器(因为DHCP服务器的IP地址对于客户端来说是未知的),即客户端向地址255.255.255.255发送特定的广播信息。请求信息主要包含客户端的网卡MAC地址还有客户端的计算

2013-08-07 16:07:08 1023

原创 usb_submit_urb流程分析

kernel version:3.0.08android version:4.1.1        一般是上层的功能驱动程序通过该函数想core提交urb,core会转递给控制器,控制器处理完urb后,会调用urb的回调函数,将urb控制权重新交给功能驱动程序。驱动程序会重新提交或者释放urb:int usb_submit_urb(struct urb *urb, gfp_t mem_

2013-06-24 11:14:26 5811

转载 使用lsusb命令查看系统中的USB设备

插入usb鼠标后执行lsusb的输出内容如下:-----------------------------------------Bus 005 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000

2013-03-25 15:53:59 2472 2

翻译 libusb-win32介绍

1.介绍这篇文档主要介绍libusb API工作的大致概况。适用于对usb2.0协议有一定了解的读者。如果对usb2.0不理解,可以从http://www.usb.org网站上下载usb2.0协议规格文档。libusb-0.1可以工作在linux、FreeBSD、NetBSD、OpenBSD、Darwin/Macos X、Solaris等操作系统下。libusb-win32的API不仅兼容li

2013-03-17 11:53:32 3956

转载 C++的try_catch异常

大部分内容转自:http://blog.csdn.net/codestinity/article/details/6877581 一、简单的例子首先通过一个简单的例子来熟悉C++ 的 try/catch/throw:1    #include                                 //包含头文件2    #include3    d

2013-02-25 09:11:34 708

空空如也

空空如也

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

TA关注的人

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