自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (3)
  • 收藏
  • 关注

转载 android万能驱动制作方法

做android经常碰到某个手机找不到adb 驱动,或者为了适配装了N多驱动,其实有很简单的方法解决 以官方的google android 驱动作为蓝本,把自己的设备加进去就可以了 准备记事本 打开extra\usb_driver\android_winusb.inf 看到下面的信息,相信一般有程序员素质的都能找到规律修改 [Google.NTx86] ; HTC Drea

2012-08-27 18:53:38 4084

原创 蓝牙驱动层调用流程

通过上层应用或者adb tool调用bt_enable,可以打开蓝牙进行相关调试工作,这里就从bt_enable开始对相关蓝牙和服务的启动情况作个简单的说明。 1,Bluetooth.c文件中Bt_enable(){…//rfkill机制给蓝牙上电Set_bluetooth_power(1);//启动hciattach服务,串口服务Property_set(“ctl

2012-08-27 18:28:52 3705

原创 蓝牙配电文件分析

1,首先分析Msm_bluetooth_power_init()初始化函数该函数中首先确认reset脚。Gpio_bt_config()主要设置gpio_bt_sys_reset_en=BT_RST;(与实际连接一致),然后注册i2c设备体bahama_device。该设备体包含了fm的配电和bt重要的寄存器部分。最后注册平台设备msm_bt_power_devic

2012-08-21 11:10:45 2033

转载 PCM和I2S区别

今天突然想到I2S和PCM接口都是数字音频接口,而我所见的蓝牙到cpu以及codec的音频接口都是用PCM接口,是不是两个接口有各自不同的应用呢?先来看下概念。    PCM(PCM-clock、PCM-sync、PCM-in、PCM-out)脉冲编码调制,模拟语音信号经过采样量化以及一定数据排列就是PCM了。理论上可以传输单声道,双声道立体声和多声道。是数字音频的raw data。

2012-08-17 16:57:32 52018

原创 Android中printf和LOGE区别

调试蓝牙驱动中,作为hci_qcomm_init由调用后,主文件bthci_qcomm_linux.cpp不能输出其中的printf语句,换为LOGE后可以输出。分析可能:Printf属于linux应用的打印机制,在androd系统当中没有对应的输出机制,只有在终端下执行时才能回显出来。LOGE属于android专门定义的机制Android logger,专门打印除kernel外的所有

2012-08-16 19:28:46 10789

转载 linux中fork创建进程讲解

大家知道Linux中创建子进程的一个很好的方法是函数调用fork,但是很多初学者对fork的理解上可能有点困难。我们举个例子来看看fork的用法吧。        大家用fork的时候记住fork是“分叉”的意思就很好理解了。        记得初学fork() 函数及遇到这个函数时,总是不能理解fork为什么会这样写,就会分成父子两个进程。    先看一下fork() 的经典模式

2012-08-14 14:49:08 1110

原创 蓝牙工厂模式调试

高通qrd方案一站式服务,蓝牙模块配合好相关主板配电即可以正常工作了。不过由于之前工厂测试模式是之前项目架构好的,工厂测试模式需要满足jni调用相关的要求。按照fae提供的函数,调用后无法进行工厂测试。主要是权限问题。与framework相关人员确认了下,是andorid系统安全,避免第三方应用调用到system中内核驱动权限。因此,只能jni中启动服务,服务执行进入工厂模式的相关操作

2012-08-06 19:39:36 2856

转载 Android属性之build.prop,及property_get/property_set

简要分析一下build.prop是如何生成的。Android的build.prop文件是在Android编译时收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product//system/目录下。在Android运行时可以通过property_get()[c/c++域] / SystemProperties_get*

2012-07-24 12:58:04 1325

转载 hciattach.c 分析

原文地址:external/bluetooth/bluez/Tools/hciattach.c作者:xxha000721external/bluetooth/bluez/Tools/hciattach.c 会生成 hciattach, 会被install 到 /system/bin/hciattach 1. 先介绍一个数据结构 uart_t :str

2012-07-20 15:20:51 5527

转载 Android BCM4330 蓝牙BT驱动调试记录

网上关于BT的驱动很少,所以我在开发过程中把其中的步骤记录下来。供大家相互学习讨论。一、关于BT driver的移植:1. Enablebluetootch in BoadConfig.mk       BOARD_HAVE_BLUETOOTH := true2.实现BT电源管理rfkill驱动。Kernel/dr

2012-07-12 17:04:59 2029

转载 Qualcomm Share Memory

发现baidu文库里有个smem机制总结全的,顺便分享下QUALCOMM的AP与MODEM之间的share memory通过把共享内存空间分成N个不定长数据块,其中SMEM_HEAP_INFO记录每个数据块的地址信息,是否已经分配等,(只能一个宿主先分配),当然SMEM_HEAP_INFO本身也是一个数据块。各个宿主CPU用这些数据块依照对应的数据结构通信,包括PROC_COMM, sme

2012-07-09 11:49:09 5147

原创 aboot阶段smem通讯

在qualcomm平台做两款lcd兼容过程中,遇到一个问题,aboot启动阶段设置sdo脚读取ic值出现异常。与支持团队确认后,可能是启动阶段射频块的gpio设置导致电平异常不能完全工作。兼容工作只能通过bp端的值传送到aboot阶段。        Moderm端写一些数据结构到shared memory,AP端在合适的时候去取。这个方案仅用于moderm端从AP传递。1,AP端:

2012-07-09 11:45:36 2762

原创 sensor关键数据备份流程

由于sensor硬件本身设计缺陷导致核心数据在掉电时导致数据丢失,软件上通过系统备份能降低这种风险,杜绝还是需要厂商更改硬件。理论上出厂后就备份该文件信息,以后使用过程中,突然掉电的情况发生,也可以及时的将备份文件回写到sensor中,避免失效模式发生。代码流程如下: 核心问题:备份文件需要一个安全的区域Qualcomm系统efs文件系统只有在专门工具下才可以清理掉,因此选

2012-07-07 17:13:18 1928

原创 函数指针的好处

一般的时候用不到,主要还是一个简化结构和程序通用性的问题,也是实现面向对象编程的一种途径。简单的总结为:1.      实现面向对象编程中的多态性2.      回调函数举两个例子:1. 你现在要实现一个文件系统,但是文件的介质有硬盘和软盘,那么它们各自的读写函数实现肯定是不一样的。好比 int a_write(char *data_stream, int

2012-07-07 15:35:37 8833

原创 spi读ic识别lcd

采用himax的8357c和resea的R61581b0himax的8357c写时序图3-pin串行数据包包括一个控制位d/cx和一个传输字节。如果d/cx位是低电平,传输字节是命令字节,如果d/cx位是高电平,传输字节就存储在命令寄存器或者GRAM中。MSB位先传输。当csx为高时,串口初始化。这个状态下,时钟脉冲和串口输入输出数据(SDI/SDO)都不起作用的。Csx下降沿使能

2012-06-07 17:36:43 5007

原创 高通lcd相关模块

对于高通的项目,通话端和电源管理通常是放在moderm处理的,习惯称为bp,驱动和多媒体主要放在ap,lcd属于video部分,主要属于ap相关的部分。跟lcd显示相关的高通平台通常包括三个地方的代码:屏幕正常显示,开机logo的显示和关机充电。正常显示部分主要是指驱动层的代码,芯片厂商提供了标准的msm_fb.c和fb_mem.c等文件,驱动移植主要关注的是配置初始化代码的驱动文件和板级相关

2012-01-05 23:31:41 3191

原创 闪屏问题记录

由于自动调节背光导致的闪屏问题最终证明牵涉一大推问题,现象简单,处理复杂。细节决定成败,做好细节真的比简单的做个产品要复杂的多。开始屏幕的闪烁被认为是由于光线传感器等级上下波动导致的,打开log后发现,光线报点是有序上升或者下降的时候,同样导致闪烁。注定是个悲剧的开始,此问题缠绕我一周之久,还没有定案。开始的解决方案没有从根本上查原因,导致第一次提交的代码很快需要修改。为了确认是每次设置p

2012-01-05 23:08:06 1946 1

原创 初调lcd

在已有的项目上换了个新厂商的屏。Leader介绍所有驱动基本就三个步骤,配置gpio,初始化,睡眠唤醒。该项目是成熟的项目,gpio沿用已有的。初始化代码厂商已经提供,睡眠唤醒代码配置也有了。其实具体的寄存器配置在芯片手册上有详述了,不过没有长久的熏陶对含义还是不能很深的把握,借代码可以认真研究下芯片资料,完成任务的话还是迅速找厂商支援。Spi作为控制命令,因此需要根据具体手册来设计。四线或者

2011-11-29 22:21:47 2002

原创 tp睡眠电流不稳定

进入待机界面后,底电流会迅速降到1.6mA,然后逐渐升高,升高到2.6mA后逐渐降低,降低到1.6mA后稳定在该范围,时间经过25s左右。触摸屏不连接板子时,板子待机时,电流直接降到1.5mA。原因分析:板机CPU系统与TP系统通过GPIO口连接CE脚(使能位)、中断脚位置,该TP系统中断位为高电平有效,而设置GPIO口时将TP中断位为悬浮,电压实际测试1.6v左右,系统睡眠时,将会产生放

2011-10-27 19:38:28 4248

原创 电子罗盘HAL层分析

文件位置:hardware/msm7k/libsensors/akmSensors.cpp         这里分析过程主要关注ioctl中数据流向,其他的可以根据一般的hal层分析方法进行学习。         HAL层的框架文件是xxsensor.cpp和sensor

2011-10-10 18:33:34 2638 1

原创 电子罗盘Kernel层分析

电子罗盘的流程顺序涉及到第三方库的调用,以及g-sensor数据的获取,因此需要externel中库文件的支撑。         目前以akm8975c数据为例子,首先modify的文件位置大致在3个文件夹中Hal层External层Kernel层 Kernel层驱动1、  Kernel层驱动分析文件位置:kernel\drivers\misc\xx_compass

2011-10-10 18:31:04 3740 1

原创 系统调度不过来(重力感应sensor)

项目中设计的重力感应驱动调整好之后,装了一款自己喜欢的卡丁车游戏,krazycartracing(konami),使用过后发生突然不能转向了。打印log后发现,手指点触摸屏过多就会出现系统调度不过来,log无法打印。手指点屏幕暂停键后,log一下子打印出来。为了验证问题,此前

2011-08-31 15:52:34 2033 1

原创 HAL层添加一个死循环

<!--p {margin-bottom:0.08in}-->1.系统启动后添加一个轮询守护进程的方法。这里采用在vendor文件夹下添加test文件夹,新建程序文件main.c和Android.mk文件1.1Android.mk写法L

2011-08-25 15:42:00 1069

转载 PowerManagerService framework层的分析-------由于sensor涉及这个文件所以转过来了

Android 的电源管理也是很重要的一部分。比如在待机的时候关掉不用的设备,timeout之后的屏幕和键盘背光的关闭,用户操作的时候该打开多少设备等等,这些都直接关系到产品的待机时间,以及用户体验。在网上可以找到一篇到处转载的关于power management的文章http://blog.csdn.net/hzdysymbol/archive/2009/03/19 /4004791.aspx,

2011-08-24 10:06:29 1984

原创 驱动版本移植常见问题 android2.3

p { margin-bottom: 0.08in; }今天,把光传感器的驱动从froyo版本移植到gingebread版本下面,按照道理是应该不用做任何改动,主要事hal层变更了么,为了求进度,我就直接拿过来用,毕竟先出了结果心理上踏实点,但是采用了新的编译器gcc4.4.3,

2011-07-13 20:10:36 4358 1

原创 重力传感器驱动分析

重力传感器代码分析 重力传感器驱动的功能,主要是向HAL层提供IOCTRL接口,并通过input设备上报数据。芯片实际数据的读取是采用i2c协议读取原始数据,并且作为i2c设备挂载在系统上工作的。1、调用关系    采用模块化的编程方式,一下介绍函数的调用关系。module_init(aac_MMAxxxxx_init);module_exit(aac_MMAxxxxx_e

2011-06-12 19:47:00 8787 1

转载 关于linux驱动(应用)程序头文件使用

<br />驱动程序:<br /> <br />#include <linux/***.h> 是在linux-2.6.29/include/linux下面寻找源文件。<br />#include <asm/***.h> 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。<br />#include <mach/***.h> 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach下面寻找源文件。<br />#include <pl

2011-05-31 11:51:00 3346

原创 Platform Builder之旅(三)

<br />这篇文章主要讲解PB的配置文件。从用途方面分析,PB包含两种配置文件。分别是源码配置文件和镜像配置文件。下面分别讲解这两种配置文件。<br /><br />一、源码配置文件<br />  源码配置文件用于编译源码时使用。这里的源码是指Windows CE公开的源码,如驱动程序、系统应用程序等。PB在编译平台时将这些公开的源码即时编译并将编译链接后的文件复制到平台工程子目录里。记得前面讲过PB在开始编译时调用cebuild.bat批处理文件,cebuild.bat执行的一个步骤是针对_DEPTRE

2010-08-17 10:19:00 769

strawberry-perl-5.22.3.1-64bit.msi 安装包,nxp saf4000环境工具

安装包,nxp saf4000环境工具,下载4小时,分享国内应该速度会快一些。 象征性2积分 国内有些同志太狠了,都50分资源 不符合开源精神

2022-12-02

串口接收GPS数据并提取有效PVT数据

使用API函数连接串口,读取$GPGGA格式的数据,(可根据需要更改为$GPRMC)

2009-08-03

彩色五子棋游戏源代码

学习编写棋子类游戏示范程序,vc6.0环境编译成功,对于开发wince系统游戏可以直接移植进行作业

2010-08-10

android add 3rd jar

add 2 3rd example. it detail for add test and maxeol.lib.

2016-03-05

空空如也

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

TA关注的人

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