⾼通平台android环境配置编译及开发经验总结
1、⾼通平台android开发总结
1.1 搭建⾼通平台环境开发环境
在⾼通开发板上烧录⽂件系统
建⽴⾼通平台开发环境
⾼通平台,android和 modem 编译流程分析
⾼通平台 7620 启动流程分析
qcril 流程分析,设置sim卡锁
python scons 语法学习
Python 语⾔之 scons ⼯具流程分析:
1.2 搭建⾼通平台环境开发环境
⾼通android智能平台概述
选择合适的源代码以及⼯具
建⽴ Android 开发环境(部分略)
建⽴ modem 开发环境
1.2.1 ⾼通android智能平台概述
⾼通 7230 android 智能⼿机解决⽅案的软件包括两个部分
1. 以linux 操作系统为基础的 android 系统
2. 以 L4,REX为基础的 Modem 部分
在⾼通7系列的架构中,⼀个IC内部集成有两个ARM处理器,⼀个ARM9(或者arm11),专门负
责处理通信协议,射频以及GPIO等,软件架构采⽤ AMSS,另外⼀个是ARM11,⽤来处理多媒
体,上层应⽤,以及其他的⼀些任务,运⾏的系统是 android 系统,这两个处理器之间通过共享内
存的硬件⽅式来进⾏通信。
1.2.1.1 什么是L4,REX,BREW,AMSS以及相互之间的关系制作android软件流程
L4是⼀组计算机程序,是最初由Jochen Liedtke设计的微内核构架的操作系统内核,现在已经形成
⼀个微内核家族。L4这个微内核系统由于其出⾊的性能和很⼩的体积⽽开始被计算机⼯业所认知,
被移植到了许多不同的硬件构架上。⾼通的 L4 提供了操作系统最基本的操作,是买别⼈的。
早期的操作系统绝⼤多数是 Monolithic Kernel, 意思是整个操作系统 – 包括Scheduling (调度), File
system (⽂件系统), Networking (⽹络), Device driver (设备驱动程序), Memory management (存储管
理), Paging(存储页⾯管理) – 都在内核中完成.⼀直到现在⼴泛应⽤的操作系统,如UNIX,Linux,和
Windows还⼤都是monolithic kernel操作系统.但随着操作系统变得越来越复杂(现代操作系统的内核
有⼀两百万⾏C程序是很常见的事情),把所有这些功能都放在内核中使设计难度迅速增加.
微内核是⼀个与Monolithic Kernel相反的设计理念.它的⽬的是使内核缩到最⼩,把所有可能的功能模
块移出内核.理想情况下,内核中仅留下Address Space Support(地址空间⽀持),IPC (Inter-Process Communication,进程间通讯),和Scheduling(调度),其他功能模块做为⽤户进程运⾏。
REX 是在 L4 之上封装的服务,是⼀个抢占式,多任务的RTOS,所有的任务都以task的形式存在,REX提供包括任务创建,同步,互斥,计时器,中断控制等功能的API,这⾥的task实际上就是我们的线程,每个 task对应着⼀个线程。REX维护⼀个task list(双向链表),始终运⾏⾼优先级的task。products⾥⾯所有的服务包括3g协议栈等都是以task的形式跑在rex之上的。
⽽Brew的话是运⾏的环境,跟Java 有点⼉类似,相当于是⼀个虚拟机。
AMSS――⾼级的移动⽤户软件(Advanced Mobile Subscriber Software)技术,是⼀种新的软件架构,是对原来软件架构 DMSS 的升级。 AMSS源代码实际上是QC BREW(Binary Runtime Environment For Wireless)平台的的底层部分,去掉了为应⽤程序提供接⼝的AEE(application execution environment)部分,⾼通在Dual Proc芯⽚上的其他平台基本上都是采⽤的这样的架构。
参考⽂档:
微内核操作系统及L4概述
MSM平台上的AMSS
1.2.2 选择合适的源代码以及⼯具
要编译出可供烧写使⽤的镜像⽂件需要三部分代码:
1) 获取经过⾼通打补丁的 android 源代码
2) 获取⾼通针对不同处理器的 vendor 源代码
3) 获取 modem 源代码
1.2.2.1 获取经过⾼通打补丁的android 源代码
⽹址:
⽬前使⽤的 android 分⽀:
Android 2.1 版本 eclair
M7630AABBQMLZA1150 msm7630 eclair            l 2010年02⽉01⽇M7630AABBQMLZA1200 msm7630 eclair        l 2010年03⽉30⽇
M7630AABBQMLZA2010 msm7630 éclair            l July 02, 2010
M7630AABBQMLZA1240 msm7630 eclair_caramel  l 2010年05⽉31⽇
M7630AABBQMLZA1250 msm7630 eclair_caramel  l 2010年06⽉15⽇
M7630AABBQMLZA1280 msm7630 eclair_caramel  l 2010年08⽉03⽇
M76XXTSNCJNLYA5340 msm7627 eclair_l 2010年06⽉04
Android 2.2 版本 froyo
M7630AABBQMLZA2020 msm7630  froyo          l 2010年09⽉01
M76XXTSNCJNLYA6050 msm7627  froyo_almond  l 2010年10⽉29⽇
以下命令获取代码:
ac_root=/home/shared/qualcomm
ac_root=/mnt/shared/qualcomm/
ac_date=20101105
ac_branch=froyo_almond
build_id=M76XXTSNCJNLYA6050
ac_l
mkdir -pv $ac_root/$ac_branch-$build_id-$ac_date
cd $ac_root/$ac_branch-$build_id-$ac_date
repo init -u git:///platform/manifest.git -b $ac_branch -m  $ac_xml
nohup repo sync&
1.2.2.2 获取⾼通针对不同处理器的vendor源代码
根据选择的 Android 源代码分⽀不同, vendor 代码的选择也是不⼀样的,BUILD ID 必须⼀致
M7630AABBQMLZA1150 对应 HY11-VR881-5.zip
M7630AABBQMLZA1250 对应 HY11-VR881-11.zip
M7630AABBQMLZA2020 对应 HY11-N1627-3.zip  AMSS 7X30 LINUX RELEASE 2.0.20
M76XXTSNCJNLYA6050 对应 HY11-N1188-6.zip  AMSS 7X27 LINUX REL 6.0.50
1.2.2.3 获取 modem 源代码
根据硬件配置情况,选择不同的 BUILD ID, 然后根据 BUILD ID 选择相近的源代码
BUILD ID 是⼀组字母的组合,如:AAABQOLYM
以下分别对各个字段进⾏说明:
第三个字母 A 表⽰ LPDDR2    #USES_LPDDR2=yes
第三个字母 B 表⽰ LPDDR1
第六个字母 M 表⽰ Multimode
第六个字母 C 表⽰ CDMA
第六个字母 D 表⽰ JCDMA      #相对于C多了:USES_UMTS=yes
USES_DSHDR_JCDMA_APIS=yes
第六个字母 O 表⽰ UMTS only #相对于C多了:USES_UMTS=yes
USES_SUPPORT_UMTS_GPS_PROTOCOLS=yes
#相对于C少了:USES_CDMA=yes USES_HDR=yes USES_REL_C=yes
USES_CDMA2000=yes
#USES_EXPORT_MCCMEID=yes USES_SUPPORT_CDMA_GPS_PROTOCOLS=yes
第7,8个字母为 AZ  表⽰ NADN boot
第7,8个字母为 LY  表⽰ eMMC boot  #相对于AZ多了选项: USES_SDCC_BOOT=yes USES_HSU_MS_FD_BOOT=yes
最后⼀个字母为 M  表⽰  modem
最后⼀个字母为 A  表⽰  app
以上为 7×30 平台的⼀些规律,具体参考⽂档,7227 参考相应的 release note:
<<80-VR192-1_E_AMSS_Linux_Software_Users_Manual.pdf>>
第1个字母
第2个字母  F: 基于ffa参考设计 S: 基于surf的参考设计
第3个字母
第4个字母
第5个字母  K /J
K 相对于 J 多了以下选项
USES_HSU_CHG_BOOT=yes
USES_HSU_FAST_CHARGE=yes
USES_CHARGER=yes
USES_EBI1_TURBO_FFA=yes
第6个字母  O/ N / P
O表⽰只⽀持 UMTS(WCDMA)
——————
USES_IPHC=yes
USES_PDCP=yes
USES_SUPPORT_UMTS_GPS_PROTOCOLS=yes
USES_UMTS=yes
—————–
P表⽰只⽀持 CDMA/CDMA2000
USES_CDMA=yes
USES_CDMA2000=yes
USES_REL_C=yes
USES_SUPPORT_CDMA_GPS_PROTOCOLS=yes
USES_EXPORT_MCCMEID=yes
USES_HDR=yes
—————–
N表⽰既⽀持 UMTS(WCDMA) 且⽀持 CDMA/CDMA2000
第7个字母
第8个字母
surf和ffa的区别
generally speaking surf have FPGA and don’t have battery.
and FFA don’t have FPGA but have battery.
msm7627_surf and msm7627_ffa and msm7627_7x_surf means different hardware reference design. please check with your hardware engineer on which qualcomm hardware reference you use and then select the right build command.
4.6 Build commands
To create an AMSS build, run the command script with the build ID matching the build configuration desired. The command scripts may be executed from the build/ms subdirectory or from the AMSS root directory using the full path to the command script as in the following examples:
./AMSS/products/<asic>/build/d – For SURF multimode build
./AMSS/products/<asic>/build/d – For SURF UMTS only build
./AMSS/products/<asic>/build/d – For SURF 1X only build
./AMSS/products/<asic>/build/d – For FFA multimode and for reference only
以⾼通的开发板⼦为例,看如何选择源代码,通过 QPST 连接⾼通的开发板,我们可以看到他的配置信息如下:
⾼通 demo 版的配置情况:SURF-MSM7630 7X30A-AAABQMAZM-1200
从配置情况来看只有 HY11-N0216-3_1.2.00  HY11-N0216-4_1.2.20 满⾜要求

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。