自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Allen.Yao的专栏

Android linux 学习

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

转载 typedef用法

在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。目录1定义2用法总结3语言用法4代码简化5平台开发1定义typed

2013-12-05 22:17:54 620

原创 tslib官方网站

https://github.com/kergoth/tslib

2013-12-05 15:17:04 6432

转载 linux触摸屏touch screen调用测试程序

linux触摸屏touch screen调用测试程序[cpp] view plaincopy#include   #include     static int event0_fd = -1;  struct input_event ev0[64];    static int handle_event0()  {

2013-12-05 15:15:36 5050

转载 Tslib的编译和触摸屏测试

1.编译前段时间非常的郁闷…因为在运行生成校准程序ts_calibrate时总是出现一个错误:ts_open:Inappropriate ioctol for device后来无数折腾后经过nanfansky指点才知道是自己板子的触摸屏驱动不支持ioctl操作,狂汗…重新编译tslibcd tslib-1.3export CC=/usr/local/arm/3.

2013-12-05 15:13:15 2437

转载 Linux移植随笔:终于解决Tslib的问题了

前段时间让Tslib搞晕头了,原来一切都是版本惹的祸。本文只是一个随笔,随笔者,随意用笔写下心得而已,因此不必较真。正如我所欣赏的“乘兴而来,兴尽而返”一样。——估计当年王子猷是赏完了夜景,兴致也完了,就回家了。闲话少提。搞tslib时,出现了许多错误,像No raw modules loaded.ts_config: Successselected dev

2013-12-05 15:10:12 2316

转载 Linux移植随笔:对tslib库的ts_test测试程序代码的一点分析

本文是作者对tslib库的ts_test.c文件进行分析的随笔,其实tslib的几个测试程序结构差不多,譬如ts_print.c和ts_print_raw.c等。本文并没有涉及太多概念,也没有详细介绍这些概念,但并不代表作者对此不了解,也不代表作者对此很精通。如文中提到的input,虽只出现一个单词,但是相信许多人都知道它在文中指的是Linux操作系统下的input子系统,该子系统不简单,

2013-12-05 15:08:09 3822

转载 Linux 工作队列和等待队列的区别

work queue是一种bottom half,中断处理的后半程,强调的是动态的概念,即work是重点,而queue是其次。wait queue是一种「任务队列」,可以把一些进程放在上面睡眠等待某个事件,强调静态多一些,重点在queue上,即它就是一个queue,这个queue如何调度,什么时候调度并不重要。对这2个容易混淆的队列做简单概念上的区别,怎么用? 

2013-12-05 15:04:22 2911

转载 linux内核工作队列讲解和源码详细注释

1. 前言  工作队列(workqueue)的Linux内核中的定义的用来处理不是很紧急事件的回调方式处理方法。  以下代码的linux内核版本为2.6.19.2, 源代码文件主要为kernel/workqueue.c.  2. 数据结构  /* include/linux/workqueue.h */ // 工作节点结构struct work_struct { /

2013-12-05 15:01:52 1810

转载 tasklet、工作队列 - [linux内核]

注:软中断、tasklet、工作队列、等待队列、完成量关系tasklet 依靠 软中断实现工作队列[工作者线程可能睡眠在该cpu的工作队列->wait_queue_head_t中]、完成量 依靠 等待队列实现工作队列[queue_delayed_work]、等待队列[等待资源指定时间]、完成量[等待操作指定时间] 依靠 时间管理1  tasklet原理和执行切入点tasklet

2013-12-05 14:59:58 1305

原创 FT5316调试记录

这个敦泰tp芯片的调试,没什么大问题,但也做一些记录。1.这个芯片理论上可以支持10手指,但为了兼容他们之前的做法,现在只是汇报了第一个手指的坐标点,相当于只是单点。2.这个芯片提供三种工作模式,通过设置寄存器0,可以在不一样的工作模式下工作;默认寄存器0的值为0,即正常操作模式,在这个模式下可以读取按键坐标;  通过内核API  i2c_transfer,可以一次性读取多个寄存器。

2013-12-05 14:45:32 6211 1

转载 input子系统分析

一、input子系统概述在linux下,按键、触摸屏、鼠标等都可以利用input接口函数来实现设备驱动。1,linux输入子系统主要分三层: 驱动,输入CORE, 事件处理层。驱动根据CORE提供的接口,向上报告发生的按键动作。然后CORE根据驱动的类型,分派这个报告给对应的事件处理层进行处事。事件处理层把数据变化反应到设备模型的文件中(事件缓冲区)。并通知在这些设

2013-12-04 10:59:50 844

转载 linux子系统分析及触摸屏驱动浅析

前段时间负责项目的触摸屏和光电鼠标,都是输入设备,看了会这方面的资料,结合项目代码,做点总结,基本上来自个人理解和互联网 在linux2.6以后,linux对输入设备进行了抽象,抽象出了输入子系统,该系统(Input子系统)是所有I/O设备驱动的中间层,为上层提供了一个统一的界面,将事件的上报和处理分离开,采用了分层模式,在我们的driver中,我们只需要关注事件的上报,其他的都由

2013-12-04 10:51:47 1177

转载 linux 触摸屏驱动分析

mini2440驱动分析系列之---------------------------------------Mini2440触摸屏程序分析By JeefJiang July,8th,2009这是mini2440驱动分析系列的第三篇文章,本文分为三个部分,第一部分讲叙硬件知识,包括触摸屏的原理以及SCC2440 SOC上的触摸屏是如何工作的。第二部分分析输入设备子系统的框架,并进行相应的

2013-12-04 10:46:21 2011

转载 linux 触摸屏驱动分析

mini2440驱动分析系列之---------------------------------------Mini2440触摸屏程序分析By JeefJiang July,8th,2009这是mini2440驱动分析系列的第三篇文章,本文分为三个部分,第一部分讲叙硬件知识,包括触摸屏的原理以及SCC2440 SOC上的触摸屏是如何工作的。第二部分分析输入设备子系统的框架,并进行相应的

2013-12-04 10:44:50 898

转载 定义函数指针

1  定义一个函数指针且不论语法,有两种不同形式的指针函数: 一个是指向普通的C函数的指针和C++的静态成员函数,另外一个是指向C++的非静态成员函数的指针。这两者的基本区别是所有指向非静态成员函数的指针都 需要这个隐含定义:指向本类的一个This指针。注意:这两种函数指针彼此不兼容。既然一个函数指针实际上和一个变量没有什么区别,定义它的时候也就没有什么特殊。下面的例子中我们定义3个函

2013-12-04 00:58:14 755

转载 结构体的定义以及使用

结构的定义定义一个结构的一般形式为:struct 结构名{成员表列}成员表由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明。例如:struct stu{int num;char name[20];int age;}结构类型变量的说明结构体定义并不是定义一个变量,而是定义了一种数据类型,这种类型是你定义的,

2013-12-04 00:51:17 784

转载 指针函数与函数指针的区别

一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针     类型标识符    *函数名(参数表)      int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变

2013-12-04 00:43:04 586

转载 安装tslib中遇到的错误:./autogen.sh: 4: autoreconf: not found

./autogen.sh: 4: autoreconf: not found  是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是因为没有安装  automake 工具,      (ubuntu 8.04)用下面的命令安装好就可以了。  sudo apt-get install autoconf automake libtool

2013-12-03 15:09:48 849

原创 variable `xxx' has initializer but incomplete type

说明xxx对应的类型没有找到,类型需要定义.static struct i2c_driver touchkey_i2c_driver  ={.driver = {.owner = THIS_MODULE, .name = "i2ctouchpannel",},.probe = &i2ctouchpannel_probe,.remove = &i2ct

2013-11-28 18:17:55 11141

转载 LCD rgb接口如何区分cmd和data?

LCD rgb接口如何区分cmd和data?都是通过spi写入LCD module,都是8bit,如何区分是cmd还是data?两个接口如下:以下内容为程序代码:static void ILI9481ds_spi_write_reg_byte(u8 val){int i; gpio_set_value(spi_cs, 0);g

2013-11-27 14:35:46 2760

转载 IO模拟SPI接口程序

ioui  #include #include #include  sbit SCLK  = P1^7;        sbit MISO  = P1^6;    //SDOsbit CS = P1^4;  typedef unsigned char INT8U;  /* 8 bit 无符号整型 */typedef unsigned in

2013-11-27 14:11:22 1260

转载 用GPIO模拟SPI协议的实现

用GPIO模拟SPI协议的实现一 SPI协议概括SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只

2013-11-27 14:09:33 2011

转载 SPI

SPI是各种信息技术的英文缩写目 录1基本协议1.1 1)协议概括1.2 2)协议举例2用户逻辑3SPI原理4绩效指数5多义性6时序图7通信 概念7.1 2.1、SPI:高速同步串行口7.2 2.2、接口的硬件连接示意图7.3 2.3、性能特点

2013-11-27 14:07:35 1356

转载 SPI 三线与四线区别总结

关于SPi协议的三线和四线区分一直都比较疑惑.今天总结一下.在维基网上有如下一段话:Three-wire serial buses As mentioned above, one variant of SPI uses single bidirectional data line (slave out/slave in, called SISO) instead

2013-11-27 13:44:48 8027

转载 把内存当硬盘使,让你的linux程序运转如飞(在linux下用firefox在线写csdn的blog再也不卡了)

首先说一下核心的命令:  mount -t tmpfs -o size=1024m tmpfs /mnt/ram这个命令开了一块1G内存来当目录用。不过放心,如果里面没文件,是不会占用内存的,用多少占多少。当然,你可以在/etc/fstab中加一行语句,挂载一个点。tmpfs              /var/tmp    tmpfs  size=768M,mod

2013-11-21 18:20:00 2170

转载 Linux把内存挂载成硬盘,提高读写速度

tmpfs是一种虚拟内存文件系统正如这个定义它最大的特点就是它的存储空间在VM里面,这里提一下VM(virtual memory),VM是由linux内核里面的vm子系统管理,现在大多数操作系统都采用了虚拟内存管理机制。linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由你自己决定的。Swap是通过硬盘虚拟出来的内存空间,因此它

2013-11-21 18:15:51 3370

转载 /dev/zero和/dev/null的区别

使用/dev/null 把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.禁止标准输出.    1 cat $filename >/dev/null2 # 文件内容丢失,而不会输出到标准输出.禁止标准错误 (来自例子 12-3)

2013-11-21 18:07:40 1493

转载 利用/dev/zero创建虚拟硬盘

利用 /dev/zero 创建虚拟硬盘 /dev/zero 是Linux下的一个特殊设备,每次对它读一次它就对外输出一个字节(用编辑器查看全部都是“0”),现在来做一个10M的数据文件,然后有file命令来查看 [root @xx ~]# dd if=/dev/zero of=hd.img bs=1k count=10000[root @xx ~]# fil

2013-11-21 18:05:53 941

转载 Linux USB gadget设备驱动解析(4)--编写一个gadget驱动

分类: LINUX作者:刘洪涛,华清远见嵌入式学院讲师。一、编写计划通过前面几节的基础,本节计划编写一个简单的gadget驱动。重在让大家快速了解gadget驱动结构。上节中简单介绍了zero.c程序。这个程序考虑到了多配置、高速传输、USB OTG等因素。应该说写的比较清楚,是我们了解gadget驱动架构的一个非常好的途径。但把这些东西都放在一起,对很多初学人员来

2013-11-21 17:02:36 4604

转载 USB gadget设备驱动解析(3)

分类: LINUX作者:刘洪涛,华清远见嵌入式学院讲师。Linux USB 设备端驱动有两部分组成。一部分是USB 设备控制器(USB Device Controller, UDC)驱动、另一部分是硬件无关的功能驱动(如:鼠标、u盘、usb串口、usb网络等);也可以分为3层的,分别是:Controller Drivers、Gadget Drivers、Upper

2013-11-21 17:00:59 1333

转载 Linux USB gadget设备驱动解析(2)---驱动调试

分类: LINUX作者:刘洪涛, 华清远见嵌入式学院金牌讲师。这一节主要把在实现“linux模拟U盘功能”过程中的一些调试过程记录下来,并加以解析。一、背景知识     1、USB Mass Storage类规范概述        USB 组织在universal Serial Bus Mass Storage Class Spaceificat

2013-11-21 16:59:47 1673

转载 USB gadget设备驱动解析(1) [精华]

分类: LINUX作者:刘洪涛,华清远见嵌入式学院金牌讲师。利用Linux USB gadget设备驱动可以实现一些比较有意思的功能,举两个例子: 1、一个嵌入式产品中的某个存储设备,或是一个存储设备的某个分区,可以作为一个U盘被PC;设别,从而非常方便的完成文件交互,这个功能被广泛的应用于手机、数码相机等产品中。2、一个嵌入式设备通过USB连接到你的PC后,在

2013-11-21 16:57:58 1611

转载 USB DEVIEC MASS STORAGE:(linux2.6.16mxc)

分类: LINUX/drivers/usb/gadget/arcotg_udc.c (refer to freescale iMX31 datasheet)module_init, module_exit注册和注销模块就不多说了。从platform driver说起:static struct platform_driver udc_driver = {  

2013-11-21 16:55:55 1185 1

转载 Linux2.6内核usb gadget驱动移植

Linux2.6内核usb gadget驱动移植在写之前恶补一点usb slave端的知识在kernel 2.4版本中,嵌入式USB驱动是在kernel/arch/arm目录下的ep0.c  ep**.c, 在调试USB驱动的时候比较难,主要是如果在中断了加太多的printk, 会影响USB的时序,导致枚举就失败或不停地USB reset。 在kernel 2.6版本中,USB的驱

2013-11-21 16:50:38 1596

转载 File-backed Storage Gadget

File-backed Storage GadgetFile-backed Storage implements the USB Mass Storage class (as CB, CBI, or BBB), appearing to the host as a SCSI disk drive. This uses a file or block device as a backin

2013-11-21 14:24:57 2317

转载 Linux下USB从(USB gadget) 驱动配置与使用

Linux下USB从(USB gadget) 驱动配置与使用[日期:2011-09-24]来源:Linux社区  作者:xdw1985829[字体:大 中 小]S3C2440提供了一个USB从接口,我们可以使用它来把2440模拟为一个U盘,直接从电脑上以盘符的形式访问2440一、内核配置USB SUPPORTU

2013-11-21 14:23:10 2304

原创 dd命令

dd命令编辑目 录1dd命令的解释。1.1 定义1.2 参数2dd应用实例。1dd命令的解释。定义dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。参数

2013-11-21 14:20:38 1171

原创 待处理事情三

以太网驱动框架1。主控如何操作以太网芯片的???    蒙工的说法是我们主控把以太网芯片当做是一块内存来操作,所以数据线是和nandflash复用的;操作寄存器的时候,也是操作这个内存的地址就可以了。2.如何操作寄存器。                   通过查看硬件,发现是通过通过cmd线的高低来决定是写地址还是写数据;这就要查看设备这边传进来的内存资源,其实是通过操作两个不一样的内存

2013-11-16 00:22:31 876

转载 iMX6q 音频系统调试

http://blog.sina.com.cn/s/blog_71e5db15010103op.htmlALSA的驱动很宏大,哪天一定要写一个完整的分析首先说,3.0以后对音频管理的调整实在是很不错,结构明显清晰多了sound/soc/soc-core.c是整个音频体系的核心,用于串联所有的模块。模块包括两部分,SSI部分和i2c部分,前者负责数据,后者负责控制,通过dai

2013-11-13 11:48:43 5250

转载 tlv320aic3110在Freescale Mx6q上的调试

这个芯片调试过程中最主要的是要搞清楚几个芯片的协作状态CPU与tlv320aic3110的连接有三个,时钟源,I2C控制信号和IIS的数据通路。tlv320aic3110的时钟源是由CPU提供的I2C通信传递的是对芯片的控制信号,用于管理芯片的工作状态,音量,耳机状态等IIS是数据通路,通过DMA的方式传送音频数据。在数据传送中,DMA是由tlv320aic3110发起

2013-11-13 11:47:14 3496

空空如也

空空如也

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

TA关注的人

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