《展讯SC7731 软件架构及编译介绍V1.1讲解》由会员分享,可在线阅读,更多相关《展讯SC7731 软件架构及编译介绍V1.1讲解(22页珍藏版)》请在金锄头文库上搜索。
1、SC7731软件架构及编译介绍 . 2 讲解的主要内容 SC7731软件平台架构 SC7731软件下载 SC7731 编译说明 . 3 讲解的主要内容 SC7731软件平台架构 SC7731软件下载 SC7731 编译说明 SC7731 平台简介 CHIPSETNAME BB/AP/PMUSC7731 WCDMA RFSR3131 WIFI/BT/FM /GPS SR2351C USIM/SIM MCP LPDDR NAND/eMMC SC7731 平台简介 CPU 11.4GHz Cortex A7 256 KB L2 Cache Neon coprocessors GPU ARM Mali
2、-400 33Mtri/s; 624Mpix/s DISPC Up to HD LCD RGB(Ramless) /MCU I/F/MIPI Multimedia H.264/H.263/MPEG4 1080P Codec High Performance Audio Codec WCN Integrated WIFI 802.11 b/g/n Integrated BT 2.1, FM Integrated GPS WCDMA 3GPP Rel. 7 UMTS HSPA+ DL 21Mbps/ UL 5.76Mbps Class 12 EGPRS, type B Interface HS U
3、SB 2.0 OTG UART/SPI /I2C 4 x SDIO 3.0 interfaces EDGE Class 12 EGPRS, type B 软件架构的变迁 SC7731 软件介绍 在Native系统上,7731平台AP和Modem物理上是分离的子系统,两边通过 SIPC机制进行通讯。系统模块如下 . 8 SC7731 Android4.4代码目录结构 |- abi:abi相关代码 |- bionic: C 库,比如 libc, libm, libdl, dynamic linker 等等 |- bootable: 基础库 的源代码 |- build: 系统编译 和配置所需要的脚本
4、和工具 |- cts: Android兼容性测试 用例 |- dalvik: Java 虚拟机 |- development: 开发应 用程序所需的模板和工具 |- device: 设备 相关代码 | |- | - sprd:展讯板级开发包和产品定义 |- docs:介绍开源的相关文档 |- external:android使用的一些开源的模组 |- frameworks: 应用程序框架层,包含库和配置机制 |- hardware: 主要是硬件适配层HAL代码 |- kernel: Linux 内核 |- libcore:核心库相关 |- ndk:ndk相关代码 |- out: 编译 后生成的
5、目录,输出中间文件与目标文件。 |- packages: 应用程序包 |- prebuilt: 各种平台下预编译 的资源 |- sdk: SDK 代码库 |- system: 底层库 |- u-boot:系统启动 U-boot 代码 - vendor: 供应商的一些应用程序 - sprd |- proprietories . 9 客户需要修改配置目录结构 主要修改配置的目录有device/sprd,以及vendor/sprd目录 整个4.4代码需要经常维护及修改的目录: device/sprd - 板级开发包和产品定义 scx35_sp7731gea - 板级目录例1 Android.mk -
6、 这个目录里可能需要包含编译板级的库和应用 CleanSpec.mk BoardConfig.mk - Android板级配置文件 AndroidProducts.mk - 定义PRODUCT_MAKEFILES的产品列表 scx35_sp7731geacuccspecBplus_UUI_dt.mk - 产品定义例1 scx35_sp7731geaplus_dt.mk - 产品定义例2 init.board.rc - 板级启动脚本 init.recovery.board.rc system.prop - 板级全局属性定义 vendorsetup.sh - 编译辅助 overlay/ - 系统和
7、应用配置参数产品目录例1 audio_params/ - 音频配置参数产品目录 modem_bins/ - 板级私有的库等等,如果必要 scx35_sp77xxxx - 板级目录例2 vendor/sprd proprietories - 给客户的闭源包,内外都可见 scx35 system/. - 按安装目录组织的闭源文件 partner - 主要由三方维护的模块 brcm - 第三方模块code . - 客户可以加自己的应用和模块等在这里 . 10 讲解的主要内容 SC7731软件平台架构 SC7731 软件下载 SC7731 编译说明 SC7731工程下载文件说明 . 11 根据工程配置
8、需要下载不同的文件,包括Modem、nv、dsp及相关的.img,如已经将相应的文件打包成 PAC包,直接加载PAC即可。 SC7731工程下载文件说明 . 12 在modem目录下,一般有如下目录(见下图) 。 1)tools目录下存放着各种工具。 2)sc7731g_band128_builddir存放着SC7731的dsp,modem以及sp7731ea工程的nv。 3)x30g_wcn_dts_modem_builddir存放着CP2及对应的nv。 . 13 讲解的主要内容 SC7731软件平台架构 SC7731软件下载 SC7731 编译说明 Android4.4的编译环境 . 14
9、 代码包由CPM发布给客户,其中包含代码,bin档和开发调试工具等。其中AP侧代码 由开源代码包和非开源库文件两部分组成 开源代码包部分一般命名为idh.code,以rar或者tgz压缩格式提供 非开源库文件一般以proprietories-来命名,以rar或者tgz压缩格式提供 解压之后,需要将库文件的内容拷贝到代码包的vendor/sprd/proprietories/目录下, 如果在同一个版本下开发多个平台的项目,则需要将各个平台对应的库文件解压后都拷 贝到该目录下,这样就完成了平台代码环境的准备。 另外还需要检查自己的编译环境,google推荐使用64位ubuntu的系统。展讯服务器
10、使用的是12.04的版本。 Android4.4的编译命令 . 15 编译有两种选择工程的方式 uLunch uchoosecomb Android4.4的编译命令 . 16 Lunch方式编译整个工程 1、执行source ./build/envsetup.sh#配置环 境变量 2、执行lunch #选择相应的工程 3、执行kheader #安装头文件给应用 4、执行make j #N为jobs的个数, 一般取cpu的个数 . 17 choosecombo方式编译整个工程 (1)执行source ./build/envsetup.sh (2)执行choosecombo(选择 1;1对应 Re
11、lease版本) (3)选择编译对应工程,选择user或 userdebug (4)执行kheader (5)执行make j Choosecombo命令 Android4.4的编译命令 . 18 编译user和userdebug有三种方法: (1)采用choosecombo的方式,variant choice 选择 user。 (2) 采用lunch操作方法,lunch之后执行 choosevariant操作,选择user。 (3)修改device/sprd/scx35_sp7731gea/vendorsetup.sh,执行source build/envsetup.sh后,执行lunch
12、编译user或者userdebug的方法 Android4.4的编译命令 Android4.0的编译命令 . 19 Android编译各模块的命令 常用的编译命令 $ make j - Build the whole system, is job number $ make bootloader - Build spl and u-boot $ make bootimage - Build kernel and ramdisk $ make systemimage - Build system.img $ make userdataimage - Build userdata.img $ ma
13、ke recoveryimage - Build recovery.img 需要清楚修改哪些文件会对编译哪些模块造成影响。 Android4.0的编译命令 . 20 Android编译各模块的命令 我们还可以单独编译android的每一个模块,比如单独编译一个 apk,一个java或者本地库或者本地程序,这时我们需要进入到对应模 块的Android.mk所在的目录,执行mm指令,比如需要重新编译”设 置”这个apk,我们就需要这样做 cd packages/apps/Settings/ mm 或在根目录直接编译: mmm packages/apps/Settings 这样被单独编译出来的模块可
14、以通过adb push的方式推入调试手机 进行使用,是调试阶段被经常使用到的方式。 . 21 (1)Android4.4没有把编译信息保存到指定文件。如果客户需要把编 译打印信息保存到指定目录,执行命令 make jN 2&1 | tee build.log 可以把编译信息输出到build.log文件中 (2)编译的版本若为userdebug版本,利用adb调试时先获取root权 限,执行如下两步操作: 1)adb root 2)adb remount 然后就可以操作adb shell,adb push,cat /proc/kmsg的一些操作 编译调试注意事项 Android4.4的编译命令 谢 谢!