Android驱动
文章平均质量分 69
半路爱上智能
这个作者很懒,什么都没留下…
展开
-
Android手机总内存和可用内存
在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小。这个该如何实现呢?通过读取文件"/proc/meminfo"的信息能够获取手机Memory的总量,而通过ActivityManager.getMemoryInfo(ActivityManager.MemoryInfo)方法可以获取当前的可用Memory量。 "/proc/转载 2013-10-23 15:51:59 · 5929 阅读 · 0 评论 -
Android智能机MTK平台调试记录
1.连接USB线充电,长按关机键选择重新启动,手机重启时间较久,开机后闪屏很明显答:原因是USB在扫描设备时间超时,在PC上更新USB的驱动即可。2.播放MP3,连着充电器,然后拔了充电线,连接耳机,此后喇叭跟耳机都有声音,并且耳机听的是单声道(状态栏处没有耳机识别的图标,故FM也无法搜听),重新开关机可以恢复答:当USB插入到耳机的时候,中段被识别为USB充电(GPIO被拉高),原创 2012-09-05 10:10:38 · 6116 阅读 · 0 评论 -
MTK 软件设置路径
1. uboot路径mediatek\custom\common\uboot\logo\hvga\hvga_kernel.bmpmediatek\custom\common\uboot\logo\hvga\hvga_uboot.bmp2. android上层动画路径vendor\mediatek\project\artifacts\out\target\product\projec原创 2012-08-23 11:05:34 · 7116 阅读 · 1 评论 -
Android OS MTK6573 SD卡驱动浅析
首次出关于MTK方面的驱动文章,网上也很少有这方面的文章,所以我立志要写几篇这样的文章来引导刚出道的朋友们,咱们一起努力!大家都说MTK简单,但我个人做过高通平台一年时间,然后转而做MTK平台,感觉还是能学到东西的,代码并不比所谓的高通简单,只是它做的好,封装的好,所以做这块驱动可能开发者做的事情没高通多,所以大家觉得容易,学不到东西。但只要自己对技术执着,深入到架构的实现,还是能学到很多的。原创 2012-05-21 13:36:11 · 10210 阅读 · 0 评论 -
Android的电源管理
我们从Java应用层面, Android framework层面, Linux内核层面分别进行详细的讨论:应用层的使用:Android提供了现成android.os.PowerManager类,该类用于控制设备的电源状态的切换.该类对外有三个接口函数: void goToSleep(long time); //强制设备进入Sleep状态 Note原创 2012-05-25 09:15:15 · 6745 阅读 · 2 评论 -
高通MSM8255 GPS 调试分析
没事做整理一下GPS的流程,也算给自己一个交代。 1.硬件抽象层:高通MSM的硬件层代码在:hardware/qcom/gps/loc_api下,高通的GPS集成在baseband侧,与Modem部分一样,同样是基于share Memory上高通自有的RPC协议实现。所以高通的硬件层分为两部分,一部分实现的是:硬件抽象层的接口实现,另一部分实现的是基于RPC协议封装的具体控制和数据原创 2011-09-14 20:12:42 · 13444 阅读 · 4 评论 -
MTK6573电源管理(PM)小结
继续MTK平台的研究开始研究电源管理,因为PM永远是嵌入式的核心技术,所以静下来走一遍流程。MTK启动的过程:硬件板载的启动入口为static __init int board_init(void){ mt6573_power_management_init(); mt6573_board_init(); return 0;}其中mt6原创 2012-05-29 18:57:18 · 9524 阅读 · 0 评论 -
Android or Linux 的休眠与唤醒
Linux休眠/唤醒简介休眠/唤醒在嵌入式Linux中是非常重要的部分,嵌入式设备尽可能的进入休眠状态来延长电池的续航时间。这篇文章就详细介绍一下Linux中休眠/唤醒是如何工作的,还有Android中如何把这部分和Linux的机制联系起来的.在Linux中,休眠主要分三个主要的步骤:1)冻结用户态进程和内核态任务2)调用注册的设备的suspend的回调函数,顺序是按照注册顺序原创 2012-05-28 17:46:56 · 10463 阅读 · 3 评论 -
MTK Android滑盖或翻盖处理驱动
1.MTK中添加一个驱动。代码位置:mediatek/platform/mt6573/kernel/driver/要添加的目录/2.进入目录添加:slide.c 和 Makefile其中Makefile的内容如下:obj-$(CONFIG_MTK_SLIDE) := slide.o3.再进入目录:mediatek/config/viroyal73_wg/autoconfig/K原创 2012-08-28 19:08:33 · 6584 阅读 · 0 评论 -
msm7x27a添加camera差值以及添加新拍照分辨率尺寸
前段时间客户要求在高通7系列上加camera的差值,所以个人研究了一下这个差值的做法。首先贴上要加载的文件的地址:vendor/qcom/android-open/libcamera2/QualcommCameraHardware.cppvendor/qcom/proprietary/mm-camera/apps/appslib/snapshot.cvendor/qcom/原创 2013-05-06 10:47:15 · 5397 阅读 · 0 评论 -
解决休眠底电流过大调试步骤
CommentDear customer Ok, you can try solution 00024639 , may be it's related with mipi ulps mode . Thanks我将LCD屏摘掉电流是可以下得去的,为2.2mA,我先检查屏的影响。谢谢!Dear customer ma原创 2013-04-11 09:29:24 · 11882 阅读 · 0 评论 -
android vold磁盘管理
下面的vold源码分析的很到位,故转载!http://www.linuxidc.com/Linux/2011-12/50395p2.htm转载 2013-01-06 10:23:53 · 4257 阅读 · 0 评论 -
高通增大分区以及烧录失败解决
一.EMMC分区 1.修改modem惻 msm7627ym/core/storage/tools/jsdcc/partition_load/partition.xml里面的system或userdata空间大小. 2.然后编译modem侧代码,将生成的在msm7627ym/core/storage/tools/jsdcc/partition_load/目录下的文件raw原创 2013-01-04 14:30:45 · 12856 阅读 · 0 评论 -
如何将uboot里面的参数传给recovery或kernel
最近我们在做一个LCM两屏或三屏兼容的问题,所以首先要在uboot里面读出各屏的id,然后再将读得到的id传给recovery和kernel,实现机器的正常显示.一.首先实现uboot读lcm的id. 1.bootable/bootloader/lk/target/msm7627a_sku3_Q6_D/rules.mk是uboot里面宏开关,打开所显示的屏宏DEF原创 2012-12-27 09:51:26 · 9639 阅读 · 2 评论 -
camera GC0339 Rawdata hal层分析
很久没有出blog了,因为一直在解Bug,今天我不想成为一个解bug机器,所以我抽出一点时间来整理我本不熟悉的camera.希望各位技术达人勇于拍砖.目前我调试的是基于高通msm7627a平台的格科微摄像头GC0339.代码主要集中在vendor/qcom/android-open/libcamera2/目录下和vendor/qcom/proprietary/mm-camera/ 目录下.原创 2012-12-26 09:46:24 · 6579 阅读 · 2 评论 -
MSM7627a 调试记录
一.屏幕在休眠唤醒后闪屏?答:添加当屏幕休眠时置低reset脚,在resume的时候再重新拉高reset脚.二.在kernel内添加自己的Logo?答:1. 制作当前屏幕像素的图片(模拟器默认为320*480)使用PS制作一张320*480的图片,保存时选“保存为 Web 所用格式”,然后在弹开的窗口上,“预设”项选择“PNG-24”,保存为android_logo原创 2012-10-26 14:40:05 · 7908 阅读 · 0 评论 -
Qlcomm Android 开发环境,编译
1、高通平台android开发总结1.1 搭建高通平台环境开发环境在高通开发板上烧录文件系统建立高通平台开发环境高通平台,android和 modem 编译流程分析高通平台 7620 启动流程分析qcril 流程分析,设置sim卡锁python scons 语法学习Python 语言之 scons 工具流程分析: 1.2 搭建高通平台环境开发环境高通an转载 2012-10-26 09:37:37 · 10046 阅读 · 0 评论 -
Camera模块解析之驱动篇
Camera模块解析之驱动篇1 手机摄像头功能概述手机摄像头功能由多个功能模块组成,主要三个部分,采集,加工,显示。(1)采集部分由感光的sensor完成,通过CAM IF接口与手机芯片内的CAM连接。(2)CAM对CAM IF数据进行加工,主要是格式转换,特殊效果等。最终处理出来的一帧数据,存在内存中。(3) 手机的刷新线程,使用手机内部的DMA功能,或者OVERLAY技术转载 2012-05-06 15:17:11 · 7654 阅读 · 2 评论 -
Android系统之Broadcom GPS 移植
1. 内核部分的移植:内核部分的移植基本上就是对芯片上下电,建立数据结构体,打通GPS通信的串口通道,以及建立文件设备结点供上层调用。所建立的文件结点是针对Power_enable和Reset两个脚。在板载文件board-msm7x30.c里需要做的任务:static void msm7x30_init_gps(void){ … vreg_l2 = v原创 2012-04-13 16:10:52 · 12824 阅读 · 4 评论 -
BCM4330 BlueTooth 调试记录
做BT的驱动已有半年的时间多了,有一定的认识,但还没完全精通,所以用笔记来记录自己一直以来的调试过程。Part 1.有时候会出现打开蓝牙打不开的现象。答:在/system/bluetooth/bluedroid/bluetooth.c中的注册socket时间增加时间。具体做法是在函数int bt_enable()中for (attempt = 1000; attempt > 0; a原创 2012-03-21 11:04:22 · 7150 阅读 · 5 评论 -
Android OS 中Wifi普通移植配置
最近移植wifi到Eclair,Froyo平台。由于没有记录下移植步骤和心得,以至于每次都浪费了大量的精力。在此记录下移植步骤和心得,并和大家分享,如果有错误欢迎指正。1、在你的BoardConfig.mk文件中增加一行(根据你的无线网卡类型来设置): 1: BOARD_WPA_SUPPLICANT_DRIVER := WEXT2、在你的board配置目转载 2011-11-06 22:51:41 · 3033 阅读 · 0 评论 -
Android Wifi的工作流程
Wifi 网卡状态1. WIFI_STATE_DISABLED: WIFI网卡不可用2. WIFI_STATE_DISABLING: WIFI正在关闭3. WIFI_STATE_ENABLED:WIFI网卡可用4. WIFI_STATE_ENABLING:WIFI网卡正在打开5. WIFI_STATE_UNKNOWN:未知网卡状态 WIFI转载 2011-11-22 10:01:37 · 2692 阅读 · 1 评论 -
安卓WIFI 移植
手动加载驱动####16th,Jul驱动加载modprobe libertasmodprobe libertas_sdio加载第二行时出错拉# modprobe libertas_sdiolibertas_sdio: Libertas SDIO driverlibertas_sdio: Copyright Pierre Ossmanmodel=0xbsd86转载 2011-11-22 10:07:21 · 10872 阅读 · 1 评论 -
Android wifi驱动--偏下层的分析
学习android wifi开发已经一周了,今天开始立帖,将每天的学习成果贴出来,以备以后查阅,从framework到wpa_supplicant的适配层(wifi.c)网上介绍的帖子很多,而且本身也并不复杂,其中framework部分需要注意的是wifiService和wifiMoniter两部分,这两快一个是转发AP的CMD另一个是接收来自wpa_supplicant的CMD。他们与本地库的连转载 2011-10-30 17:19:57 · 5530 阅读 · 0 评论 -
Android Wifi驱动--底层
由于在这个项目中,WIFI模块是采用SDIO总线来控制的,所以先记录下CLIENT DRIVER的SDIO部分的结构,这部分的SDIO分为三层:SdioDrv、SdioAdapter、SdioBusDrv。其中SdioBusDrv是Client Driver中SDIO与WIFI模块的接口,SdioAdapter是SdioDrv和SdioBusDrv之间的适配层,SdioDrv是Client D原创 2011-10-30 17:22:00 · 6456 阅读 · 1 评论 -
浅谈Android下基于brodcom4330的FM驱动
前段时间调了FM的驱动,今天有空就整理下。一、我先整理下在底层关于FM驱动的Lib库,首先要想好在底层我们要准备好提供上层的JNI接口。我目前想到如下几个接口: 1.fm_power_on(); 打开FM; 2.fm_power_off();原创 2011-10-29 16:40:53 · 4068 阅读 · 8 评论 -
浅谈Android下的Wifi
1. WIFI JAVA layer:1.1. 当android系统启动WIFI 模块时, 它将调用 Wifiserver 类的setWifiEnabledBlocking函数。1.2. 在该函数中,如果是使能WIFI, 它将做四件事: a. load wifi转载 2011-10-15 22:37:47 · 3653 阅读 · 0 评论 -
高通MSM8255串口驱动移植
1.在板载信息里面添加东东:a.首先进入kernel/arch/arm/mach-msm/board-msm7x30.c 在结构体struct platform_device *devices[ ] __initdata { };中添加变量&msm_devices_uar原创 2011-09-01 13:47:54 · 7716 阅读 · 0 评论 -
BCM4330 Android OS Wireless Develop
做WIFI&BT已经有2个月了,心里至少对这块的移有了一定的了解。趁着深夜,也试着整理一下。首先交代开发环境——硬件平台:高通MSM8225,OS:Android2.3.5,无线模块:brodcom BCM4330。一、WIFI: 首先保证上好电:在platform/kernel/arch/arm/mach-msm/board-msm7x30.c中实现GPIO管脚的配置,也要原创 2011-12-03 23:05:10 · 6410 阅读 · 4 评论 -
Git和Repo扫盲——如何取得Android源代码
两篇Git的使用技巧性文章:活灵活现用Git--基础篇: http://phoenixtoday.blogbus.com/logs/33458940.html活灵活现用Git--技巧篇: http://phoenixtoday.blogbus.com/logs/35149540.htmlGit 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的转载 2011-12-24 15:24:10 · 1374 阅读 · 0 评论 -
Run-time PM 详解
Run-time PM. 每个device或者bus都会向run-time PM core注册3个callbackstruct dev_pm_ops {...int (*runtime_suspend)(struct device *dev);int (*runtime_resume)(struct device *dev);int (*runtime_idle转载 2011-12-24 15:25:48 · 2993 阅读 · 0 评论 -
BCM4330 WIFI 调试记录
Part 1 问:打开wifi,连接wifi热点,提示连接成功,但headbar上不显示wifi图标,back退出wifi设置,再进入,提示wifi已断开。答:首先现象复现,当现象复现时进入adb shell,然后输入ifconfig 查看是否有wlan0 端口,然后在adb shell 中ping 192.168.1.101(嵌入式设备的IP),如果能Ping通则说明底层wifi设备与A原创 2011-12-26 16:27:41 · 12683 阅读 · 9 评论 -
Linux 下的Bluetooth 架构
实战Linux Bluetooth编程(一) 协议栈概述Sam一年前在Linux下写了一个类似Windows下BTW的库--BTX。现在需要添加新功能时发现很多知识点都忘记了。所以决定在这次学习中,把一些bluez API记录下来。这几天又想,这样还不够,不如把Linux下的Bluetooth编程基础给记录下来吧。前言:随着嵌入式系统的飞速发展,很多嵌入式平台上需要Bluetoot转载 2012-03-16 11:07:11 · 18332 阅读 · 0 评论 -
Android 之 Bluetooth
对于Android的英文帮助文档,总是看了记不住,远不如对中文资料那么印象深,所以下面的叙述都是对Android帮助文档Bluetooth的翻译。一、BluetoothAndroid平台包含了对Bluetooth协议栈的支持,允许机器通过Bluetooth设备进行无线数据交换。应用框架通过Android Bluetooth API访问Bluetooth功能模块。 这些API能让应用无线连接翻译 2012-03-16 10:25:40 · 6754 阅读 · 0 评论 -
WIFI手动命令行连接AP
在我们调试WIFI模块的时候经常碰到这样那样的问题,关键是要找到问题出现在哪层,然后再深入分析。找问题出现在哪一层,用手动命令是最直接的方法。一下就可以分辨出到底是上层还是底层的问题,下面列出WIFI的手动命令行:关于wpa_supplicant:用到wpa_cli命令wpa_cli -iwlan0 add_network // wlan0 是无原创 2012-02-08 16:02:30 · 8877 阅读 · 0 评论 -
Android BCM4330 FM 驱动驱动
FM Porting 1 修改init.xxx.rc 增加服务,并把btld push到/system/bin下service btld /system/bin/logwrapper /system/bin/btld user root group bluetooth net_bt_admin disabled oneshot 2 合并system\bluetooth\原创 2012-01-10 11:17:17 · 8182 阅读 · 6 评论 -
Android BCM4330 蓝牙BT驱动调试记录
网上关于BT的驱动很少,所以我在开发过程中把其中的步骤记录下来。供大家相互学习讨论。一、关于BT driver的移植:1. Enablebluetootch in BoadConfig.mk BOARD_HAVE_BLUETOOTH := true2.实现BT电源管理rfkill驱动。Kernel/dr原创 2012-01-06 12:01:28 · 22199 阅读 · 3 评论 -
Android 中的WiFi学习笔记——经典
Android的WiFi我们通常看到WiFi的守护进程wpa_supplicant在我们的ps的进程列表中,这个就是我们的wifi守护进程。wpa_supplicant在external/wpa_supplicant里实现wpa_supplicant适配层是通用的wpa_supplicant的封装,在Android中作为WIFI部分的硬件抽象层来使用。wpa_supplicant适配层主要用于封装转载 2011-12-28 17:07:33 · 5829 阅读 · 0 评论 -
Android 打电话 RIL 中的事件监听
在android 的ril.cpp中文名可以看到关乎RIL初始化流程第一个--建立基于event队列的消息循环,可以接受上层发来的的请求。 该流程的主要函数RIL_startEventLoop(). 该函数主要创建一个以eventlopp为入口的dispatch线程。下面是该函数的代码: extern "C" voidRIL_startEventLoop(void) { int ret原创 2011-07-03 00:12:10 · 1612 阅读 · 0 评论