<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ppltsqpp的专栏]]></title><description><![CDATA[里拉克丝]]></description><link>https://blog.youkuaiyun.com/ppltsqpp</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ppltsqpp]]></copyright><item><title><![CDATA[Android系统Gps分析]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/39155615</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/39155615</guid><author>ppltsqpp</author><pubDate>Tue, 09 Sep 2014 14:14:21 +0800</pubDate><description><![CDATA[1 GPS架构







2 GPS分析

2.1 头文件
头文件定义在：hardware/libhardware/include/hardware/gps.h，定义了GPS底层相关的结构体和接口


GpsLocation

GPS位置信息结构体，包含经纬度，高度，速度，方位角等。





[cpp] view
 plaincopy


]]></description><category></category></item><item><title><![CDATA[android input]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/38084121</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/38084121</guid><author>ppltsqpp</author><pubDate>Thu, 24 Jul 2014 14:28:44 +0800</pubDate><description><![CDATA[usage: input ...
       input text 
       input keyevent 
       input tap    -模拟
       input swipe]]></description><category></category></item><item><title><![CDATA[Android4.2蓝牙基础架构学习]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/32700385</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/32700385</guid><author>ppltsqpp</author><pubDate>Fri, 20 Jun 2014 10:27:05 +0800</pubDate><description><![CDATA[接下来就要进入到真正的Android4.2蓝牙系统的学习了，Are you ready?




本文不会涉及任何代码，主要对整个Android的蓝牙结构进行一个框架上的分析。

Android4.2使用了Bluetooth.apk管理所有蓝牙相关的操作，Bluedroid作为蓝牙协议栈。整个蓝牙的关系架构如下图所示：




下面逐一进行讲解：

Applicatio]]></description><category></category></item><item><title><![CDATA[Android4.4 Bluetooth enble]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/31790305</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/31790305</guid><author>ppltsqpp</author><pubDate>Tue, 17 Jun 2014 17:57:37 +0800</pubDate><description><![CDATA[Android Bluetooth

Android 4.4上蓝牙协议栈采用的是BRCM和Google共同开发的bluedroid，代替了之前的Bluez.

一、 Bluetooth 源码分布 （基于Android 4.4 ）

1.  packages/apps/Settings/src/com/android/settings/bluetooth

      bluetoo]]></description><category></category></item><item><title><![CDATA[Android 4.4 蓝牙解析（一）]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/31741867</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/31741867</guid><author>ppltsqpp</author><pubDate>Tue, 17 Jun 2014 10:45:52 +0800</pubDate><description><![CDATA[由于开发项目的关系，最近一直在对android4.4的bluedroid进行研究，并且开发了一个面向用户的应用，但是实际上从开发过程遇到的问题发现，android4.4 bluedroid做的还是不完善，特别是在ble一连多和使用ble bluetoothgattserver roles的情况下。

开发过程发现实际现在网上对于最新的android4.4 ble介绍很少，自己感觉不是很满意。所]]></description><category></category></item><item><title><![CDATA[wpa_supplicant与kernel的接口]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/29602135</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/29602135</guid><author>ppltsqpp</author><pubDate>Mon, 09 Jun 2014 18:19:37 +0800</pubDate><description><![CDATA[﻿﻿
1. 接口定义实现wpa_drivers



    wpa_drivers的定义如下：



[cpp] view
 plaincopy






struct wpa_driver_ops *wpa_drivers[] =  
{  
#ifdef CONFIG_DRIVER_WEXT  
    &wpa_driver_wext_ops,  ]]></description><category></category></item><item><title><![CDATA[Linux Wireless架构总结--wifi的数据通路]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/27351413</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/27351413</guid><author>ppltsqpp</author><pubDate>Wed, 28 May 2014 16:53:01 +0800</pubDate><description><![CDATA[1.  无线网络驱动(ath9k_htc)

     ath9k_htc是一个基于USB接口的SoftMAC无线网络适配器。为了其驱动能正常工作，首先必须调用usb_register来注册驱动定义的usb_driver，以借助USB Core的力量来处理与USB协议相关的事件。其代码如下：





[cpp] view
 plaincopy






stat]]></description><category></category></item><item><title><![CDATA[IEEE802.11协议基础知识]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/27336587</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/27336587</guid><author>ppltsqpp</author><pubDate>Wed, 28 May 2014 14:44:09 +0800</pubDate><description><![CDATA[1. 802.11管理功能–用户接入过程

      STA (工作站）启动初始化、开始正式使用、AP 传送数据幀之前，要经过三个阶段才能接入:
      (1) 扫描(SCAN) 
      (2) 认证(Authentication) 


      (3) 关联(Association) 




1.1 802.11管理–扫描(SCAN)

      ]]></description><category></category></item><item><title><![CDATA[WiFi基本知识]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/27334773</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/27334773</guid><author>ppltsqpp</author><pubDate>Wed, 28 May 2014 14:25:44 +0800</pubDate><description><![CDATA[1. IE802.11简介





标准号
IEEE 802.11b    
IEEE 802.11a
IEEE 802.11g
IEEE 802.11n


标准发布时间
1999年9月
1999年9月
2003年6月
2009年9月


工作频率范围
2.4－2.4835GHz

5.150－5.350GHz
5.475－5.725GHz
5]]></description><category></category></item><item><title><![CDATA[wpa_supplicant无线网络配置]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/27193597</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/27193597</guid><author>ppltsqpp</author><pubDate>Tue, 27 May 2014 13:04:36 +0800</pubDate><description><![CDATA[目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。请记住重要的一点是，对无线网络的配置是全局性的，而非针对具体的接口。

   wpa_supplicant是一个较好的选择，但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。另外，wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络，它可]]></description><category></category></item><item><title><![CDATA[WiFi信号强度--SIGNAL_POLL(wifi上层到下层的调用关系)]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/26498533</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/26498533</guid><author>ppltsqpp</author><pubDate>Wed, 21 May 2014 18:00:22 +0800</pubDate><description><![CDATA[1. 信号强度算法

    WifiManager.java



[cpp] view
 plaincopy






/** Anything worse than or equal to this will show 0 bars. */  
private static final int MIN_RSSI = -100;  
  
/** Anyth]]></description><category></category></item><item><title><![CDATA[Android Wifi的工作流程]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/26250931</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/26250931</guid><author>ppltsqpp</author><pubDate>Mon, 19 May 2014 15:17:07 +0800</pubDate><description><![CDATA[原文地址：Android Wifi的工作流程 作者：iibull




http://blog.youkuaiyun.com/hxh19871987/article/details/7320839




Wifi 网卡状态

1.    WIFI_STATE_DISABLED: WIFI网卡不可用

2.    WIFI_STATE_DISABLING: WIFI正在关闭
]]></description><category></category></item><item><title><![CDATA[Qualcomm msm8974 编译]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/25998129</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/25998129</guid><author>ppltsqpp</author><pubDate>Fri, 16 May 2014 17:40:02 +0800</pubDate><description><![CDATA[APSS编译：

1 source build/envsetup.sh
2 lunch msm8974-eng / userdebug

3 make -j 8




LK编译：

cd bootable/bootloader/lk
make PROJECT=msm8974 BOOTLOADER_OUT=../../../out/target/product/msm89]]></description><category></category></item><item><title><![CDATA[SMEM介绍]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/25997281</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/25997281</guid><author>ppltsqpp</author><pubDate>Fri, 16 May 2014 17:31:56 +0800</pubDate><description><![CDATA[SMEM ：shared memory，是高通平台各子系统共享信息的一种机制，通过SMEM机制，PBL可以将信息传递给SBL1，SBL1可以将信息传递给RPM、LK。下面分析一个SMEM信息传递的具体实现过程。

 

1 Platform id信息

SBL1会将board level platform id信息通过SMEM机制保存，LK在启动过程中会自动platform detec]]></description><category></category></item><item><title><![CDATA[qualcomm memory dump 抓取方法]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/25996703</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/25996703</guid><author>ppltsqpp</author><pubDate>Fri, 16 May 2014 17:26:59 +0800</pubDate><description><![CDATA[Memory dump是系统出现crash时常用的分析故障原因的方法，qualcomm 各子系统运行时，为方便debug，都会开辟ram log和debug variable用于保存各系统运行信息及健康状态，就像飞机黑盒子用于记录飞行器飞行状态。当出现crash时，可以将ram log 、debug variable所在的memory region dump出来分析导致故障的原因。所以当需要分析c]]></description><category></category></item><item><title><![CDATA[linux内存管理浅析]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/24380263</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/24380263</guid><author>ppltsqpp</author><pubDate>Wed, 23 Apr 2014 18:00:15 +0800</pubDate><description><![CDATA[[地址映射](图：左中)
linux内核使用页式内存管理，应用程序给出的内存地址是虚拟地址，它需要经过若干级页表一级一级的变换，才变成真正的物理地址。
想一下，地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时，需要先经过若干次的内存访问，得到每一级页表中用于转换的页表项（页表是存放在内存里面的），才能完成映射。也就是说，要实现一次内存访问，实际上内存被访问了N+1次（N=页表]]></description><category></category></item><item><title><![CDATA[Linux设备驱动程序-并发和竞态]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/24368027</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/24368027</guid><author>ppltsqpp</author><pubDate>Wed, 23 Apr 2014 15:29:13 +0800</pubDate><description><![CDATA[并发及其管理

1、并发（concurrency）指的是多个执行单元同时、并行被执行，而并发的执行单元对共享资源（硬件资源和软件上的全局变量、静态变量等）的访问则很容易导致竞态（race condition）。

 

2、在设计自己的驱动程序时，第一个要记住的规则是，只要可能，就应该避免资源的共享。如果没有并发的访问，也就不会有竞态的产生。因此，仔细编写的内核代码应具有最少的共享。这]]></description><category></category></item><item><title><![CDATA[Linux设备模型（中）之上层容器]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/24360821</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/24360821</guid><author>ppltsqpp</author><pubDate>Wed, 23 Apr 2014 13:45:56 +0800</pubDate><description><![CDATA[基本概念 总线 

Linux设备模型是由总线（bus_type），设备（device），驱动（device_driver）这三个数据结构来描述的。

总线是处理器和一个或多个设备之间的通道。

在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟“platform”总线（下一篇介绍），注意，这里设备模型中只是为个更好方便管理，所以有些总线是pic，i2c，usb等，但都只是一]]></description><category></category></item><item><title><![CDATA[Linux设备模型（下）之Platform]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/24360755</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/24360755</guid><author>ppltsqpp</author><pubDate>Wed, 23 Apr 2014 13:44:41 +0800</pubDate><description><![CDATA[从Linux2.6内核起，引入一套新的驱动管理和注册机制：platform_device和 platform_driver 。Linux 中大部分的设备驱动，都可以使用这套机制，设备用 platform_device 表示；驱动用platform_driver 进行注册。 platform是一个虚拟的地址总线，相比pci，usb，它主要用于描述SOC上的片上资源，比如s3c2440上集成的控制器（]]></description><category></category></item><item><title><![CDATA[Linux设备模型（上）之底层模型]]></title><link>https://blog.youkuaiyun.com/ppltsqpp/article/details/24320699</link><guid>https://blog.youkuaiyun.com/ppltsqpp/article/details/24320699</guid><author>ppltsqpp</author><pubDate>Tue, 22 Apr 2014 18:00:02 +0800</pubDate><description><![CDATA[以《LDD3》的说法：Linux设备模型这部分内容可以认为是高级教材，对于多数程序作者来说是不必要的。但是我个人认为：对于一个嵌入式Linux的底层程序员来说，这部分内容是很重要的。以我学习的ARM9为例，有很多总线（如SPI、IIC、IIS等等）在Linux下已经被编写成了子系统，无需自己写驱动；而这些总线又不像PCI、USB等在《LDD3》上有教程，有时还要自己研究它的子系统构架，甚至要自己添]]></description><category></category></item></channel></rss>