
android
joqian
这个作者很懒,什么都没留下…
展开
-
GPIO调用方法的实现流程
GPIO调用方法的实现流程上文中虽然讲述了如何实现IO空间的静态映射方法,但调用s3c_gpio_cfgpin、s3c_gpio_setpull、gpio_direction_output就可以访问IO空间,这又是如何实现的呢?本文就来讲述一下实现过程。回到smdkv210_map_io函数中staticvoid __init smdkv210_map_io(void){原创 2014-05-29 12:18:56 · 2936 阅读 · 0 评论 -
sd卡受损修复办法
以后出现SD卡受损,千万不要再格式化内存卡了。修复过程:1、手机提示TF卡受损,需要格式化 。2、把TF卡插入读卡器,接到电脑USB后,电脑提示格式化,点取消。然后查看一下属性。直接使用属性中的 工具-开始检查。发现无法检查磁盘错误3、点电脑上的“开始菜单”--“运行”- chkdsk H:/F (H:就是你的SD卡盘符,/F是修复参数。)4、等待修复完成,DOS窗口会转载 2013-08-22 14:14:02 · 7391 阅读 · 1 评论 -
蓝牙耳机简单的流程分析
最近在关注蓝牙耳机方面的问题,做下简单的流程分析。解码后,在AudioFlinger里把音频数据写到设备里。这里主要看看AudioFlinger,AudioPolicyManager和external/bluetooth/bluez/audio里面的android_audio_hw.c和liba2dp.c。在AudioPolicyManager里有设备连接判断。status_t Aud转载 2013-07-02 18:07:50 · 2987 阅读 · 0 评论 -
linux __attribute__ 分析
# define __user __attribute__((noderef, address_space(1)))__user这个特性,即__attribute__((noderef, address_space(1))),是用来修饰一个变量的,这个变量必须是非解除参考(no dereference)的,即这个变量地址必须是有效的,而且变量所在的地址空间必须是1,即用户程序空间的。这里转载 2013-07-18 11:10:12 · 2101 阅读 · 0 评论 -
U-Boot启动过程完全分析
1.1 U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳转到第二阶段代码入口 (2)第二阶段的功能Ø 初始化本阶段使用的硬件设备Ø 检测系统内存映射Ø 将内核从Fla转载 2013-07-16 16:10:02 · 824 阅读 · 0 评论 -
Uboot 源码分析----代码整体结构分析
1. 文件夹总体功能分析- board 目标板相关文件,主要包含SDRAM、FLASH驱动;- common 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;- cpu 与处理器相关的文件。如mpc8xx子目录下含串口、网口、LCD驱动及中断初始化等文件;- driver 通用设备驱动,如CFI FLASH驱动(目前对INTEL FLASH支持较好)- doc U-B转载 2013-06-19 14:22:12 · 880 阅读 · 0 评论 -
android initlogo.rle 在32位LCD上显示
在S5PV210 ANDROID2.3 平台上做了一个initlogo.rle 显示不正常。原因是initlogo.rle是16位数据,而我们的LCD是32位的,需要将initlogo.rle转换位32位的。 源码路径:android_source/system/core/init/logo.c#define fb_size(fb) ((fb)->vi.xres * (fb)转载 2013-07-16 13:57:56 · 819 阅读 · 0 评论 -
Android平台开发-Bluez function porting-蓝牙功能移植
一、Bluez编译配置支持 在BoardConfig.mk中添加: BOARD_HAVE_BLUETOOTH := true。 二、启动hciattach BlueZ核心子系统使用hciattach守护进程添加指定的硬件串口驱动。 修改init.rc来启动hciattach: service hciatt转载 2013-07-09 12:00:08 · 1077 阅读 · 0 评论 -
android关机充电流程、充电画面显示
关键词:android电池关机充电androidboot.mode charger 关机充电 充电画面显示 平台信息:内核:linux2.6/linux3.0系统:android/android4.0平台:S5PV310(samsungexynos 4210)电池的基本原理;android关机充电流程、充电画面显示;Android开机充电流程,电池电量、转载 2013-06-21 15:33:51 · 1438 阅读 · 0 评论 -
bcm4330蓝牙分析总结
对于蓝牙无论最底层的硬件驱动如何实现,都会在HCI层进行统一。也就是说,HCI在主机端的驱动主要是为上层提供统一接口,让上层协议不依赖于具体的硬件实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如UART,USB和SDIO等。 HCI层在所有的设备面前都被抽象为一个hci_dev结构体,因此,无论实际的设备是哪种蓝牙设备、通过什么方式连接到主机,都需要向HCI转载 2013-07-08 09:24:01 · 1329 阅读 · 1 评论 -
Android 蓝牙状态机以及蓝牙启动状态机
Bluetooth状态转换图如下:[html] view plaincopy (BluetootOn)40 * | ^ -------------------->- | 41 * | |转载 2013-07-08 10:22:23 · 2501 阅读 · 0 评论 -
如何枚举产生i2c_client ,何时使用i2c_new_device
根据自己的理解翻译了http://lxr.linux.no/linux+v2.6.34/Documentation/i2c/instantiating-devices 中关于枚举建立i2c_client的文档。有异议或疑问请参照原文,毕竟内核的文档才是真正的精华。方法1:使用总线号声明设备。在内核的初始化中定义设备的信息。前提是内核编译的时候已经确定有哪些i2c设备和它们的地址,还转载 2013-05-13 15:51:23 · 1039 阅读 · 0 评论 -
Android 4.0 虚拟按键、手机模式、平板模式
关键词:android 4.0 手机模式(phone) 平板模式(table) 虚拟按键 lcd_density平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台:S5PV310(samsungexynos4210/4412) 三星新拿回来来的BSP,编译后没有“返回、最近打开应用、home”三个虚拟键。我们硬件在设计转载 2013-05-24 14:56:28 · 1137 阅读 · 0 评论 -
Android-2.2 display系统介绍-SW架构
Android-2.2display系统介绍-SW架构一、Overview上图的原型取自高通的文档,由于原图无法描述现有的架构,我在原图的基础了做了些修改,主要是增加了overlay部分,另外其他部分根据现有的软件也做了些许改动。下面先对上图做个大概的介绍,后面会针对重点部分做详细的分析。最上面一层为应用程序,根据数据类型以及应用的不同可以分为几种。第一种是最普通的应用,如UI转载 2013-04-27 15:29:17 · 702 阅读 · 0 评论 -
android中各种img文件的作用以及系统启动过程
首先通过编译,先将android内核编译成功。正常情况下,在目录out/target.product/generic/(但是有的就没有generic文件,如freescale和iriver;但是lonshinetech下面就有这个文件,依据情况而定,只要能找到生成的三个文件就可以。例如:~/freescale/R9.2/out/target/product/imx51_bbg$ )下会生成三个文件转载 2013-04-27 09:49:58 · 1052 阅读 · 0 评论 -
android系统自带的Service原理与使用
1. 说明 android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如 MountService监听是否有SD卡安装及移除,ClipboardService提供剪切板功能,PackageManagerService提供软件包的安装移除及查看等等,应用程序可以通过系统提供的Manager接口来访问这些Service提供的数据,以下将转载 2013-04-08 16:06:10 · 944 阅读 · 0 评论 -
Android中计算坐标变换速度的原理
采用最小二乘法对获取的坐标X,Y时间序列进行回归拟合。对于X时间序列(xi,ti):xi=b0+b1*ti+b2*ti^2+...+bm*ti^m,可得如下等式A*B=Y----------(1)其中,(带t的表示矩阵的转置) 矩阵B为拟合后要求解的系数矩阵(b0 b1 b2 ... bn)t转载 2013-09-03 11:28:17 · 1370 阅读 · 0 评论 -
linux内核的 等待队列 使用方法,wait_queue_head_t,进程休眠
当你在用户空间需要读写一大片数据的时候,这个就用上了。以下来自:http://www.yuanma.org/data/2006/1207/article_1916.htm假设我们在 kernel 里产生一个 buffer,user 可以经由 read,write 等 system call 来读取或写资料到这个 buffer 里。如果有一个 user 写资料到 buffer 时,此转载 2013-09-11 11:30:05 · 690 阅读 · 0 评论 -
android init中的service
android的init进程初始化的时候,除了对系统作一些必要的初始化外,就是启动service了。而service是定义在init脚本中的,故很有必要了解一下,init中对service的处理。struct service 该数据结构保存了和service相关的信息。service下可以定义option,这些option被保存在这个结构体中;除此之外还保存了service的转载 2013-09-16 17:37:32 · 784 阅读 · 0 评论 -
IO空间的静态映射基本过程
1、前言IO端口与IO内存的概念:外设中的寄存器称为是IO端口,外设中的内存称为是IO内存。二者统称为IO空间。Linux内核是通过虚拟地址访问外设的。所以需要先将虚拟地址映射到相应外设的物理地址上,linux的映射方式有两种:静态映射(map_desc)和动态映射(ioremap),其实也是内核访问外设资源的方式。2、静态映射基本过程:在驱动中配置寄存器,可以调用类似于s3c_gpi原创 2014-05-29 12:04:07 · 1904 阅读 · 0 评论 -
android_wifi读书笔记之9-wifi开启流程
本文为读书笔记,整理自网络文献和源码原创 2014-05-28 14:53:44 · 1147 阅读 · 0 评论 -
android_wifi读书笔记之2-wifi framework分析
本文为读书笔记,整理自网络文献和源码2 wifi framework分析WIFI Settings应用程序位于packages/apps/Settings/src/com/android/settings/wifi/涉及到的文件:WifiSettings.java frameworks部分:frameworks/base/services/java/com/andr原创 2014-05-27 13:29:51 · 1276 阅读 · 0 评论 -
android_wifi读书笔记之6-wpa_supplicant 与kernel交互
本文为读书笔记,整理自网络文献和源码6 wpa_supplicant 与kernel交互源码位置:external/wpa_supplicant_8/wpa_supplicant与kernel交互的操作,一般需要先明确驱动接口,以及用户态和kernel态的接口方法,以此来进行调用操作。这里分为4个步骤。1.首先需要明确指定的驱动接口。因为有较多的驱动接口可以使用,如wext、nl8原创 2014-05-27 13:36:59 · 2629 阅读 · 0 评论 -
android_wifi读书笔记之3-JNI层 分析
本文为读书笔记,整理自网络文献和源码 3 JNI层分析frameworks/base/core/jni/android_net_wifi_Wifi.cpp这个文件里面是调用HAL层的wifi.c里面对应方法的接口的集合,提供给frameswork层的类Wifinative里面的方法调用原创 2014-05-27 13:31:39 · 1472 阅读 · 0 评论 -
android_wifi读书笔记之8-SDIO驱动架构
本文为读书笔记,整理自网络文献和源码8、SDIO驱动架构size:10� � ;H�~�u-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calib原创 2014-05-27 13:51:35 · 5141 阅读 · 0 评论 -
android_wifi读书笔记之7-wifi驱动解析
7、wifi驱动解析7.1、WIFI内核实现的大致框架 Linux下已经支持了市面上的大多数wifi卡的驱动•每种wifi卡都是需要固件(firmware)才能驱动的,并且同一种卡工作在不同接口时对应的firmware是不一样的•需要注意的是:很多firmware都是要花钱的•固件通过其驱动下载到无线卡中,才能驱动起来 (10)wifi驱原创 2014-05-27 13:45:06 · 2866 阅读 · 0 评论 -
android_wifi读书笔记之5-WPA_SUPPLICANT分析
本文为读书笔记,整理自网络文献和源码5 WPA_SUPPLICANT分析5.1、WPA_SUPPLICANT 分析1:参考文献:http://www.cnblogs.com/chenbin7/p/3266032.htmlhttp://blog.chinaunix.net/uid-26585427-id-4051479.htmlwpa_supplicant软件架构分析http原创 2014-05-27 13:34:29 · 2536 阅读 · 0 评论 -
android_wifi读书笔记之4-HAL层分析
本文为读书笔记,整理自网络文献和源码4 HAL层分析Hardware/libhardware_legacy/wifi/wifi.c这个文件主要是实现驱动的加载和卸载,wpa_supplicant的开启和关闭4.1 驱动的加载卸载:wifi_load_driver():驱动的加载。wifi驱动是编译成ko文件, ko文件储存的位置#defineWIFI_DRIVER_MODULE原创 2014-05-27 13:32:23 · 2936 阅读 · 0 评论 -
android_wifi读书笔记之1-wifi简介
1、wifi简介1.1 物理简介wlan:无线局域网,802.11协议wifi主要物理组件: 工作站(station)、接入点AP(access point)、无线媒介(wirelessmedium)、分布式系统(distribution system)Wifi可工作在station模式和AP模式。station模式的结构:Ap模式:原创 2014-05-27 13:26:58 · 1361 阅读 · 0 评论 -
关于 Caused by:.. /proc/net/xt_qtaguid/stats:open failed: ENOENT (No such file or directory)问题的解决
W/PowerUI ( 2092): unknownintent: Intent { act=android.intent.action.ACTION_POWER_CONNECTEDflg=0x10000010 }D/dalvikvm( 2027): GC_CONCURRENTfreed 483K, 13% free 8876K/10119K, paused 2ms+3msF/Batter原创 2014-04-18 09:08:54 · 5081 阅读 · 2 评论 -
Android中深入研究Service
关于Service,不管是Windows还是linux系统,相信大家应该遇到过很多自己解决不了的问题吧,那么本文来讲述一下Android手机系统中的Service .1 Service本质结构我们还是从Service的根本意义分析入手,服务的本质就是响应客户端请求。要提供服务,就必须建立接收请求,处理请求,应答客服端的框架。我想在Android Service设计者也会无时不刻转载 2013-09-29 10:52:08 · 666 阅读 · 0 评论 -
Android开机启动流程初探
l Init进程Android系统在启动时首先会启动Linux系统,引导加载Linux Kernel并启动init进程。Init进程是一个由内核启动的用户级进程,是Android系统的第一个进程。该进程的相关代码在platform\system\core\init\init.c。在main函数中,有如下代码: open_devnull_stdio(); log_i转载 2013-09-28 10:49:49 · 728 阅读 · 0 评论 -
Android重量级开发之--提高android启动速度研究
大家都知道启动速度慢是智能操作系统的一个通病,Android也不例外,启动速度大概在1分钟左右,虽然日本有一个叫quick boot的一秒启动android的产品,但是毕竟是旁门左道。所以从常规来提高android的启动速度成了大家研究的重点,也是难点。下面将初步研究的一下经验跟大家分享一下。 首先看一下android系统的启动流程:bootloa转载 2013-09-26 17:19:18 · 1684 阅读 · 0 评论 -
为Android SDK增加应用案例实现
为Android SDK增加应用案例实现是本文要介绍的内容,主要是来了解并学习Android SDK的内容,具体关于Android SDK的内容来看本文详解。在开发Android开发应用的过程中,通常有两种方式:NDK和eclipse,或者直接在Android SDK增加。这里介绍如何在Android SDK环境中增加一个应用程序。其中涉及到JNI,JAVA对JNI的调用,其中JNI代转载 2013-10-08 09:20:58 · 605 阅读 · 0 评论 -
Android应用程序获得root权限
我在博文《Android程序的安全系统》中提到两种让root权限的办法。最近在网上发现很多朋友转载那篇文章,但是对那篇文章中提到的第一种方法怎样实现,不是很明白。本文将会以一个例子实现来演示怎样让一个Android应用程序获得root权限。问题 我遇到的问题是我想在Java应用程序中动态mount一个NFS的系统,但是执行mount命令必须要要root权限才可以。一般情况下,在And转载 2013-04-07 09:27:25 · 700 阅读 · 0 评论 -
Android程序的安全系统
最近在移植Android过程中遇到了Android程序(apk)权限的问题。最近也对这方面进行了一些了解,在此和大家分享。 Android框架是基于Linux内核构建,所以Android安全系统也是基于Linux的安全架构建立的。在Linux安全系统中,用户和组起着重要的作用,Linux中所有的资源给不同的用户和用户组设置了不同的访问属性。如果你对Linux下面用户和组的概念不熟悉,请转载 2013-04-07 09:23:36 · 795 阅读 · 0 评论 -
LCD驱动分析
http://blog.chinaunix.net/uid-24666775-id-3237969.html http://blog.chinaunix.net/uid-24666775-id-3238065.html http://blog.chinaunix.net/uid-24666775-id-3238073.html原创 2013-03-22 10:16:43 · 723 阅读 · 0 评论 -
Android/Bluetooth 初始化流程
=========================Kernel Space=========================1. Board power initMACHINE_START init_machine = comet_initbt_power_initbluetooth_power2. HCI device/connection manager,转载 2013-02-21 17:18:38 · 1207 阅读 · 1 评论 -
ARM平台上蓝牙协议栈Bluez的移植使用和配置
Bluez作为当前最成熟的开源蓝牙协议栈,在Linux的各大发行版中已经得到了广泛的应用。在桌面环境下,使用Bluez应该已经没有太大的问题,本文的主要目的是介绍在嵌入式平台上,搭建和配置Bluez的各个Profile运行所需做的工作,讨论可能遇到的问题,介绍一些工具的使用和工作原理。因为本人的能力和测试时间有限,可能下文中有些理解、分析不一定准确,欢迎联系指正。 1转载 2013-02-21 17:14:23 · 979 阅读 · 0 评论 -
蓝牙驱动浅析
bluetooth driver in Android2.3使用高通芯片,linux2.6.35.7board-vital2.c初始化蓝牙GPIO,bt_gpio_table中配置GPIO。设置了UART1的RTS,CTS,TX,RX引脚和蓝牙模块的RESET,SHUTDOWN,WAKE,HOST_WAKE引脚,bcm_bt_lpm_device变量将被注册到platform_device转载 2013-02-21 17:19:28 · 1490 阅读 · 0 评论