高通android智能平台环境搭建_编译流程分析,高通平台环境搭建,编译,系统引导流程分析参考...
高通有两个cpu,他们分别跑不同的系统,应用程序(ap)端是android系统,modem 端是高通自己的系统。
要编译出可供烧写使用的镜像文件需要三部分代码:
1) 获取经过高通打补丁的 android 源代码
2) 获取高通针对不同处理器的 vendor 源代码
3) 获取 modem 源代码
高通的开发板子为例,看如何选择源代码,通过 QPST 连接高通的开发板,我们可以看到他的配置信息
BREW 无线二进制运行时环境.BREW 是一个位于嵌入式芯片操作系统之上的抽象层,它能够提供对一些低级功能、环境变量和子程序的访问功能。
mbn类型文件时最终要烧写到板子上的镜像文件。
modem代码编译结果:
其中 adsp.mbn,amss.mbn,dbl.mbn,osbl.mbn,partition.mbn 位于以下目录:
./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/adsp.mbn
./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/amss.mbn
./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/dbl.mbn
./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/osbl.mbn
./modem-M7630AABBQMAZM1220/AMSS/products/7x30/build/ms/bin/AAABQMAZ/partition.mbn
appsboot.mbn,boot.img,system.img,userdata.img 位于以下目录:
./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/appsboot.mbn
./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/boot.img
./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/system.img
./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/userdata.img
./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/system.img.ext3
./eclair-M7630AABBQMLZA1150/out/target/product/msm7630_surf/userdata.img.ext3
要烧录的镜像文件:
烧录的镜像文件appsboothd.mbn appsboot.mbn boot.img system.img userdata.img persist.img
来自 android 源码appsboot.mbn 的主要功能是装载 linux 内核,通过 linux 的引导来完成 android 系统的加载。
appsboot.mbn的生成过程
make out/target/product/msm7630_surf/appsboot.mbn
make out/target/product/msm7630_surf/nandwrite
make out/target/product/msm7630_surf/emmc_appsboot.mbn
boot.img->kernel+ramdisk
1 kernel:arm/boot/zImage
2 ramdisk:make out/target/product/msm7630_surf/ramdisk.img showcommands
手动生成 boot.img 需要使用命令 mkbootimg ,语法如下:
mkbootimg --kernel 内核 --ramdisk ramdisk镜像 --cmdline 命令行 --base 基地址 --pagesize 大小 --output 输出的boot.img
appsboot.mbn:目录 bootable/bootloader/lk 下
env.MbnBuilder过程解析:
mbn 类型的文件是我们最终烧写到板子上的镜像文件
在文件: ./AMSS/products/7x30/core/bsp/build/scripts/mbn_builder.py 中有 mbn 文件的编译规则,要注意的是,不同的 modem 源代码版本,它里面的规则有可能不一样
partition规则解析:
eMCC 启动和 NAND 启动的分区格式是不一样的,如果是 eMCC 启动,多了编译选项:
USES_SDCC_BOOT=yes USES_HSU_MS_FD_BOOT=yes
如果 USES_HSU_MS_FD_BOOT=yes
=== Compiling boot/osbl/fd_storage_scsi.c
=== Compiling boot/osbl/fd_storage_usb.c
如果 USES_SDCC_BOOT=yes
那么会进行 partition 规则的处理,它会覆盖掉 corebsp_build 规则阶段生成的 partition.mbn
./AMSS/products/7x30/build/ms/dmss_rules.min
partition 规则主要完成以下功能:
1) 编译 ./AMSS/products/7x30/core/storage/tools/jsdcc/partition_load_pt 代码,生成 loadpt 和 msp
2) 解析 loadpt 解析 partition.xml 文件,把分区信息保存成二进制文件 partition.bin
3) 由 partition.bin 文件生成 partition.mbn,然后拷贝到 ./AMSS/products/7x30/build/ms/bin/AAABQMAZ/partition.mbn
高通平台 7630 启动流程分析
1.4 高通平台 7630 启动流程分析
开机后,首先从 rom 中的 pbl 开始执行,pbl 装载 dbl
pbl 是固化在高通芯片中的一段程序,没有相应的源代码。
pbl运行以后,它会装载 dbl,dbl是从其__main 函数开始执行,此函数在汇编文件 dbl.s 中.
经过一系列的初始化,dbl 会把控制权传递给 osbl
osbl 通过 osbl_main_procs 中定义的 osbl_load_appsbl 函数把应用程序的控制权交给了android 系统,modem 端的控制权通过 bl_shared_data.amss_entry_ptr() 交割 AMSS,他们分别在两个处理器上同时运行,两个处理期间通过 smd 进行通信。
obsi{
//初始化 迷你usb 充电硬件
osbl_hw_init
//在 osbl 阶段会提升系统时钟
#ifndef RUMIBUILD
osbl_increase_clk_speed,
#endif
//初始化 osbl 模并且锁住接口
osbl_init_modules,
初始化 flash 设备
osbl_flash_init,
//检测是否通过sd卡更新镜像文件
osbl_sd_image_upgrade,
//初始化数据结构,以便装载 AMSS 镜像
osbl_init_amss_image,
#endif /* FEATURE_FOTA */
//amss 镜像进行授权鉴定
osbl_auth_amss_image,
//如果有 adsp 那么进行相应处理
#ifdef FEATURE_OSBL_LOAD_AND_BOOT_ADSP
//装载 adsp 镜像
osbl_load_adsp,
//授权
osbl_auth_adsp,
#endif
#ifdef FEATURE_SDCC_BOOT
//装载 amss 镜像
osbl_load_amss_image,
#endif
#ifndef FEATURE_STANDALONE_MODEM
//从flash 设备装载 appsboot
osbl_load_appsbl,
//从flash中装载 OS 镜像
* Load the OS image from flash
osbl_load_apps_os,
//引导 aARM 处理器
osbl_boot_aarm,
#endif /* FEATURE_STANDALONE_MODEM */
对于 nand 启动,AMSS 应该在 apps 引导以后再装载
#ifndef FEATURE_SDCC_BOOT
// nand 启动,装载 amss 镜像
osbl_load_amss_image,
#endif
更新到:
{
1.4.5 appsbl 流程(源代码在 android中)
appsbl 是 applications ARM boot loader 的简称,不同的软件框架,此分区来自不同的源代码
}
高通手机开发过程大揭秘
Qualcomm手机开机全过程大揭密
高通android智能平台环境搭建_编译流程分析,高通平台环境搭建,编译,系统引导流程分析参考...相关推荐
- 高通Android智能平台环境搭建_编译流程分析
高通Android智能平台环境搭建_编译流程分析 高通平台环境搭建,编译,系统引导流程分析 TOC \o \h \z \u 1. 高通平台android开发总结. 7 1.1 搭建高通平台环境开发环境 ...
- 高通Android智能平台开发总结
高通Android智能平台开发总结 1. 高通平台android开发总结. 7 1.1 搭建高通平台环境开发环境. 7 1.2 搭建高通平台环境开发环境. 7 1.2.1 高通android智能平台概 ...
- 高通5G智能平台概述
高通5G智能平台概述 高通 android 智能手机解决方案的软件包括两个部分 以linux 操作系统为基础的 android 系统 以 L4,REX为基础的 Modem 部分 在高通系列的架构中,一 ...
- 高通平台环境搭建,编译,系统引导流程分析 .
1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通开发板上烧录文件系统 建立高通平台开发环境 高通平台,android和 modem 编译流程分析 高通平台 7620 启动流 ...
- 高通Android手机软件开发培训
为期两天的高通Android手机软件开发培训结束了.这次高通针对QSC7x27/7x25/QSD8x50的基带芯片进行了两天的Android手机软件开发培训.参加人员都是我这样的各个OEM厂商的软件开 ...
- 高通Android平台硬件调试之Camera篇
之前一段时间有幸在高通android平台上调试2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同时也支持AF,调试比较比较简单,因为别的项目已经在使用了, ...
- 高通Android平台开发
问题描述: 对于有过开发高通android系统的人来说,获取代码构建开发环境并不是难事,但对于刚刚接触这一块内容的人,如果没有详细的说明很容易走弯路,本文档就是根据本人的实践总结的一 ...
- 高通Android平台下关于display部分的几个关键问题
高通Android平台下关于display部分的几个关键问题 2011-04-07 18:59 From: http://hi.baidu.com/leowenj/blog/item/3fe59f74 ...
- 智能座舱更看重「性能冗余」,4家中国供应商领跑高通两代平台
高通8155,未必是智能座舱的真正王者,但至少在当下,是所有车企可以拿得出手吸引消费者的,为数不多的筹码.而到了明年,5nm的高通第四代座舱平台8295也有机会延续8155的强势地位. 要知道,在国内 ...
最新文章
- C# Socket系列三 socket通信的封包和拆包
- 阿里限流工具 Sentinel
- fibonacci数列前20项_等差数列、等比数列、调和数列等几种常见数列的总结
- Android 自定义实现switch开关按钮
- 菜鸟学Linux命令:端口查看和操作命令
- hdu5751 Eades
- 集成activiti-modeler 到 自己的业务系统
- 20200707:动态规划专题之不同路径
- 看陈广老师c#参考视频总结(第三篇)
- Pandas系列(十三)分层索引MultiIndex
- ARM嵌入式系统开发指南-设计和优化系统软件(译作连载)
- 夜神模拟器android版本修改器,夜神模拟器怎么用 夜神安卓模拟器使用方法大大全...
- GPS在ROS中的测试和使用
- 关于travis scott的网名_小仙女可爱单纯的网名
- 团建活动随感(r11笔记第9天)
- [转]基于POI的功能区划分()
- iOS - 递归遍历文件夹下的所有文件
- 今日头条阅读量怎么刷_今日头条提升头条号阅读量的几大方法
- 英语3500词(十)adventure主题(2022.1.22)
- Ajax异步数据抓取