自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Think

Keep marching, Don't settle —— 把自己带到离梦想最近的地方!

  • 博客(69)
  • 资源 (4)
  • 收藏
  • 关注

转载 【Android架构Telephony篇】数据业务(1)总览

[html] view plain copy print?Android: 6.0  Desktop: Ubuntu 15.04  更新:2017-04-27  Android: 6.0Desktop: Ubuntu 15.04更新:2017-04-27Android设备中完整的移动通讯系统构成:(1)Hardware这里提到的无线通信模组是一种支持TD-LTE/FDD-LTE/TD-SCD

2017-09-25 10:22:00 674

原创 FOTA升级

分以下三个模块分析FOTA升级介绍        1.在一个高通安卓项目中部署FOTA升级         2.Android ota升级的基本过程         3.Android ota升级异常分析 升级:    从方法上分为整个文件替换,以打patch的方式替换 (diff patch)    从是否借助外部设备上分为借助外部设备,不借助外部设备

2017-01-03 15:34:40 28244

原创 wifi详解-3(wap_supplicant与wifiserver)

转自http://blog.csdn.net/kehyuanyu/article/details/46312343 1. 系统架构 Android WiFi系统引入了wpa_supplicant,它的整个WiFi系统以wpa_supplicant为核心来定义上层用户接口和下层驱动接口。整个WiFi系统架构如下图所示: 一切尽在上图中,下面将对每部分进行详细分析。1

2016-11-01 09:09:48 2014

原创 wifi详解-2(netd)

引用:http://blog.csdn.net/xiaokeweng/article/details/8130218 所谓 Netd 就是Network Daemon 的缩写,表示Network守护进程,类似的命名还有很多,例如 Vold(Volumn Deamon)—磁盘管理,Rild(Radio Interface Layer Deamon)— 电话的基本数据功能……类似的还有好多,遍

2016-11-01 09:09:10 1627

原创 wifi详解-1(基本常识)

先看一下wifi打开流程图: 图中注意三个重要模块:1.WifiService(framework层) 2.netd(处于Framework与kernel之间library层,system/netd目录下) 3.wpa_supplicant与hostapd(由于wpa_supplicant是一个开源软件项目,所以存放在了external/wpa_supplicant_8下)。

2016-10-31 15:02:55 1869

原创 sim开机APDU命令流程

从图可以看出,APDU命令如下 reset->atr->select 3F00->select 2FE2(iccid)->READ->select 2F05(preferred languages)->READ->TERMINAL PROFILE(终端向卡发送它所支持的功能)->SELECT 2F00(选择应用EF-DIR)->READ->SELECT ADF->SELECT 7FFF6FB7(当

2016-10-31 10:30:56 5078 2

原创 tcp/ip详解卷一总结

TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。

2016-10-09 09:16:16 8848

原创 3GPP概述及初始流程

中国电信使用的是:CDMA,CDMA2000,TD-LTE(时分双工),FDD-LTE(频分双工),联通使用的是:GSM,WCDMA,TD-LTE,FDD-LTE,移动使用的是GSM,TD-SCDMA,TD-LTE。    协议:3gpp(gsm,wcdma,TD-LTE,FDD-LTE) 3gpp2(cdma,cdma2000)    信号强度:绝对功率的dBm表示此指标是反映放

2016-09-26 21:46:34 4880 1

原创 telephony-2(app及framework)

telephony从app及framework上来讲就一个进程phon应用,及一些系统服务。    telephony涉及到手机通信能力主要包括4个:call(通话),servicestate(服务状态),dataconnection(数据连接),sms(短信暂不介绍)。三大tracker,telephony-1中介绍的calltracker,servicestatetracker,dat

2016-09-26 21:45:20 676

原创 telephony-1(ril模块)

本文介绍telephony的ril部分,ril框架图如下:ril框架    上图介绍了ril信息从ril.java到modem的传递过程,下面开始解析上图。    1.ril.java     该文件是android的framework层跟ril的对接接口,也就是说framework及应用层的Java代码想调用ril跟modem通信都得通过该文件来跟ril通信。

2016-09-26 21:41:32 2008 2

原创 uim详解-5(卡上操作系统cos)

目前智能卡cos有两种,一种是采用javacard技术,另一种是native技术。    先贴上网上搜到的两种技术对比,助于了解两种技术的区别。 JavaCardNative功能特性开发语言l  纯面向对象的Java语言的子集。Java语言先进灵活,开发调试速度快,实现灵活。

2016-09-18 18:04:30 4060 1

原创 uicc详解-4(uicc在UE端的初始化过程)

uicc初始化流程如下所示:

2016-09-13 14:35:53 2599

原创 uicc详解-3(uicc在UE端的软件架构及命令流程-续)

上篇文章中主要介绍了qmi接口到sim命令传输的过程,相反本文将会介绍从sim卡到qmi的传输过程。    先把上文的软件架构图贴出来:    接下来分析uim到qmi uim的过程。

2016-09-12 17:04:06 1672

原创 uicc详解-2(uicc在UE端的软件架构及命令流程)

本篇文章将从两侧分析sim卡的开机流程:UC侧与sim侧。UE侧分析    UE侧使用android操作系统,高通平台,uicc软件架构如下:    uicc软件架构图QCRIL传输的是GENERIC COMMANDS即上章中的命令(文件操作,pin,鉴权等),而QCRIL STK传输的是CAT COMMANDS(toolkit及文件操作)。uicc初始化流程如下所

2016-09-12 17:02:04 4854

原创 uicc详解-1(常识介绍)

本文档介绍了uicc的分类以及卡的文件架构与命令格式。    首先我们来看一个结构体:typedef enum{ UIM_NO_SUCH_MODE = 0, UIM_ICC = 1, UIM_CDMA = UIM_ICC, UIM_GSM = UIM_ICC, UIM_UICC = 2, UIM_WCDMA = UIM_UICC, UIM_MAXIMUM

2016-09-12 16:59:21 4210

原创 专题目录

后续博客开展专题目录如下:1.sim卡详解(apdu,ue端,卡端,javacard,gsdi,gstk)2.telephony详解(java,rild,qmi,modem)3.3GPP概述及分析流程(qxdm,qcat,etsi,attach过程)4.wifi详解(wap_supplicant,netd,流量,wireshark)5.fota升级(单modem自制,andro

2016-09-12 15:34:53 555

转载 linux蓝牙驱动代码阅读笔记

net/hci_core.cHCI 在主机端的驱动主要是为上层提供一个统一的接口,让上层协议不依赖于具体硬件的实现。HCI在硬件中的固件与HCI在主机端的驱动通信方式有多种,比如像 UART、USB和PC Card等等。hci_core.c相当于一个框架,用于把各种具体通信方式胶合起来,并提供一些公共函数的实现。hci_cmd_task是负责发送CMD的任务,它从hdev->cmd

2013-07-24 14:47:13 866

转载 在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务

我们在Android系统增加硬件服务的目的是为了让应用层的APP能够通过Java接口来访问硬件服务。那么, APP如何通过Java接口来访问Application Frameworks层提供的硬件服务呢?在这一篇文章中,我们将在Android系统的应用层增加一个内置的应用程序,这个内置的应用程序通过ServiceManager接口获取指定的服务,然后通过这个服务来获得硬件服务。      

2013-07-18 12:05:18 880

转载 在Ubuntu上为Android系统的Application Frameworks层增加硬件访问服务

在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行。今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两个系统上有着丰富多彩的各种应用软件。因此,软件和硬件的关系,在一定程度上可以说,硬件是为软件服务的。硬件工程师研发出一款硬件设备,自然少了软件工程师为其编写驱动程序;而驱动程序的最终目的,是为了使得最上层的应用程序能够使用这些硬件提供的服务来为用户提供软件功

2013-07-18 12:04:32 679

转载 在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口

在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口。实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务。我们知道,Android系统的应用程序是用Java语言编写的,而硬件驱动程序是用C语言来实现的,那么,Java接口如何去访问

2013-07-18 12:03:57 696

转载 在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序

在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简要介绍了在Android系统为为硬件编写驱动程序的方法。简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的硬件抽象层中。接着,在Ubuntu上为Android系统编写Linux内核驱动程序一文中举例子说明了如何在Linux内核编写驱动程序。在这一篇文章中,我们将继续介绍Android系统硬件驱动程序的另一

2013-07-18 12:03:25 588

转载 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序

在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序。在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello、proc系统文件/proc/hello和devfs系统属性文件/sys/class/hello/hello/val。进一步,还通过cat命令来直接访问/proc/hello和/

2013-07-18 12:02:53 668

转载 在Ubuntu上为Android系统编写Linux内核驱动程序

在智能手机时代,每个品牌的手机都有自己的个性特点。正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了。据统计,截止2011年5月,AppStore的应用软件数量达381062个,位居第一,而Android Market的应用软件数量达294738,紧随AppStore后面,并有望在8月份越过AppStore。随着Android系统逐步扩大市场占有率,终

2013-07-18 12:02:08 703

转载 Android硬件抽象层(HAL)概要介绍和学习计划

Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了两层,一层放在用户空间(User Space),一层放在内核空间(Kernel Space),其中,硬件抽象层运行在用户空间,而Linux内核驱动程序运行在内核空间。为什么要这样安排呢?把硬件抽象层和内核驱动整合在一起放在内核空间不可行吗?从技术实现的角度来看,

2013-07-18 12:00:06 639

转载 USB On-The-Go引脚 说明

USB On-The-Go 是什么    USB 接口的设备现在是随处可见了,打印机、相机、手机、MP3等几乎目前能想到的消费类电子设备都具有 USB接口。USB传输速率快,接口简单、支持热插拔的特性,使其在诸多接口中脱颖而出,大有统一天下之势。但传统的USB协议(USB2.0)限制了在 这庞大的设备群中必须有一个HOST作为主子,通常是PC。两个外设之间的数据交换必须通过这个主子中转才能

2013-07-18 11:57:24 1718

转载 OTG驱动分析(二)

上回介绍了OTG功能的 OTG部分驱动,本片分析OTG功能的从设备部分驱动。从设备的注册过程和OTG的一样,首先注册设备。流程是:1. 定义platform_device结构。 2. 定义platform_device下的struct resource设备资源结构 3. 定义 platform_device下的DEV设备下的平台私有数据(就是该设备私有的数据) 4. 调

2013-07-18 11:55:53 2296

转载 USB OTG驱动分析(一)

前一段时间弄了 2 个礼拜的 OTG 驱动调试,感觉精神疲惫啊。主要原因还是自己对 OTG 功能不了解造成的。现在终于完成但是对实质原理还有些模糊。所以 自己重新总结一下。因为自己是菜鸟,所以用菜鸟的白话方式分析。高手滤过吧。 所谓 OTG 功能 就是具备该功能的设备即可当主设备(host) 去轮询别人,也可以当从设备 (device) 去被别人轮~~(双性人?)。正所谓所有的产品和功能都是因为需

2013-07-18 11:54:48 2184

转载 platform设备驱动全透析

1.1 platform总线、设备与驱动在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SPI等的设备而言,这自然不是问

2013-07-18 11:51:50 673

转载 Linux Platform Device and Driver

从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。 Linux platform driver机制和传统的device driver 机制(通过driver_register函数

2013-07-18 10:35:45 910

转载 基于MTD的NANDFLASH设备驱动底层实现原理分析

经过UBOOT初步的移植,Linux内核初步的移植,Linux内核总线设备模型的分析,等一系列痛苦的折腾,目的就是想更好的来分析下NANDFLASH的驱动。。大概一共历经了半个月的时间,慢慢的对NANDFLASH驱动程序有感觉了。。。一、MTD体系结构:Linux内核提供MTD子系统来建立FLASH针对Linux的统一、抽象接口。MTD将文件系统与底层的FLASH存储器进行隔离。

2013-06-21 11:12:42 3258

转载 LINUX之LCD驱动

一  实验内容简要描述1.实验目的学会驱动程序的编写方法,配置S3C2410的LCD驱动,以及在LCD屏上显示包括bmp和jpeg两种格式的图片2.实验内容 (1)分析S3c2410实验箱LCD以及LCD控制器的硬件原理,据此找出相应的硬件设置参数,参考xcale实验箱关于lcd的设置,完成s3c2410实验箱LCD的设置 (2)在LCD上显示一张BMP图片或JPEG图片3

2013-06-21 11:08:32 1294

原创 SIM之APDU指令格式

sim与ME之间通过APDU进行交互。APDU包括命令APDU跟相应APDU,其中命令APDU格式为CLA+INS+P1+P2+P3+DATA,响应APDU格式为Data+SW1+SW2,当由ME从SIM读取数据时则STPlayer使用READ,往上写数据则使用WRITE模式。每个命令格式及APDU的格式我已经都写过一遍了,这里就不多做介绍 ,主要介绍为什么这么写跟返回值如何判断。 M

2013-06-21 11:01:14 10994

转载 LINUX之GPIO驱动及接口使用

打算跟着友善之臂的《mini2440 Linux移植开发指南》 见 http://www.linuxidc.com/Linux/2011-06/37904.htm 来做个LED驱动,虽然LED的原理简单得不能再简单了,但是要把kernel中针对于s3c24**的GPIO的一些数据结构,还有函数搞清楚也不是那么轻松的事,所以本文主要简单地说明下LED驱动中的相关数据结构以及函数/宏的定义,并对驱

2013-06-21 10:59:32 7773 2

转载 LINUX之makefile与kconfig

本文章介绍了makefile跟kconfig文件,包括编译过程与makefile编码规则。  编译过程:    我们在进行linux内核配置的时候经常会执行make menuconfig这个命令,然后屏幕上会出现以下界面: 这个界面是怎么生成的呢?跟我们经常说的内核配置与与编译又有什么关系呢?下面我们借此来讲解一下linux内核的配置机制及其编译过程。一、配置系统的

2013-06-20 16:14:19 1316

原创 I2C驱动

本文章介绍了LINUX平台的I2C驱动及非LINUX平台的I2C驱动。 一、 I2C协议    I2C只有两条线:SDA/SCL,广泛应用在EEPROM,实时时钟,LCD设备。     开始与停止:当SCL为高电平时,SDA拉低,开始发送数据。当SCL为高电平时,SDA拉高结束传输。开始与停止信号的时序图:     数据传送:SCL线呈现高电平期间,SDA线上的电平

2013-06-19 18:21:34 1316

原创 LINUX之设备驱动开发概述

1)在drivers/char下编写驱动代码。 主要函数module_init:注册设备节点,创建设备module_exit:注销设备节点,删除设备fops函数:包括open、ioctl、close等驱动函数结构。 2)在drivers/char下的Kconfig文件中加入该模块并make menuconfig配置内核。      在drivers/char下的Ma

2013-06-19 17:43:02 839

原创 spinner ArrayAdapter

public class MainActivity extends Activity { /** Called when the activity is first created. */ //声明Spinner对象 private Spinner spinner = null; @Override public void onCreate(Bundle savedInstan

2011-12-15 13:52:43 2344

原创 progressBar ListView

ProgeressBar android:id="@+id/firstBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="200dp" android:layout_height="wrap_content" android:visibility="gone"//不可见

2011-12-15 13:52:10 523

原创 RadioGroup RadioButton ,checkBox ,menu

RdioGroup组中有多个RadioButton。        //为RadioGroup设置监听器,需要注意的是,这里的监听器和Button控件的监听器有所不同        genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {   @Override   publi

2011-12-15 13:51:41 503

原创 content provider

1、简介1)Content Provider提供为存储和获取数据提供了统一的接口2)使用Content Provider可以在不同的应用程序之间共享数据3)Android为常见的一些数据提供了Content Provider(包括音频,视频,图片和通讯录等等)2、Content Provider使用表的形式来组织数据URI:统一资源标识符1)每一个Content Provi

2011-12-15 13:50:36 396

boa移植到android平台

boa移植到android平台,本人已在开发板上实验过,可用产品。。。。

2011-11-08

LINUX内核源代码情景分析

LINUX内核源代码情景分析 包含上下册

2011-11-08

两天学会java教程ppt

简约而不简单,让你快速全面学会java

2011-11-08

通过ip获取mac地址(arp)

通过arp协议,输入ip输出mac地址

2011-11-08

空空如也

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

TA关注的人

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