android 开发
文章平均质量分 75
_修_
平凡
展开
-
Android LCD(三):Samsung LCD接口篇
关键词:android LCD控制器 Framebuffer PWM 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos 4210、exynos 4412 、exynos 5250作者:xubin341719(欢迎转载,请注明作者)下载链接:LCD规格书(404份),之前工作用转载 2013-07-05 14:42:43 · 1607 阅读 · 0 评论 -
android 电容屏(一):电容屏基本原理篇
转载:http://blog.csdn.net/xubin341719/article/details/7820492关键词:android 电容屏 tp ITO 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsung exynos 4210) android 电容屏(一):电容屏基本原转载 2012-12-13 10:54:35 · 473 阅读 · 0 评论 -
android 电容屏(三):驱动调试之驱动程序分析篇
转载:http://blog.csdn.net/xubin341719/article/details/7833383关键词:android 电容屏 tp 工作队列 中断 坐点计算 电容屏主要参数平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsung exynos 4210) and转载 2012-12-13 11:00:09 · 856 阅读 · 0 评论 -
Android源代码简要分析
frameworks 目录 (核心框架——java及C++语言).|-- base (基本内容)| |-- api (?都是xml文件,定义了java的api?)| |-- awt (AWT库)| |-- build (空的)| |-- camera (摄像头服务程序库)| |-- cmds (重要命令:am、app_pro转载 2012-12-12 15:02:33 · 531 阅读 · 0 评论 -
MINI2440_BUTTON.C
#include #include #include #include #include #include #include #include #include #include #include #define DEVICE_NAME "buttons" /* 加载模式后,执行”cat转载 2012-09-21 16:29:47 · 1146 阅读 · 0 评论 -
s3c2410_gpio_cfgpin等内核导出函数
//这里面的函数都是内核导出函数/plat-s3c24XX/gpio.c中#include #include #include #include #include #include #include #include #include #include //设置gpio的工作模式,是输入,输出还是其他的//s3c2410_gpio_cfgpin(S3转载 2012-09-21 16:25:19 · 985 阅读 · 0 评论 -
Android HAL实现的三种方式(1) - 基于JNI的简单HAL设计
现在在Android上的HAL开发总的来说还是随意性比较大,Android也并没有规范好一个具体的框架,下面我将根据Jollen的Mokoid工程,自己做了一些改动,分别给大家介绍一下三种实现方式。这篇先介绍最简单的一种实现方式 - Java应用程序直接调用JNI库。由于JNI技术的存在,在Android中,java程序能够很好的调用C/C++库。我们这里设计一个简单的HAL,一共只有三层转载 2012-09-21 21:53:43 · 460 阅读 · 0 评论 -
s3c2410_gpio_getpin函数
unsigned int s3c2410_gpio_getpin(unsigned int pin){ void __iomem *base = S3C24XX_GPIO_BASE(pin); unsigned long offs = S3C2410_GPIO_OFFSET(pin); return __raw_readl(base + 0x04) & (1}转载 2012-09-21 16:26:57 · 5704 阅读 · 0 评论 -
request_irq函数
#include int request_irq(unsigned int irq, void (*handler)(int irq,void dev_id,struct pt_regs *regs), unsigned long flags, const char *device, void *dev_id); void free_irq(unsigned int ir转载 2012-09-21 16:30:42 · 1600 阅读 · 0 评论 -
s3c2410_gpio_cfgpin函数解析
函数原型:s3c2410_gpio_cfgpin(unsigned int pin,unsigned int function)位置:/linux-2.6.32.2/arch/arm/plat-s3c24xx/gpio.c函数内容:void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function){ void __转载 2012-09-21 16:23:59 · 537 阅读 · 0 评论 -
android 电容屏(二):驱动调试之基本概念篇
转载:http://blog.csdn.net/xubin341719/article/details/7833277关键词:android 电容屏 tp 工作队列 中断 多点触摸协议平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsung exynos 4210) 参考网站:http://ed转载 2012-12-13 10:57:42 · 496 阅读 · 0 评论 -
file_operations
struct file_operations{ struct module *owner; // 指向拥有该结构的模块的指针,避免正在操作时被卸载,一般为初始化为THIS_MODULES loff_t (*llseek) (struct file *, loff_t, int);转载 2012-12-21 10:32:15 · 444 阅读 · 0 评论 -
关于修改real210屏幕尺寸的问题解决
在开发板real210上,应用的android2.3,开发板自带的屏幕尺寸是7寸的,分辨率为800*480,现在,我想应用新屏幕,尺寸为9.7,分辨率为1024*768,修改的文件kernel/arch/ram/mach-s5pv210/mach-smdkc110.cdzh中的 #ifdef CONFIG_FB_S3C_LTE480WVstatic struct s3cfb_lcd lte48原创 2013-05-16 19:21:15 · 826 阅读 · 0 评论 -
Android LCD(二):LCD常用接口原理篇
关键词:android LCD TFT TTL(RGB) LVDS EDP MIPI TTL-LVDS TTL-EDP平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos 4210、exynos 4412 、exynos 5250作者:xubin341719(欢迎转载,请注明作者)转载 2013-07-05 14:41:09 · 1107 阅读 · 0 评论 -
Android LCD(四):LCD驱动调试篇
关键词:android LCD TFTSN75LVDS83B TTL-LVDS LCD电压背光电压平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos 4210、exynos 4412 、exynos 5250作者:xubin341719(欢迎转载,请注明作者)下载链接:LCD规格书(转载 2013-07-05 14:43:33 · 1465 阅读 · 0 评论 -
Android LCD(一):LCD基本原理篇
关键词:android LCD TFT 液晶 偏光片 彩色滤光片 背光平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:samsung exynos 4210、exynos 4412 、exynos 5250作者:xubin341719(欢迎转载,请注明作者)下载链接:LCD规格书(404份),之前转载 2013-07-05 14:39:27 · 998 阅读 · 0 评论 -
多点触控协议(MTP)
Multi-touch (MT) Protocol------------------------- Copyright (C)2009-2010 Henrik Rydberg Introduction------------In order to utilize the full power of thenew multi-touch and mul转载 2013-07-18 16:06:05 · 1173 阅读 · 0 评论 -
Linux驱动子系统之I2C(一)
主要是参考http://blog.csdn.net/cjok376240497/article/details/6972305,对I2C子系统讲解的很透彻的一篇文章,值得一读。1 硬件特性1.1 概述I2C总线是由Philips公司开发的两线式串行总线,这两根线为时钟线(SCL)和双向数据线(SDA)。由于I2C总线仅需要两根线,因此在电路板上占用的空间更少,带来的问题是带宽较窄。I2转载 2013-07-18 16:05:09 · 3641 阅读 · 0 评论 -
S5PV210 I2C设备驱动
对于一个i2c设备来说,其设备文件是最简单也是最复杂的,说它简单是因为很设备厂商会提供linux下的代码,这样就简单了;但是也有很多厂商它不提供或不完整提供linux下的代码,这样的话当然就复杂了。那么这个我现在这里就不说了,下面说说做了几个I2C设备(以ISA1200为例)后发现,不管设备文件如何总是要自己来做的一些事情,这大概就是所谓的移植吧。 当然这个工作都是在板文件中进行的转载 2013-06-25 11:16:37 · 1951 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植(10)之触摸屏工作原理以及驱动程序详细分析
编者:这部分还是比较长的,因此没有放在上个移植里面。这里主要说触摸屏的工作原理,以及对上述驱动程序代码的简单分析。分析中参考了网上的很多资料。感谢原作者的无私奉献,因为涉及多篇,在此就没有注出原作的链接。 本文分为三个部分,第一部分讲叙硬件知识,包括触摸屏的原理以及SCC2440 SOC 上的触摸屏是如何工作的。第二部分分析输入设备子系统的框架,并进行相应的代码分析。第三部分利用上述的原理转载 2013-06-08 10:37:36 · 935 阅读 · 0 评论 -
电容触摸屏驱动---基于FT5406
最近刚调试好郭泰的电容触摸屏,现记录下。 ft5406数据手册----------------------------------------------------------------------------------------cpu:s5pv210touch ic :FT5406 平台:android首先,分析下 FT5406 的基本电路接口:基本都转载 2013-06-03 16:49:22 · 3897 阅读 · 1 评论 -
FT5406触摸屏驱动
学习要点:1、驱动程序入口点,在哪个阶段被加载,如何调整驱动加载的先后;2、设备和驱动之间如何关联上;3、I2C总线的操作,I2C协议;4、电源管理,包括电源的申请、打开、待机处理等;5、Input设备的注册,事件的上报;6、多点触摸设备的事件,参数;7、方向调整;1.首先,分析下FT5406的基本电路接口[html] view plaincop转载 2013-06-03 16:52:56 · 2854 阅读 · 0 评论 -
字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()
1. 字符设备结构体 内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下: static struct char_device_struct { struct char_device_struct *next; // 指向散列冲突链表中的下一个转载 2012-09-19 09:36:16 · 459 阅读 · 0 评论 -
在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务
在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行。今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两个系统上有着丰富多彩的各种应用软件。因此,软件和硬件的关系,在一定程度上可以说,硬件是为软件服务的。硬件工程师研发出一款硬件设备,自然少了软件工程师为其编写驱动程序;而驱动程序的最终目的,是为了使得最上层的应用程序能够使用这些硬件提供的服务来为用户提供软件功转载 2012-08-20 10:13:40 · 446 阅读 · 0 评论 -
在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简要介绍了在Android系统为为硬件编写驱动程序的方法。简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的硬件抽象层中。接着,在Ubuntu上为Android系统编写Linux内核驱动程序一文中举例子说明了如何在Linux内核编写驱动程序。在这一篇文章中,我们将继续介绍Android系统硬件驱动程序的另一转载 2012-08-20 10:08:58 · 508 阅读 · 0 评论 -
为Android系统内置Java应用程序测试Application Frameworks层的硬件服务接口
我们在Android系统增加硬件服务的目的是为了让应用层的APP能够通过Java接口来访问硬件服务。那么, APP如何通过Java接口来访问Application Frameworks层提供的硬件服务呢?在这一篇文章中,我们将在Android系统的应用层增加一个内置的应用程序,这个内置的应用程序通过ServiceManager接口获取指定的服务,然后通过这个服务来获得硬件服务。转载 2012-08-20 10:17:25 · 700 阅读 · 0 评论 -
为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口
在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务。我们知道,Android系统的应用程序是用Java语言编写的,而硬件驱动程序是用C语言来实现的,那么,Java接口如何去访问转载 2012-08-20 10:11:20 · 431 阅读 · 0 评论 -
在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序
在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序。在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello、proc系统文件/proc/hello和devfs系统属性文件/sys/class/hello/hello/val。进一步,还通过cat命令来直接访问/proc/hello和/转载 2012-08-20 10:03:31 · 682 阅读 · 0 评论 -
在Ubuntu上为Android系统编写Linux内核驱动程序
在智能手机时代,每个品牌的手机都有自己的个性特点。正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了。据统计,截止2011年5月,AppStore的应用软件数量达381062个,位居第一,而Android Market的应用软件数量达294738,紧随AppStore后面,并有望在8月份越过AppStore。随着Android系统逐步扩大市场占有率,终转载 2012-08-20 09:46:03 · 650 阅读 · 0 评论 -
LINUX设备驱动之设备模型五--device&driver&bus
-----------------------------------------------------------------本站分析linux内核源码,版本号为2.6.32.3转载请注明出处:http://ericfang.cublog.cn/-----------------------------------------------------------------接上转载 2012-08-20 09:36:57 · 619 阅读 · 0 评论 -
LINUX设备驱动之设备模型四--device&driver&bus
-----------------------------------------------------------------本站分析linux内核源码,版本号为2.6.32.3转载请注明出处:http://ericfang.cublog.cn/-----------------------------------------------------------------接上转载 2012-08-20 09:35:42 · 817 阅读 · 0 评论 -
Android驱动例子(LED灯控制)
本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开发流程的应用调用流程,可以说是很好的入门引导。要达到的效果:通过android的应用,调用驱动程序,在开发板上控制4个LED的亮灭。 一、硬件原理 如上图,通过4个IO口控制这LED,低电平L转载 2012-07-10 21:16:52 · 464 阅读 · 0 评论 -
Android硬件抽象层(HAL)概要介绍和学习计划
Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,转载 2012-08-20 09:39:51 · 418 阅读 · 0 评论 -
Android从驱动层到应用程序层的通信
研究一下Android从驱动层到应用层的通信机制是很有必要的,如新增加一个硬件并在应用层去控制硬件都需要用到,目的是知道需要增加哪些东西删改哪些东西而让系统依然工作正常。总共需要增改的有四个东西,驱动、服务(jni、java)、应用apk采用的方式是在驱动层写个字符型设备驱动其中内含一个定时器,每隔2秒发送一个uevent事件并改变sys下相关文件的内容,然后建立一个服务去读取文件并通过i转载 2012-08-25 10:15:37 · 2502 阅读 · 0 评论 -
Linux设备模型基础---操作函数
关于kref的操作函数初始化?voidkref_init(structkref *kref){atomic_set(&kref->refcount, 1); mp_mb();}注意smp_mb以及smp_mb_*的目的是保证在多核SMP机器上的一致性,初始化后引用计数转载 2012-09-10 15:23:02 · 595 阅读 · 0 评论 -
烦躁期
最近学习android驱动还没见的怎么起步就又开始烦躁了,越学越觉得不懂的太多。看过的会忘,没看过的都不知道,连思考的余地都没有。面对师兄的提问,不懂的自不必说了,就连简单的都转不过来弯,进度慢的要死,真怀疑我是不是没这脑子。应该把问题弄得越来越简单才对,我怎么越弄越复杂,搞的自己都头大了。这样熬下去也不是办法。困难还是要面对,问题还是要解决,克服烦躁期,按照kiss原理,跟它死磕!原创 2012-10-09 10:15:03 · 568 阅读 · 0 评论 -
I/O驱动相关__raw_readl和__raw_writel
1.S3C2410_GPB5是端口编号,定义在regs-gpio.h中,#define S3C2410_GPIO_BANKB (32*1)#define S3C2410_GPIONO(bank,offset) ((bank) + (offset))#define S3C2410_GPB5 S3C2410_GPIONO(S3C2410_GPIO_BANKB, 5)转载 2012-09-14 15:50:37 · 1867 阅读 · 0 评论 -
linux驱动学习笔记(linux驱动头文件说明)
#include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。#include在linux-2.6.31_TX2440转载 2012-09-14 15:46:27 · 885 阅读 · 0 评论 -
__iomem
__iomem是linux2.6.9内核中加入的特性。是用来个表示指针是指向一个I/O的内存空间。主要是为了驱动程序的通用性考虑。由于不同的CPU体系结构对I/O空间的表示可能不同。当使用__iomem时,编译器会忽略对变量的检查(因为用的是void __iomem)。若要对它进行检查,当__iomem的指针和正常的指针混用时,就会发出一些警告。A new I/O memory access转载 2012-09-14 10:06:20 · 807 阅读 · 0 评论 -
JNI学习之步步深入二
JNI为了扮演在c/c++和java之间的匹配工作,它首先需要做的就是既要认识java中的数据类型,也要认识c/c++中的数据类型。这时,jni就相当于一个适配者了。好比,A与C两个人本来不认识,可是现在B认识A,B也认识C,那么通过C的指引和介绍,A和C就认识了! 那么jni如何做到既认识C/C++,也认识java呢?其实很简单,一张匹配表足矣,见图! 1、原始数据类型的匹转载 2012-09-13 10:51:51 · 341 阅读 · 0 评论