搜档网
当前位置:搜档网 › 高通平台Driver开发的参考文档

高通平台Driver开发的参考文档

高通平台Driver开发的参考文档
高通平台Driver开发的参考文档

高通平台Driver开发的参考文档

版权说明

本文本中所包含的一切信息,包括文字,图表,数据,图形,图象,方法和思想都是联

想移动通信科技有限公司财产,未经联想移动通信科技有限公司书面授权,任何个人和

组织都无权透露,拷贝,复制,拍照和传输该文本中的一切信息。

联想移动通信科技有限公司版权所有联想移动产品开发部软件处- I -

修订记录

联想移动产品开发部软件处- II -

目录

第1章前言 (3)

1.1 文档目的及开发背景 (3)

1.2 参考文献 (3)

1.3 术语和缩写解释 (3)

第2章综述 (5)

2.1 高通平台的硬件架构 (5)

2.2 高通平台驱动文件结构 (6)

2.3 ARM相关知识 (6)

2.3.1 ARM基本知识 (6)

2.3.2 ARM存储器格式 (9)

第3章Driver相关模块介绍 (10)

3.1 REX简介 (10)

3.2 Boot (11)

3.2.1 Nor Boot (13)

3.2.2 Nand Boot (13)

3.2.3 Boot流程 (14)

3.3 Gpio (15)

3.3.1 GPIO的作用 (15)

3.3.2 GPIO的用法 (16)

3.3.3 GPIO注意事项 (19)

3.4 内存管理 (19)

3.4.1 队列(Queue) (19)

3.4.2 DS存储池 (20)

3.4.3 Watermark –flow control point (22)

3.5 Sleep (25)

3.5.1 Sleep硬件相关知识 (25)

3.5.2 Sleep软件相关知识 (26)

3.5.3 查Sleep电流方法 (27)

3.6 SIO (28)

3.6.1 SIO模块的架构 (28)

3.6.2 SIO数据处理流程 (29)

3.7 重启问题分析 (30)

3.7.1 软件狗检测异常 (30)

3.7.2 发生data abort导致重启 (31)

3.7.3 指针未初始化引起的系统重启 (31)

3.7.4 注意事项 (32)

联想移动产品开发部软件处- I -

联想移动产品开发部软件处- II -

第1章前言

1.1 文档目的及开发背景

1.3 术语和缩写解释

联想移动产品开发部软件处- 3 -

联想移动产品开发部软件处- 4 -

联想移动产品开发部软件处 - 5 -

第2章 综述

2.1 高通平台的硬件架构

目前开发EVDO 的手机或模块大部分采用了QSC6085平台。高通QSC 系列的平台是高度集成化,它将PMIC 、RF 相关模块也集成到一块芯片里(其他公司很少做到这点),对硬件来说可以省很多事。除了上述特殊模块之外,当然也包括一般的LCD 、KPD 、AUDIO CODEC 等很多驱动模块!具体如下图所示:

QSC6085处理器采用ARM9核+DSP 的架构,一般就不需要再加DSP 去处理Audio 和图片。它集成这么多,其他硬件厂商的饭碗都被他抢了,不过这也是大势所趋!

2.2 高通平台驱动文件结构

在一般高通工程(60X5系列)目录下有一个Drivers文件夹,在该文件夹下包含了60X5系列平台上所有驱动文件,分门别类!

从上图中我们可以看到,每一个驱动都有独立的文件夹,这样对于新手学习代码来说比较容易找到相关代码。

2.3 ARM相关知识

因为高通处理器采用的ARM内核,遵循ARM指令,我们有必要学习一下ARM的一些基础知识。一般驱动开发中很少涉及到ARM指令,除了BOOT以及flash开发,大部分都在C语言环境中开发。在这部分我讲的不会太深入,如果大家想深入了解ARM架构,可以去看《ARM体系结构与编程》这本书,相当经典!

2.3.1 ARM基本知识

ARM 采用的是32位架构。也就是说ARM CPU内部的总线是32位的,每条ARM汇编指令都是32位的指令。一个CPU时钟周期最多可以处理一条32位指令或者读取一个32位的数据。32位的指令意味着,与8位和16位的CPU相比,在一个时钟周期内,指令可以携带更多的信息。

联想移动产品开发部软件处-

6 -

ARM 有7个基本工作模式:

User:非特权模式,大部分任务执行在这种模式

正常程序执行的模式

FIQ:当一个高优先级(fast)中断产生时将会进入这种模式

高速数据传输和通道处理

IRQ:当一个低优先级(normal)中断产生时将会进入这种模式

通常的中断处理

Supervisor:当复位或软中断指令执行时将会进入这种模式

供操作系统使用的一种保护模式

Abort: 当存取异常时将会进入这种模式

虚拟存储及存储保护

Undef:当执行未定义指令时会进入这种模式

软件仿真硬件协处理器

System: 使用和User模式相同寄存器集的特权模式

特权级的操作系统任务

ARM 有37个32-Bits长的寄存器.

1 个用作PC( program counter)

1个用作CPSR(current program status register)

5个用作SPSR(saved program status registers)

30 个通用寄存器

当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取:

相应的r0-r12子集相应的 r13 (the stack pointer, sp) and r14 (the link register, lr) 相应的 r15 ( the program counter, pc)

相应的CPSR(current program status register, cpsr)

特权模式 (除system模式) 还可以存取;

相应的 spsr (saved program status register)

联想移动产品开发部软件处-

7 -

联想移动产品开发部软件处 - 8 -

Z = 1-结果为0,0-结果不为0

C =1-进位,0-借位

V =1-结果溢出,0结果没溢出

Q 位:仅ARM 5TE/J 架构支持,指示增强型DSP 指令是否溢出

J 位:ARM 5TE/J 架构支持 J = 1: 处理器处于Jazelle 状态

中断禁止位:

I = 1: 禁止 IRQ.

F = 1: 禁止 FIQ.

T Bit: T = 0: 处理器处于 ARM 状态T = 1: 处理器处于 Thumb 状态

Mode 位(处理器模式位):

0b10000 User

0b10001 FIQ

0b10010 IRQ

0b10011 Supervisor

0b10111 Abort

0b11011 Undefined

0b11111 System

2.3.2 ARM存储器格式

在ARM体系中,每个字单元包含4个字节单元或者两个半字单元;一个半字单元中包含两个字节单元。但是在字单元中,4个字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式;big_endian格式和little-endian格式。比如一个整型数0x12345678在内存中如下图所示

-----------

| 78 | xxxx_0000

-----------

| 56 | xxxx_0001

-----------

| 34 | xxxx_0002

-----------

| 12 | xxxx_0003

-----------

Little Endian

-----------

| 12 | xxxx_0000

-----------

| 34 | xxxx_0001

-----------

| 56 | xxxx_0002

-----------

| 78 | xxxx_0003

-----------

Big Endian

联想移动产品开发部软件处-

9 -

联想移动产品开发部软件处 - 10 -

第3章 Driver 相关模块介绍

3.1 REX 简介

虽说目前QSC60x5平台上采用L4操作系统,REX 只是L4上面的一个Task 。但高通为了开发的兼

容性,提供的API 仍然采用老的一套接口(可能内部实现不一样),很容易将老的代码移植到新的架构中。那么我还试必要介绍一下REX 。

REX 是一个操作系统的名字,它是Real-time Executive 的缩写。它是美国的QUALCOMM 开发的,REX 是一个简单的、高效的、抢占式的、多任务的、嵌入式实时操作系统。它最初是为应用于Intel 的80186而设计的,如今它已经被移植到了ARM 微处理器上。

下面是它比较重要的几个概念(其实和其他操作系统一样):

1、 Task

REX 把任务当作独立运作的实体,每一个任务都有自己独立的堆栈和优先级。每个任务都有一个数

据结构,我们称为“任务控制块”(TCB)。REX 允许在运行时,在任何时间动态的创建任意数量的任务。

但是创建的任务越多,REX 的性能便稍微递降,这是因为你创建的任务越多,任务列表越长。所以你需要确保你创建的任务数量尽量小。另外,REX 任务的负载量还跟你选择的处理器有关。 下面的图描述了REX 任务的启动过程:

TCB 也是一个比较重要的结构体,各个task 都有一个全局变量tcb ,这个tcb 包含了很多重要信息如,任务优先级、堆栈指针,信号量等,这些有时对查死机问题很有帮助。

2、 任务调度

REX总是选择处于就绪态的最高优先级的任务进行调度,如果任务的优先级不是唯一的,REX可能选择任何一个处于就绪态的最高优先级的任务进行调度。被选择的任务会一直执行,直到它自愿挂起或者中断发生而激活了更高优先级的任务。

当被挂起的任务的等待条件得到满足时,该任务就变成了就绪态。如果所有的认为都挂起的时候,那么空闲认为就被执行。

REX提供了一种机制,允许任务可以动态的提高或降低自己或其它任务的优先级。

3、信号量

信号量是任务之间进行通信和同步的桥梁。信号量是REX提供的一种任务间通信的机制。每个任务都有一套与之相关联的通用信号量,信号量通常作为任务的TCB的一部分,它们被用来通知任务某种事件的发生,任务的信号量可以被任何其它任务或中断设置或清除。

信号量实际上是一种约定机制,在多任务内核中普遍使用,信号量用于:

控制共享资源的使用权(满足互斥条件);

标志某事件的发生;

使2个任务的行为同步。

4、中断

REX是一个可剥夺的内核。当从中断返回的时候,控制权就被传递给处于最高优先级的就绪任务,而没有必要返回到被ISR中断了的任务处。

一般我们只会挂载GPIO中断,后续会介绍。

5、定时器

定时器,英文是timer。和其它内核一样,REX要求给用户提供定时时间,来实现超时控制等功能。REX中有些信号是事件触发引起,也可以由timer引起。一旦由于某种原因,等待的事件信号一直等不到,这时可以用timer定时来产生信号量。

关于以上几个概念,高通都提供了相关接口操作,具体参看代码!

3.2 Boot

高通平台系统Memory组成可以分为:NAND+SDRAM和NOR+PSRAM 。两者配置不能并存,这也就决定了有两种boot模式,具体决定采用哪种Boots方式是Boot_mode引脚决定。

联想移动产品开发部软件处-

11 -

联想移动产品开发部软件处 - 12 -

高通60x5系列采用了Multi-Image-Boot 技术,这可以从高通的代码看出,

从上述枚举变量中可以看出,flash 中有多个image.其中QCSBL+OEMSBL =SBL ,SBL 就相当于bootloader, Bootloader 主要是在Nand 启动方式中起作用!原因后续介绍!

其中每个Image 又是由三个部分组成:

3.2.2 Nand Boot

Nand Flash没有地址线,代码不能直接运行,因此需要Bootloader,那么bootloader的作用:联想移动产品开发部软件处- 13 -

可以看出相对NOR boot,Nand boot复杂很多。它需要将falsh中的Image复制到SDRAM,然后才能执行。并且要对各个image进行校验。

3.2.3 Boot流程

Boot是一个很复杂的过程,尤其是Nand Boot,需要你对ARM架构很深的了解,这边只是简单示意相关流程,具体大家可以参考代码!

联想移动产品开发部软件处-

14 -

3.3 Gpio

3.3.1 GPIO的作用

GPIO 作为QSC60X5 与外界沟通的桥梁,主要有四个作用:

1.通过GPIO 向外部输出一个高/低电平,控制外部的器件或者通知外部器件某事件的发生。例如我们可以通过GPIO 输出一个高电平点亮一个LED,或者输出低电平关掉一个LED。2.通过GPIO 读入一个外界的高低电平输入,检测外部器件的当前状态。例如键盘按键是否按下的探测。

3.将GPIO 口作为外部中断信号的一个输入口,实时检测外部事件的发生。

4.将GPIO 用作其他特定用途。例如用作I2C 通信、数据线、地址线等。

联想移动产品开发部软件处- 15 -

3.3.2 GPIO的用法

1.配置一个GPIO 口。通常一个GPIO 有多种功能,我们可以将GPIO 配置为符合我们当前需要的功能;同时我们也可以将GPIO配置为内部具有上拉电阻、下拉电阻或者没有任何上下拉电阻。文件GPIO_60x5.c 中定义了配置GPIO 的函数接口

void gpio_tlmm_config(GPIO_SignalType gpio_signal)

{

}

gpio_signal 指定要配置成的功能,文件GPIO_60x5.h 枚举出了每个GPIO 的可配置的功能选项:

typedef enum

{

GPIO_OUTPUT_3 = GPIO_OUT(3,0),

GPIO_INPUT_3 = GPIO_IN(3,0,GPIO_PULL_DOWN),

SDCC_DATA0 = GPIO_ALT(3,0,1,GPIO_PULL_UP),

DBG_BUS_IN_7 = GPIO_ALT(3,0,2,GPIO_PULL_DOWN),…

}

例子:

SDCC_DATA0 = GPIO_ALT(3,0,1,GPIO_PULL_UP) gpio_tlmm_config(SDCC_DATA); /* 将GPIO3 配置为SD卡的数据线1*/ gpio_tlmm_config(GPIO_INTPUT_3); /* 将GPIO26 配置为通用的有下拉电阻的输入端口*/

2.从GPIO 输出高/低电平。首先应该通过函数接口gpio_out来确定GPIO输出高电平或者低电平,然后通过函数接口gpio_tlmm_config把该GPIO配置为通用功能(非特定功能),在该配置函数中调用一个宏函数接口BIO_TRISTATE 打开GPIO 使能,将此电平输出出去。

void gpio_out(GPIO_SignalType gpio_signal,GPIO_ValueType gpio_value) /*将GPIO 寄存器设置输出的电平*/ BIO_TRISTATE(io, mask, val) /*GPIO 寄存器中的值输出出去:输出使能*/

例子:使GPIO 31 输出低电平

联想移动产品开发部软件处-

16 -

gpio_out(GPIO_OUTPUT_31, GPIO_LOW_VALUE);

gpio_tlmm_config(GPIO_OUTPUT_31);

3.从GPIO 读入外部器件输入的高/低电平,检测外部的事件或者状态。只能从一个输出已被disable 的GPIO 读入输入的高/低电平,也就是说只能从一个已被设置为输入模式的GPIO 读入高/低电平。从GPIO 读入外部输入的高/低电平的宏函数接口:

GPIO_ValueType gpio_in

(

GPIO_SignalType gpio_signal

),

gpio_signal解释见上面的说明,而返回值

typedef enum

{

GPIO_LOW_VALUE = 0,

GPIO_HIGH_VALUE = 1

} GPIO_ValueType;

例:判断GPIO3的当前状态

gpio_tlmm_config(GPIO_INTPUT_3);

if (gpio_in(GPIO_INTPUT_3) == GPIO_LOW_VALUE)

{

…..

}

4.将GPIO 设置为某个中断信号的输入口。这样外部器件一旦有中断信号(高电平或者低电平)输入到此GPIO 端口,将直接触发一个中断,指定的ISR 将被调用,处理中断事件。中断的好处在于中断事件可以实时得到处理,无论系统是否处于睡眠状态。接口函数有两个:

A)gpio_int_set_detect(gpio_int_type which_group_int, gpio_int_detect_type detect) /*指定边沿触发还是电平触发*/

B) boolean gpio_int_set_handler

(

gpio_int_type which_group_int,

联想移动产品开发部软件处-

17 -

高通平台充电方案

Qualcomm平台充电总结 1.锂离子电池充放电特性 1.1. 锂离子电池充电电压的上限必须受控制,一般不超过4.2V。(视具体情况,一般控制在4.10V-4.35V不等) 1.2.单体电池充电电流通常限制在1C以下。 1.3.单体电池放电电流通常控制在3C以下。 1.4.单体电池放电电压通常不能低于 2.2V。 电池电量与电压对照曲线 2.充电通路晶体管的控制和功率限制 外部通路晶体管的控制驱动器包含在了PM IC中;这个驱动的输出可以内部晶体管应用,也可以通过CHG-CTL-N脚供外部应用。如果需要的话,一般操作时PM IC使用通路晶体管的闭环控制来校准VDD电压,快速充电(恒流充电)时的检测电流(IDET),或者充电最后状态的电池电压。通路晶体管的阻抗也被增加以用来过流保护。 控制通路晶体管同样允许用来过热保护:PM IC通过电压和电流的测量来监控通路晶体管中消耗

的功率。如果计算出的功率超过设计限制,CHG-CTL-N控制信号就会减小通路晶体管的通路电流。 2.1.通路晶体管的功率消耗限制是可编程的: 1)晶体管的消耗功率是使用VCHG(或USB-VBUS)和ISNS-P脚上的电压测量以及基于敏感电阻两端(ISNS-P和ISNS-M脚)电压的电流测量来计算的。 2)可编程的管耗限制(单位为瓦特)为0.4,0.5,0.6,0.75,1.0,1.5,2.0和“无限制”。 这些可编程限制采取一个0.100ohm的敏感电阻。 2.2设计者需要考虑以下几点来帮助减少通路晶体管的功率消耗: 1)使用一个只比锂电池最高电压高一点的外部供应电压来使越过通路晶体管的电压最小化。 2)设计充电器电压,使它的输出电压在快速充电期间崩溃,从而减少越过通路晶体管的电压。 恒流充电期间要控制充电电流和通路晶体管管耗,因为这个阶段的充电电流较大,而充电三极管超过一定功率就容易发热甚至烧毁。所以通常情况下,恒流充电期间,我们都要求充电三极管处于饱和态,Vce很小以降低管耗,只有在usb充电或有特殊要求的wall充电中,才会让充电三极管工作在放大区,这个在5中会有讨论。 2.3.平台限流的影响。 1)如果平台限流大于wall charger额定电流,充电通路三极管状态由pm控制在饱和区(表现为恒流充电期间Vbus电压会被拉低,充电三极管处于饱和态,Vce很小,管耗很小); 2)如果平台限流小于wall charger额定电流,充电通路三极管状态由pm控制在放大区,以提高充电三极管CE极间阻抗,来降低通过的电流(表现为充电Vbus电压不会被拉低,三极管无法进入饱和态,Vce很大——管耗大,发热大)。 3.充电过程解析 PM IC提供了支持锂电池充电的线路,它利用了MSM使能的四种技术:涓流充电,恒流充电,恒压充电,脉冲充电。电池电压,外部供应电压和最大检测电流度量都可以通过一个模拟多路器供MSM使用。这就使得MSM设备可以监控充电参数,做决策和控制充电过程。

高通公司简介

高通公司简介 高通是全球3G、4G与下一代无线技术的领军企业,也是移动行业与相邻行业重要的创新推动者。30多年来,高通的技术驱动了智能手机的变革,将数十亿人连接起来。我们在3G和4G当中作出了开创性的贡献,现在正在引领5G之路,迈向智能联网终端的新时代。我们的产品正在变革汽车、计算、物联网、健康医疗、数据中心等行业,并支持数以百万计的终端以从未想象的方式相互连接。 高通创立于1985年,总部设于美国加利福尼亚州圣迭戈市,30,000多名员工遍布全球。高通是财富“世界500强”公司,并连续14年入选《财富》“美国500强”;自2000年起连续被《金融时报》评为“全球最有价值500强企业”之一。2016年,高通中国荣获“中国最受尊敬企业”称号,该项评选由《经济观察报》和北京大学联合主办,是体现企业运营、技术创新、社会责任及美誉度等多维度实力的权威奖项。 以创新为己任的高通多年来始终着眼未来,坚持在研发方面的巨额投入,通过“发明-分享-协作”的商业模式,以先进技术惠及产业,加速推动整个生态系统发展,从而帮助无线产业链上各方获得成功。公司每年在研发方面的投入约为财年收入的20%。截止目前,高通累计研发投入约为440亿美元。 秉承一贯的创新精神,依靠技术创新和进步,高通不断引领3G、4G以及下一代无线技术的演进,在推动无线通信产业发展的同时,让先进的无线数字技术能够更好的造福人类。高通从2006年就已经开始5G前瞻性研究,在5G基础技术、原型测试等多个方面开展了大量

工作,并已成功发布多个原型测试平台,以及业界首款商用5G调制解调器,引领全球5G之路。2016年11月,高通5G NR(新空口)原型系统和试验平台在第三届世界互联网大会上荣获“世界互联网领先科技成果”。除此之外,高通还正在为3GPP的5G NR标准化进程做出积极贡献,并积极参与全球有影响力的试验与测试,与包括中国在内的全球行业参与者紧密协作。 Qualcomm Technologies, Inc. (QTI)为高通的全资子公司,与其子公司一起运营高通所有的工程、研发活动以及所有产品和服务业务,其中包括其半导体业务QCT。2016财年QTI 的MSM芯片出货量达8.42亿片,充分体现了在核心芯片领域的领先优势。高通Technologies的骁龙?移动智能处理器是业界领先的全合一、全系列移动处理器,具有高性能、低功耗、逼真的多媒体和全面的连接性。截至2014年11月,搭载骁龙处理器的Android 智能手机出货量已经超过10亿部。QTI的产品和服务不仅仅局限于移动智能终端,目前公司的产品和业务已经拓展至医疗、汽车、物联网、智能家居、智慧城市等多个领域,并已推出超过25款专门设计和面向大众市场的物联网智能平台。截至目前,采用高通技术的物联网终端出货量已超过10亿部。 高通在九十年代进入中国市场,迄今已经二十余载,先后在北京、上海、深圳和西安开设了四家分公司,在北京和上海设立了研发中心,并在深圳设立其全球首个创新中心。秉承“植根中国,分享智慧,成就创新”的理念,高通致力于在中国向下一代无线技术演进的过程中,为中国的运营商、制造商和开发商合作伙伴提供全力支持。在高通中国区全体员工的不懈努力下,中国在全球业务发展中扮演的角色越来越重要,是全球最重要的市场之一。

高通8909平台NQ210调试

高通8909平台NQ210调试说明 高通平台电信VOLTE仅在Android 7.1上实现,而原来的NFC解决方案(PN547)只支持到Android6.0,所以有了高通8909+NQ210+Android7.1这个组合,以实现电信VOLTE+NFC。 F9 R4.1+NQ210 NFC性能调试过程中,几点说明: 1,配置文件需要将NXP的RF_BLK参数合入到高通默认参数 2,注重Rx端匹配调节,对读卡性能有较大提升。调试方法详见附件 3,最终的NFC电路可以不用DCDC,也不用MOS管实现读卡、点对点和开关机卡模拟。性能如下,满足我们要求 配置文件 高通参考设计里给了两个配置文件 /system/etc/libnfc-brcm.conf /system/etc/libnfc-qrd_default.conf 其中libnfc-qrd_default.conf没有NXP_RF_CONF_BLK的六组配置参数,NXP_CORE_CONF_EXTN 的配置参数也不全 从WPI给的配置文件libnfc-nxp_RF - EMVCO.CONF中,将NXP_RF_CONF_BLK六组参数和NXP_CORE_CONF_EXTN配置参数全部拷到libnfc-qrd_default.conf中,并将此文件替换手机中的默认文件。若出现卡模拟性能不佳,也可以在补全的配置文件中通过修改相位来进行优化。

配置文件中需要重点注意的是,NXP_EXT_TVDD_CFG的配置一定要和硬件对应。其中Config1是不采用DCDC的,Config2和3都是采用DCDC供电的。对于我们的项目,在没有DCDC下性能也能满足要求,所以NXP_EXT_TVDD_CFG=0x01 NFC匹配电路 F9 R4.1+NQ210最终的匹配电路如下: 其中:L4802+C4818/L4803+C4820是EMI Filter,采用默认值即可。 C4814+R4806/C4816+R4808是Rx通路匹配,对读卡性能同样有较大影响。靠近读卡器无法正确读卡,而远离读卡器就能正确读卡的问题,也可以通过Rx通路来优化。 中间的串电容,并电容就是NFC天线的发射匹配,NQ210的发射阻抗在30ohm,和PN547的50ohm有所不同。在实验室也可以以读卡/身份证距离为测试标准,盲调匹配电路。 这里重点针对Rx通路的优化进行说明。通常保持电容1nF不变,通过调节电阻来优化Rx通路。判断标准是要保证AGC值在500-800之间,可通过如下步骤优化电阻: 1,修改配置文件A0, 40, 01, 01-> A0, 40, 01, 81,让log中能看到AGC值 2,将修改后的配置文件导入手机,重启手机后并重现打开NFC 3,通过adb logcat输出log,在log中找到“6F13”地址的后四位数字,如5C02即代表0X025C,转换成10进制就是604 4,若AGC太小则减小电阻值,若AGC太大就增大电阻值。同时兼顾实测情况下的NFC性能最终来确认电阻值。 我们最终选用的3.3K电阻,对应的AGC值为604,满足要求。

高通android平台开发

问题描述: 对于有过开发高通android系统的人来说,获取代码构建开发环境并不是难事,但对于刚刚接触这一块内容的人,如果没有详细的说明很容易走弯路,本文档就是根据本人的实践总结的一些经验教训。 1.代码获取 高通的android代码分为两部分,一部分是开源的,可以从网站https://https://www.sodocs.net/doc/5516017724.html,/xwiki/bin/QAEP/下载,需要知道要下载的代码的分支及build id。另一部分是非开源的,需要从高通的另一个网站https://https://www.sodocs.net/doc/5516017724.html,/login/上下载,这个下载是有权限限制的,晓光的帐号可以下载代码。后面这部分代码需要放到第一部分代码的vendor指定目录下,可能是vendor/qcom-proprietary或vendor/qcom/proprietary,根据版本的不同有所区别。 高通平台相关的东西基本都在vendor/qcom/proprietary下或device/qcom下 2.编译环境构建(ubuntu 10.04 64位) Android2.3.x后的版本需要在64位下进行编译 更新ubuntu源,要加上deb https://www.sodocs.net/doc/5516017724.html,/ lucid partner 这个 源用来安装java。 apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev x11proto-core-dev libx11-dev libxml-simple-perl sun-java6-jdk gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs lib32z-dev lib32readline5-dev 研发主机不能更新java,需要让IT安装sun-java6-jdk。 在命令行执行sudo dpkg-reconfigure dash 选择no,否则编译时会报一下脚本语法错误 编译的过程中https://https://www.sodocs.net/doc/5516017724.html,/xwiki/bin/QAEP/和版本的 release notes中都有介绍,首先source build/envsetup.sh,然后choosecombo选择需要的选项,最后make或make –j4。-j4用来指定参与编译的cpu个数,指定了编译会快些。编译单个模块的时候只需要在make后面跟 上模块的名字 为了简化可以使用以下脚本 export TARGET_SIMULATOR=fasle export TARGET_BUILD_TYPE=release export TARGET_PRODUCT=msm7627a export TARGET_BUILD_VARIANT=eng set_stuff_for_environment make $1 编译的中间结果在out/target/product/平台/obj目录下,有时候为了完全

基于Unity3D和高通Vuforia SDK的AR开发

基于Unity3D和高通Vuforia SDK的AR开发 发表时间:2017-12-13T09:47:20.257Z 来源:《科技中国》2017年8期作者:刘伟杨希文盼向兴婷 [导读] 摘要:本文基于Unity3D这一专业游戏引擎和高通Vuforia SDK制作一款简单的AR,模型通过3d max等三维建模软件进行制作。本文主要介绍基于Unity3D如何制作出一款适合教育领域的AR应用软件,并对AR的研究方向与前景做出探讨。 摘要:本文基于Unity3D这一专业游戏引擎和高通Vuforia SDK制作一款简单的AR,模型通过3d max等三维建模软件进行制作。本文主要介绍基于Unity3D如何制作出一款适合教育领域的AR应用软件,并对AR的研究方向与前景做出探讨。 关键词:增强现实(Augmented Reality),Unity 3D,教育领域 一、概述及研究现状 增强现实(Augmented Reality),简称AR技术。一种实时的记算摄影机摄影位置及角度并加上相应图形的技术,在显示屏中把虚拟世界叠加到现实世界中,用户可以通过设备与其进行交流互动。 目前,国内的AR技术发展迅速,在教育领域的应用也备受关注,具有广阔的发展前景。国内的AR多应用于儿童教育(出版物)等,随着移动手机性能的提升和AR技术(特别是图片识别技术)的发展,未来AR一定会在教育领域蓬勃发展,并且还会在社交、旅游、军事、医疗、游戏等诸多领域实现成功应用。 二、设计与实现模块 AR制作流程主要有:模型导入Unity—基于高通网站制作识别图——导入SDK,在Unity3D中完成后期制作(动画,模型渲染,脚本驱动,特效,声音等)——打包发布到安卓(Android)平台,下面具体进行介绍。 开发工具的准备:1、基于Unity 3D,所以先安装Unity3D,案例所用的版本是Unity3D5.6.1f(64位)的,安装SDK和JDK,保证后续可以发布到Android平台进行测试与应用。2、登录高通Vuforia网站注册账号。 三、识别图模块 制作识别图,首先登录高通Vuforia网站,点击Develop按钮,单击License Manager下的Add License Key,在Project Type选择Development。在Project Details下添加App name:AR Demo,点击Next,出现刚刚填写的信息,确认无误后,勾选下面的许可确定。点击Confirm,License Manager下面会有AR Demo,点击它出现License Key,后期在Unity里面会用到,所以将它复制下来。 再点击Target Manager,点击Add Database,在弹出的Create Database中填写Name:AR _Demo,Type选择默认的Device即可,点击Create。在Database出现刚刚创建的AR_Demo,后面有它的信息(Name,Type,Targets,Date Modified),Targets为0,要添加图片,点击它,点击Add Target,在弹出的Add Target下,我们选择Type为Single Image,点击File后面的Browse,选择准备好的图片,设置宽度:400,最后点击Add,这是出现Uploading Target,只需要等待几秒钟,就会看到Target制作完成,这时可以看到选择的图片复杂的Rating (等级),它的值越高代表可识别的点越多,识别也更加容易和准确。制作好后,勾选我们制作的Target,点击Download Database,在弹出的Download Database窗口中,选择开发平台(Select a development platform)为Unity Editor,然后点击Download进行下载。下载好后,识别图就制作完成,这时还需要下载Vuforia SDK。点击上面的Downloads按钮,点击Download for Unity,在弹出的Software License下点击I Agree。 四、Unity 3D实现AR模块 打开Unity,新建工程,导入两个*.unitypackage:AR _Demo和vuforia-unity-6-2-10,我们可以直接点击两个带有Unity图标的文件进行导入,也可在Unity菜单栏中选择Asset下的Import Package进行导入。删除unity自带的主摄像机Main Camera,在资源Assets目录下找到Vuforia—Prefabs—ARCamera,拖到项目场景中,再将Image Target也拖放到场景中,将右侧检视面板中Image target Behaviour下的Type选择AR_Demo),将模型放置在识别图上,调整模型大小和位置,让它处于摄像机中央。设置ARCamera:点击ARCamera右侧的Inspector下的Open Vuforia configuration,将刚刚复制的的License Key粘贴到App License Key中,并且勾选上Datasets下的Load AR_Demo Database 和Activate。 五、发布到Android平台模块 点击菜单栏File—Build and settings,选择发布平台Android,点击player settings,修改Package Name后参数Company,点击Add Open Scenes,然后Build,Unity生成apk可执行文件。最后,通过将生成的apk文件传到Android手机上并进行安装运行,实现预期效果。 六、结论与展望 本文的AR制作基于在Unity3D中完成相关测试,最后打包发布成APP安装到Android手机上,运行APP通过手机摄像机即可实现增强现实的效果,完美展示模型与现实的叠加。本文为从事AR相关开发的工作人员提供指导,也为在教育领域苦苦寻找更加高效的教学模式的教

高通平台常用调试Tool介绍1

高通平台的常用的调试tool: QPST, QRCT, QXDM, Trace32(use JTAG) 2013年09月07日?综合?共 4410字?字号小中大?评论关闭 OverView: QPST 综合工具, 传输文件, 查看device的EFS文件系统, 代码烧录 QRCT 测试RF QXDM 看log JTAG trace32调试 QPST,QXDM的使用说明,具体的可以看我上传到csdn的资源文件,我都是看它,看了那个user guide就完全会了,很简单的 QPST是一个针对高通芯片开发的传输软件。简单的说就是用高通处理芯片的手机理论上都可以用 QPST传输文件,可以修改C网机器内部参数的软件。 一次可以track多台电脑 QPST还可进行代码烧入 包括: 5个 client applications ? QPST Configuration monitor the status of: Active phones Available serial ports Active clients To start QPST Configuration, from the Start menu, select Programs → QPS T → QPST Configuration. ? Service Programming provide service programming for CDMA phones that contain Qual comm ASICs. With it, you can save SP data to a file, then download the data in that file to multiple pho nes. The SP application accesses settings regardless of the phone’ s internal memory implementation. It is feature- aware and displays settings pages appropriate to the phone being programmed. To start SP, from the Start menu, select Programs → QPST → Service Programming.

MTK,展讯,高通处理器介绍

1---MTK: MTK在移动领域CPU目前可以分为3个系列:1、MT62xx系列(功能手机);2、MT65xx系列(智能手机);3、MT83xx系列(平板)。 MT62xx系列,先看下图: 该系列属于功能手机产品线,主要采用ARM7、ARM9、ARM11三种架构,ARMv5T、ARMv6L指令集,这些功能手机芯片并不羸弱,应该说很有特点。有的性能规格甚至操过了09年顶级智能机的性能水准,如:MT6276。有的在省电造诣上独步天下:如MT6250,耗电仅为MT8389的1/10。目前的MTK比较新的安卓智能芯片也普遍延续着功能手机设计优势。注意,在MT62xx系列中,并非CPU架构越先进主频越高,手机越好,原因很简单,功能手机和智能机不同,追求的并非只是单纯的性能,而是功能、速度、价格及待机等特性的结合体,所以即便是MTK最低端的功能机都有着全能的心态,MTK可以实现用规格较低的硬件,做出很全面的机子。比如,ARM7架构的MT6250,虽然主频只有260MHz但可以在上面搭载智能化的Nucleus3.2.2系统,可以实现类似智能机的花俏界面,类似安卓的智能软件扩展和功能手机的超长待机,这些功能原本需要ARM11处理器才能完成的功能,而如今在ARM7上都可以实现了,用ARM7的好处非常明显,芯片授权费低廉,辐射最低,功耗超低,代表机型:联想MA309。在ARM9架构上MTK也有发力,比如MT6268,在246MHz的频率下就能处理联通3G的高额网络吞吐数据,WIFI数据等,代表机型:联想I62、P717、P650WG。ARM11的MT6276处理器造出来的功能机,几乎和智能机无异了,可以实现类似智能机的软件扩展和全3D界面,代表机型有:联想概念机ZK990。四两拨千斤是MTK功能手机芯片的特色。MTK功能手机的卖点不在于硬件是否强大,系统占主导地位,系统功能越多,功能越全面则手机越强,硬件却成为了附属品。不追求顶级性能,但要做全面,这一特性已经延续到智能平台上了,用MTK智能机的朋友往往会发现,它们性能并不是最强,反而很追求细节功能,比如超长待机(省电),比如外部接驳能力(USB-OTG),裸眼3D(英特图3D显示技术)等。MTK是很聪明的,在能保证和高通几乎一致的用户体验前提下,也就是在保证系统基本不卡,顺滑的前提下,追求一些附加功能,来产生卖点,这些启发一般都是来自功能机的,因为功能机是更加追求功能,在智能机上也追求功能,是寻求安卓系统差异化的有力表现。就以超长待机这一卖点打个比方,联想主打超长待机的P系列手机:P70(MT6573)、P700(MT6575)、P700i(MT6577)、P770(MT6577T)、P780(MT6589)整个系列全被MTK占领了,高通没

android课程介绍

1.课程基本信息 课程编号:M21F58D10 课程名称:Android应用与开发 开设学期:第3学期 总学时:60 总学分:4 课程类别:岗位能力课程课程性质:必修课 适用专业:软件技术(移动应用开发) 责任单位:计算机与软件学院 2.课程定位 《Android应用与开发》课程是软件技术(移动应用开发方向)专业的岗位能力课程,课程的开设依据是软件技术专业人才培养目标和相关职业岗位(群)的能力要求,对本专业所面向的手机软件开发与测试、软件开发与项目管理等岗位所需要的知识、技能和素质目标的达成起支撑作用。 在课程设置上,前导课程有《Java程序设计》(M21F1611),《数据结构》(M21F232),后续课程有《移动互联网开发综合实训》(M21J57B10)、《毕业实习》(M21J991)。 3.课程设计思路 首先依据专业人才培养方案中关于人才培养目标的阐述,明确课程目标;其次,结合职业教育课程观、教学观、能力观,基于软件工程的开发过程,以项目化教学来组织课程内容,在课程内容的选择与排序中,以软件项目研发的不同阶段、典型任务为载体,将课程内容划分为互相联系的学习情景;第三,通过对各学习情景中学习目标、主要内容、授课方式、师生要求等各项内容的描述,来规范课程所要求的内容;第四,通过对课程内容的选取和组合,以一个完整的项目为载体,完成课程的实施;最后,通过对项目实施过程中各个环节的考察和评价,来完成对课程的评鉴与考核。 本课程在设计上本着懂方法,重应用的总体思路,突出体现职业教育的技能型、应用性特色,着重培养学生的实践应用技能,力求达到理论方法够用,技术技能过硬的目的。 4.课程建设基本理念 本课程按照理论实践一体、课内外互补、课堂教学与培优工程相结合的课程设计指导思想,以任务或项目为载体组织教学内容,突出学生的主体地位,实现“教、学、做”的有机融合;通过班级讲授、团队学习、个体辅导、展示交流、技能大赛等手段,实现从模仿到应用到创新的高职学生递进式培养。 本课程强调对学生职业岗位能力的培养和职业素养的养成,针对不同环节,采用特定的教学方法,有意识、有步骤地将职业能力的训练和职业素养的形成融入到实际的教学过程中。

Android移动应用开发习题答案

Android移动应用开发习题答案 单元1 Android开发环境搭建与模拟器创建 1.填空题 (1) 2008 (2) Linux、操作系统 (3) 应用程序层、应用程序框架层、核心类库、Linux内核 (4) Java C++/C (5) 应用框架 (6) 应用程序 (7) 模拟器、Android模拟器 (8) IntelliJ IDEA Android 2.选择题 (1)创建程序的过程中,填写Application Name表示()。 正确答案:A (2)Android操作系统的手机可以有以下几个方法进行软件安装()。(多选题)ABCD (3)Android操作系统主要的特点是:()。(多选题) 正确答案:ABC (4)以下对Android操作系统描述正确的是:()。(多选题) 正确答案:ABCD (5)以下哪些是Android Stuido的优势()。(多选题) 正确答案:ABCD (6)以下哪些是Genymotion模拟器的优势()。(多选题) 正确答案:ABCD 3.简答题 (1)Android的四层架构分别包括哪几层?分别起到什么作用? 参考答案: Linux内核层(Linux Kernel):基于Linux内核,内核为上层系统提供了系统服务。 核心类库层(Libraries):系统库基于C/C++语言实现,通过接口向应用程序框架层提

基于Android Studio的移动应用开发任务驱动教程 供编程接口。 应用框架层(Application Framework):为开发者提供了一系列的Java API,包括图形用户界面组件View、SQLite数据库相关的API、Service组件等。 应用程序层(Applications):包含了Android平台中各式各样的应用程序。 (2)简述Android开发环境安装的步骤。 参考答案: 下载并安装JDK,配置JDK的环境变量; 从Anroid官网上下载Android开发组件(包含Eclipse和Android SDK、ADT); 安装Android开发环境(包括配置Android SDK的环境变量、打开Eclipse通过菜单设定Android SDK路径)。 (3)简述Android Studio的优势。 参考答案:略。 (4)简述Genymotion模拟器的优势。 参考答案:略。 (5)简述Android应用程序创建和运行的步骤。 参考答案: 通过菜单创建Android应用程序,设置应用程序名、Android版本等基本信息。 单击菜单中的运行按钮可以直接运行Android项目(也可以通过菜单配置运行参数, 指定运行的模拟器)。 单元2 Android Studio的组成结构与基本操作 1.填空题 (1) res/layout (2) Activity、Bundle (3) XML (4) java代码文件 (5) AndroidManifest.xml (6) 打包成.apk文件 2.选择题 (1)如果需要创建一个字符串资源,需要将字符串放在res\values的哪个文件中?()B (2)新建的Android程序默认的布局方式是相对布局(RelativeLayout),该布局中包含一个()控件。 B (3)要让布局文件或者控件能够显示在界面上,必须要设置RelativeLayout和控件的

Android平台介绍及使用指导

Android平台介绍及使用指导 二○一○年二月 版本 1.0

目录 Android平台介绍 ................................................................................... - 4 -基本名词...................................................................................................................... - 5 - 操作方法介绍 .......................................................................................... - 6 - 手机按键介绍.............................................................................................................. - 6 - 快捷键介绍.................................................................................................................. - 6 - 信息功能介绍.............................................................................................................. - 7 - 联系人功能介绍........................................................................................................ - 11 - 通话记录功能介绍.................................................................................................... - 14 - 文本粘贴/复制功能介绍.......................................................................................... - 14 - Push Email(Moxier)功能介绍............................................................................ - 15 - 电子邮件功能介绍.................................................................................................... - 16 - 桌面功能介绍............................................................................................................ - 19 - 蓝牙功能介绍............................................................................................................ - 23 - Wifi功能介绍........................................................................................................... - 23 - 飞行模式功能介绍.................................................................................................... - 23 - CDMA数据链接介绍................................................................................................... - 24 - 黑屏解锁功能............................................................................................................ - 25 - 回复出厂设置............................................................................................................ - 26 - 应用程序设置............................................................................................................ - 26 - GPS设置..................................................................................................................... - 27 - 手机中英文语言切换................................................................................................ - 28 - 更换手机输入法........................................................................................................ - 29 - 数据线链接Android手机........................................................................................ - 29 - 手机测试模式进入方法............................................................................................ - 30 - 横屏显示介绍............................................................................................................ - 30 - 浏览器功能介绍........................................................................................................ - 31 - RSS功能介绍............................................................................................................ - 32 - Q/A- 34 -

Windows7部署Android开发环境傻瓜式教程(Eclipse+ADT)

Windows7部署Android开发环境傻瓜式教程(Eclipse+ADT) (转) 以后工作中要用到android开发,所以想搭建好开发环境,笔记本装的是win7,在网上找了找相关资料,发现博客园有一片介绍搭建Android开发环境的文章,所以转载过来方便以后查看。转载地址:https://www.sodocs.net/doc/5516017724.html,/vengen /archive/2010/04/01/AndroidSetup.html 我把该教程做成了一个PDF,网速慢的朋友可以在这里下载https://www.sodocs.net/doc/5516017724.html,bl https://www.sodocs.net/doc/5516017724.html,/vengen/AndroidSetup.zip 准备文件: 1 下载Android SDK https://www.sodocs.net/doc/5516017724.html,/android/download.html WIN7 的安装方法与XP 的安装方式完全相同。 2 下载JDK6 https://www.sodocs.net/doc/5516017724.html,/javase/downloads/index.jsp 3 下载Eclipse3.4.1 https://www.sodocs.net/doc/5516017724.html,/downloads/ 对于Eclipse来说,直接解压之后就可以使用。 4 下载Eclipse的Android ADT插件 许多教程在这一步都是通过Eclipse自身的update功能进行下载: 启动Eclipse,选择【Help】> 【Soft Updates】> 【Find and Install…】 选择“Available Software”标签页,点击【Add Site…】按键。添加updat e站点:https://https://www.sodocs.net/doc/5516017724.html,/android/eclipse/ 这时窗口中新增了“https://https://www.sodocs.net/doc/5516017724.html,/android/eclipse/”项,选中该项,点击【Install…】按键即可下载。 注:许多国内的网友都无法完成这样的升级,通常是进行到一半就没有任何反映了(其他插件,例如pydev也是这样)。 没关系,我们直接到Android官网去下载这个ADT插件: https://www.sodocs.net/doc/5516017724.html,/android/adt_download.html

Android智能手机软件开发概述

第1章Android智能手机软件开发概述 随着移动设备的普及,其功能越来越完善,移动设备的系统平台也日渐火热。 本章首先介绍智能手机及其操作系统平台(如Symbian、Android、Windows Mobile、IOS等),并对学习Android手机软件开发的必要性进行阐述。之后, 介绍Android平台的总体架构,并对完成Android应用程序软件开发的SDK及 其组成进行简要说明。最后,对通过Android Market发布自己应用程序的方法 进行介绍。学习本章内容时,要求重点掌握如下内容: ●了解常见的智能手机操作系统平台。 ●了解Android的总体结构及主要功能。 ●了解Dalvik虚拟机、AVD等。 ●了解Android Market及发布应用程序的方法。 1.1 智能手机及其操作系统 据中国互联网络信息中心于2011年7月19日发布的统计《中国互联网络发展统计报告》显示,2011年上半年,我国手机网民规模继续稳步扩大。截至2011年6月底,我国手机网民达3.18亿,较2010年底增加1495万人(如图1.1所示)。可以说,智能手机正在快速走进人们的生活。就目前来看,已经有越来越多的人开始把智能手机当作日常看视频、办公的首选设备。随着A9架构、双核概念的问世,智能手机能更广泛、轻松地接管生活和工作中的大小事务[1]。因此,学习和研究智能手机软件开发,具有广阔的社会需求和工程实践意义。 图1.1 手机上网网民规模 智能手机一般指像个人电脑一样具有独立操作系统,可由用户自行安装软件等第三方服务商提供的程序,并且,用户能对手机功能进行扩充。目前,全球多数手机厂商都有智能手

手机高通平台BUIW简介

BUIW Training 01/07 2008

Content ?预备知识 ?Dialog框架(历史回顾) ?BUIW概述 ?BUIW基本原理 ?BUIW的使用(用BUIW构建app的UI)

预备知识 ?高通平台的mmi由许多app组成,每个app可分为logic和ui,app的ui由一系列的界面组成,每个界面由多个界面元素组成,比如一个图标,一个字符串,都是界面元素。在Dialog体制框架下,一个界面就是一个Dialog,一个或多个相关的界面元素构成一个Control,在BUIW下,它们分别叫做Form和Widget。

预备知识 ?IDisplay对象 类似MFC里的CDC对象,每个app有自己IDisplay对象,重要的函数如下 IDISPLAY_DrawText绘制文本 IDISPLAY_MeatureTextEx测量文本宽度 IDISPLAY_SetColor设置颜色(比如文的前背景色) IDISPLAY_SetClipRect设置剪切区域 IDISPLAY_Update更新屏幕 IDISPLAY_FillRect以指定颜色填充矩形 ?IImage对象 IImage_Draw绘制图片 IImage_SetOffset设置源图的偏移(画源图的一部分) IImage_SetDrawSize设置图的剪切大小 画图的一般方法 P_img=ISHELL_LoadResImage(); IImage_Draw(P_img); IImage_Release(P_img); UI框架就是对上述函数的封装,app程序员可以只用上述函数实现一个app的ui,但工作量很大,不易扩展,维护。

基于Android平台的浏览器开发与实现

中国地质大学 毕业设计(论文)开题报告 题目:基于Android平台的浏览器开发与实现 学院:机电学院 专业:通信工程 班级:075083班 学号:858 姓名:许磊 指导教师:张晓峰 日期:2012 年 2 月29 日

一、选题的依据及意义: 随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。 浏览器是网民进入互联网的第一窗口,让用户能够快速的访问自己所需要的信息,如小说、新闻、音乐、视频、体育赛事、天气情况、股市行情等。如今,手机浏览器不仅仅是一种网络应用程序,也逐渐成为一种网络应用平台。各种网络应用基本都可以在浏览器上实现,所以被用户广泛接受成为各大浏览器厂商的最主要目标。 研究本课题的意义是让用户有一个快速的上网浏览入口,给用户一个界面友好,功能强大,易于操作,便于管理的浏览器。同时也让自己更加熟悉Android 应用程序的开发,了解Android应用程序开发的流程,各个模块之间的联系。 二、国内外研究现状及发展趋势: Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序—移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和 T-Mobile 在内的30多家技术和无线应用的领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。 经过多年的发展,第三代数字通信( 3G)技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Android用户也逐渐增加,根据发展趋势,Android将成为第一大智能手机平台。 浏览器作为用户访问网络的窗口,各大厂商也相继推出了自己的浏览器,如

相关主题