- 博客(28)
- 收藏
- 关注
原创 linux 驱动调试时在线读写I2C寄存器的方法
调试I2C设备时经常需要修改寄存器的值,通常的方法是修改-》编译-》烧写-》重启,哪怕改一个寄存器也要这样折腾一下,很消耗时间,下面提供一种在线修改寄存器的方法,在终端中敲命令就可以写寄存器,不要上面那些步骤. 这个方法的基础是读写/proc文件系统,不熟悉这个的可以自行学习,下面分步骤说明一下这种方法,注意这只是一个框架如果相拥在自己的系统上可能还有一些细要适配。1.创建/pr
2012-11-07 10:41:49
7052
1
原创 android中camera的hal模块怎么被调用
CameraService.cpp (frameworks\base\services\camera\libcameraservice)中调用hw_get_modulevoid CameraService::onFirstRef(){ BnCameraService::onFirstRef(); if (hw_get_module(CAMERA_HARDWARE
2012-08-06 11:51:08
5819
转载 android4.0与2.3版本的触摸屏驱动调试注意
转自搜索到的一篇blog,他没有注明转载出处,我也没法写出处了,对原创作者隔空说一声抱歉。android4.0与2.3版本的TP代码区别在android2.3上调试TP时,只需要把linux驱动调通,android就可以正常使用了,而到android4.0上又有些不同了,针对linux驱动,需添加如下内容: 1、在手指按下时需调用如下函数上报Key Down:
2012-03-23 17:18:11
8351
2
原创 在android 4.0上开发触摸设备驱动需要注意的几点
android 4.0已经渐渐流行,很多方案都已经基于其上,android 4.0的linux内核版本已经更新为linux 3.0,这个变化导致和内核直接接触的驱动需要或多或少的变化,以下描述的是触摸设备驱动的一些小变化:1.当一个(这时候的情境应该是多点触摸的情况)手指或是触摸工具抬起(UP)时,他应该立即消失在多点出没的同步报告中,当所有的工具或手指抬起,驱动应该立即发送一个“空”同步
2012-03-23 14:53:37
5349
原创 Android中添加USB键盘的CapsLock键
Android平板的硬件越来越强大屏幕越来越大,大家希望按照使用PC的习惯来使用它,如果要在平板上进行大量的文字输入使用虚拟按键简直就是折磨自己,USB键盘才是正常的输入设备,下面的文章记录了调试键盘中对CapsLock按键添加的过程。 国际标准USB键盘的所有的按键在linux中已经有键值了在文件external/qemu/linux_keycodes.h,比如capslock没有
2012-01-10 16:50:17
4192
转载 Android源码学习之七—传感器的背后
SensorActivity.java<br />在应用程序中使用传感器需要用到hardware包中的SensorManager、SensorListener等相关的类,具体的实现代码如下:<br />publicclass SensorActivity extends Activity {<br /> privatestaticfinal String TAG="SensorActivity";<br /> SensorManager mySM;<br /> SensorListen
2011-04-19 16:06:00
1250
转载 Linux 内核驱动--多点触摸接口
译自:linux-2.6.31.14/Documentation/input/multi-touch-protocol.txt简介 为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据。这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报任意多指的数据信息。 使用说明 单点触摸信息是以ABS承载并按一定顺序发送,如BTN_TOUCH、ABS_X、ABS_Y、SYNC。而多点触摸信息则是以ABS_MT承载并按一定顺序发送,如ABS_MT_POSITION_X、ABS
2011-03-05 19:55:00
8692
1
转载 msm7227平台linux I2C驱动分析(2.6.29)
Revision HistoryDate Issue Description Author Msm7227平台I2C驱动分析 滕景东 目录1. 摘要 32. 简介 33. I2C架构 34. I2C总线初始化 45. I2C适配器驱动 56. I2C设备驱动 97. 用户空间驱动支持 128. 数据传输框架 169. References 161. 摘要主要介绍Msm7227平台上I2C驱动原理,多数部分是29内核标准架构。2. 简介I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL
2011-02-23 20:42:00
1186
转载 关于中断处理程序中的关中断函数disable_irq和disable_irq_nosync
disable_irq关闭中断并等待中断处理完后返回, 而disable_irq_nosync立即返回. 那么在中断处理程序中应该使用哪一个函数来关闭中断呢?在<linux设备驱动开发详解>中的按键驱动中, 使用disable_irq来关闭中断, 但是我在测试时进入中断后系统会死在中断处理程序, 而改为disable_irq_nosync则能正常退出中断处理程序.下面从内核代码来找一下原因:先看一下disable_irq_nosync,内核代码中是这样解释的:<br />/**<br /> * dis
2011-02-23 12:33:00
1901
转载 linux驱动中probe函数何时被调用?[转]
linux驱动中probe函数何时被调用?[转]<br />声明:以下主要内容参考自:<br />关于struct device_driver结构中的probe探测函数的调用<br />http://blog.chinaunix.net/u2/71164/showart.php?id=1361188<br /><br />用SourceInsight跟踪:<br />从driver_register看起,此处我的这里是:<br />int driver_register(struct device_driv
2011-02-20 00:11:00
2194
转载 对通用输入输出GPIO的深入理解
对通用输入输出GPIO的深入理解<br />ARM技术2009-10-31 10:14:39阅读1评论0 字号:大中小 订阅一.GPIO简介<br /> I/O(Input/Output)接口是一颗微控制器必须具备的最基本外设功能。通常在ARM里,所有I/O都是通用的,称为 GPIO(General Purpose Input/Output)。每个GPIO端口包含8个管脚,如PA端口是PA0~PA7。GPIO模块支持多个可编程输入/输出管脚(具体取决于与 GPIO复用的外设的使用情况)。GP
2011-02-20 00:10:00
2709
原创 s3c2410触摸屏驱动(2.6内核)分析
s3c2410触摸屏驱动(2.6内核)分析s3c2410触摸屏驱动(2.6内核)分析 驱动不是很多,在此把它贴出来然后加上必要的注释:<br /><br />#include <linux/config.h><br />#include <linux/errno.h><br />#include <linux/kernel.h><br />#include <linux/module.h><br />#include <linux/slab.h><br />#include <linux/input.h
2011-01-23 23:00:00
872
转载 android g-sensor相关流程
<br />1.使G-sensor正常工作需要做的事:<br /><br />G-sensor driver文件包括:<br /><br />driver/i2c/chips/lis331dl.c<br />driver/i2c/chips/sensorioctl.h<br />include/linux/lis331dl.h<br /><br />并在/kernel/arch/arm/mach-s3c6410/mach-ur6410.c文件中i2c chanel1的结构变量i2c_devs1[] __in
2011-01-22 20:27:00
1070
转载 Android如何生成设备节点
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://buaadallas.blog.51cto.com/399160/394350在Android中,由于没有mdev和udev,所以它没有办法动态的生成设备节点,那么它是如何做的呢?我们可以在system/core/init/下的init.c和devices.c中找到答案:init.c中int main(int argc, char **argv) { ... /*
2011-01-22 19:12:00
1434
转载 再谈怎么理解双指针 **
原文出处http://blog.youkuaiyun.com/feiyinzilgd/archive/2011/01/14/6138438.aspx 之前我写过一篇博客《深入理解双指针》,最近也再次重温《C++ Primer》读到指针那一章节的时候,度C/C++指针又有了新的领悟。《C++ Primer》中强调了一个指针解引用的概念。究竟什么是解引用呢?为了解释解引用这个概念,我引用《C++ Primer》中的一段话:When we dereference a pointer, we obtain the object
2011-01-19 15:46:00
1823
转载 怎么理解指向指针的指针(双指针 **)
深入理解双指针原文出处http://blog.youkuaiyun.com/feiyinzilgd/archive/2010/02/09/5302369.aspx-------------------------------------------------------------------------------- 对于C语言的参数传递都是值传递,当传传递一个指针给函数的时,其实质上还是值传递,除非使用双指针。 在讲双指针之前,还是先讲讲关于C语言函数调用的本质。函 数调用操作包括从一块代码到另
2011-01-19 15:44:00
2334
转载 select()和fd_set (设计多sensor的hal时使用)
select()和fd_set select()函数主要是建立在fd_set类型的基础上的。fd_set(它比较重要所以先介绍一下)是一组文件描述字(fd)的集合,它用一位来表示一个fd(下面会仔细介绍),对于fd_set类型通过下面四个宏来操作: fd_set set; FD_ZERO(&set); /* 将set清零使集合中不含任何fd*/ FD_SET(fd, &set); /* 将fd加入set集合 */ FD_CLR(fd, &set); /
2011-01-16 22:07:00
1006
转载 Android中G-Sensor相关流程
Android中G-Sensor相关流程(2011-01-10 11:11:33)转载标签:杂谈Android中G-Sensor相关流程1.使G-sensor正常工作需要做的事:G-sensor driver文件包括:driver/i2c/chips/lis331dl.cdriver/i2c/chips/sensorioctl.hinclude/linux/lis331dl.h并在/kernel/arch/arm/mach-s3c6410/mach-ur6410.c文件中i2c chanel1的结构变量i2
2011-01-16 21:29:00
993
原创 透过HAL(硬件抽象层)看顶层API是如何访问硬件
透过HAL(硬件抽象层)看顶层API是如何访问硬件(2011-01-10 11:17:21)转载标签:杂谈透过HAL(硬件抽象层)看顶层API是如何访问硬件 文章导读:HAL硬件抽象层的实现及架构、Android API 与硬件平台的衔接、NDK的一些看法。简介:Hardware Abstraction Layer硬件抽象层是一个轻量级(lightweight)的的运行环境,提供了简单的设备驱动程序接口,应用程序使用设备驱动程序与底层硬件之间进行通信。HAL应用程序接口和ANSIC标准库结合在
2011-01-16 21:27:00
1795
转载 Android Sensors Development
Android Sensors Development Android系统的传感器系统,为开发者提供了统一的程序框架来实现系统中的多个传感器功能,比如:加速度传感器,磁力传感器,温度传感器,压力传感器。google已经为我们完成了JNI和Java部分,并且提供了底层的程序框架。所以 Android的Sensor部分主要工作集中在了 $(YourDroid)/hardware/libhardware/modules/sensors/sensors.c文件编写。 打开$(YourDroid)/har
2011-01-16 21:24:00
2577
转载 详解Linux2.6内核中基于platform机制的驱动模型
原文地址:http://blog.youkuaiyun.com/sailor_8318/archive/2010/01/29/5267698.aspx【摘要】本文以Linux 2.6.25 内核为例,分析了基于platform总线的驱动模型。首先介绍了Platform总线的基本概念,接着介绍了platform device和platform driver的定义和加载过程,分析了其与基类device 和driver的派生关系及在此过程中面向对象的设计思想。最后以ARM S3C2440中I2C控制器为例介绍了基于platf
2010-11-26 15:42:00
739
转载 platform设备驱动全透析
<br />原文地址 http://blog.donews.com/21cnbao/archive/2010/07/14/1581997.aspx<br /> 1.1 platform总线、设备与驱动在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每 注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2
2010-11-25 22:05:00
519
原创 Android底层和中间层共同学习系列之android键盘映射
<br />介绍<br />功能<br />键布局映射<br /> 键映射的选择<br /> 文件格式<br /> 键布局映射文件示例<br />键字符映射<br /> 键字符映射的选择<br /> 文件格式<br /> 资源二进制文件格式<br /><br />完善您自己的驱动<br />示列<br /><br /><br />介绍:<br /> 本文主要描述了键输入怎么转换成Android应用层的行为信息和怎样自
2010-11-08 14:53:00
1137
转载 Android键盘研究初步
Android基本键盘驱动采用了Linux的input和event机制 对于Linux内核主要是这个驱动drivers/input/keyboard/gpio_keys.c 这有篇分析文章 http://www.cnitblog.com/luofuchong/archive/2007/11/12/36157.html 而内核中通过platform机制将按键信息注册进系统: /Android基本键盘驱动采用了Linux的input和event机制对于Linux内核主要是这个驱动drivers/in
2010-11-08 14:52:00
2409
1
转载 输入子系统--event层分析
<br />#####################################################################################################<br />早前曾研究了一下输入子系统的原理,给人的感觉是输入子系统很复杂.但其实内核开发者在这方面已经做得很完善了,<br />输入子系统虽然错综复杂,但是只要我们领会了输入子系统的一些设计思想后,我们要使用它并非难事.<br /><br />以下以内核自带的gpio_keys驱动为例,介绍输入
2010-11-08 14:45:00
501
转载 copy_to_user和copy_from_user两个函数的分析
<br />在内核的学习中会遇到很多挺有意思的函数,而且能沿着一个函数扯出来很多个相关的函数。copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇到的两个函数。由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user()完成用户空间到内核空间的复制,函数copy_from_user()完成内核空间到用户空间的复制。下面我们来仔细的理一下这两个函数的来龙去脉。<br />首先,我们来看一下这两个函数的在源码文件中是如何定义的:<br />~/a
2010-11-08 09:45:00
840
转载 _IO, _IOR, _IOW, _IOWR 宏的用法与解析
<br />_IO, _IOR, _IOW, _IOWR 宏的用法与解析<br />在驱动程序里, ioctl() 函数传送的参量 cmd (ioctl号)是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:<br />bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。<br />bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送的内存
2010-11-08 09:42:00
821
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人