展讯开发指南

展讯开发指南samuel.song.bc@1基本情况 (3)1.1市场情况 (3)1.2产品情况 (3)1.3与MTK对比 (4)1Roadmap (4)2硬件 (4)3细节 (5)3.1Internal RAM (5)3.2内存 (5)3.3操作系统 (5)3.4C++ (5)3.5audio (5)3.6Camera (5)3.7Socket部分 (5)3.8MMI (6)3.9调试 (6)2平台 (6)2.1软件版本 (6)2.2中文支持 (7)3编译 (7)3.1添加模块 (7)3.2C++编译 (8)3.3添加资源模块 (9)4GUI (10)4.1窗口 (10)4.2消息 (10)4.3List控件 (10)4.4Lable控件 (11)5资源 (12)5.1应用程序 (12)5.2图片资源 (12)5.3字符串资源 (12)5.4窗口ID (13)5.5添加菜单 (13)6调试 (14)6.1消息 (14)7模拟器 (14)8电话簿 (15)9窗口模板 (15)好好学习,天天向上。

1基本情况1.1 市场情况2011-8-3:展讯和MTK,MStar都在搞类智能机的概念,去年炒Android版本的千元智能机,中兴和华为做的还不错,但是山寨搞的并不好,MTK的6516基本没有做起来。

所以他们提出了类智能机的概念,或者叫做PDA,成本可以控制在300RMB,且效果很好,展讯的6800+WRE 就是这个模式,对农民工兄弟,似乎可以以假乱真Android了。

MTK对应的是35/36,MStar 的是33C1/33N。

2011-7-29:目前展讯的主力产品是66xx系列,6600l的潜力已经被挖掘殆尽,再做下去也赚不到钱。

6610/20还没有冲量,他们本身就是6600l的costdown产品,所以6620的担子很重,如果做不起来,今年展讯的业绩会很难看。

6800H只是过渡产品,为未来的6810铺路,6800H存在的意义在于便于6810快速切入,展讯的未来基本上都压在6810上了。

6810今年必须出来!2011-01-11:占据国内25%的Feature phone市场份额,主打是6600L,2个多美金,与之对应的是MTK的53平台(3.5美金开始降价)。

出货手机国内和国外市场大概是6/4开。

国内比较大的方案公司是闻泰和天宇。

1.2 产品情况打算内置一些重要应用,包括:JavaQQCStar输入法全浏览浏览器(爱可信(ACCESS)),TTS(Text To Speech)其中的全浏览目前主要在8800上实现。

UCWeb目前是Java版本的。

目前在主推自己开发的中间件平台-WRE,打算6月份量产。

1.3 与MTK对比1Roadmap展讯基带芯片的演进如下6600L是基于arm7的armv4的一个芯片,比MTK6225的armv5的arm7要低一个档次前者是三级pipeline, 后者是五级pipeline6600D→6600M→6600R(相对高端)→6600H(相对低端)→进一步cost down 6600L,但对多媒体支持有提升此外还有一个6800的芯片,arm9,失败也就是目前,只有6600L在撑场面2硬件目前市场主流应用为6600L,存储器配置为nor flash 128x32,以及少量的nand flash。

Design house的常用软件配置未知(08A,08B?)cpu设计主频96M?,但只能工作在78M(13x6),因为受外围的nor flash速度拖累,如果使用nand flash可全频率工作。

MTK6225主频104M,有cache,且internal ram等片上资源较mtk丰富6600L没有cache6600L片上资源,硬件特性不明需进一步了解3细节3.1Internal RAM内部内存,总共可用空间为0x3800,14k bytes非常小,看目前的情况,常用来放critical task 的栈和队列。

估计我们也需要这么使用。

3.2内存大约有1M多,情况估计比MTK略好,但内存使用的冲突估计同样存在,需要事先考虑。

3.3操作系统RTOS采用threadX,和MTK的nucleus无大的差别,可动态创建线程3.4C++展讯平台不支持C++源文件编译,如果是C++源文件,建议用ADS编译成静态库。

3.5audio简单看了下,接口简洁支持AMR播放仅支持ADPCM录音,3.6Camera目前展讯已提供相应接口,可获取jpeg,yuv422,rgb565格式的数据,是否需要yuv420,省得还要转换3.7Socket部分标准的unix socket形式,和mtk不太一样,MTK平台提供了一层抽象,使应用程序可以使用异步消息机制使用网络,而展讯没有做这层抽象,只提供了同步的select等机制,需要应用程序自己封装异步机制。

3.8MMI类似于一个退化的windows概念,结构清晰,可快速开发3.9调试调试工具使用和MTK无大的差别模拟器上网需验证?2平台8800:3G的TD方案6800:ARM9-200M6600L:ARM7-78M其中8800是3G解决方案,TD-SCDMA的,软件版本是09B分支。

其中6800目前是版本是D,2月份打算上H版,主要竞争对手是MTK的35和36,属于中高端系列,.软件代码是10A分支。

其中的6600L是低端版本,主频78M,软件版本是09A,现在是6600L2,到6600L6会将主频升至104MHz,6600L7是3卡3待的产品,在印度和印尼这样运营商众多的国家很有市场,MTK也在跟进。

2.1 软件版本W09.37,P3W09.37,P6W10.25W11.09 C8(2011.5.3)quasim:3卡/4卡?2.2 中文支持MULTI_LAN_SUPPORT = CSTAR ### Multi Language Support: 金拇指为展讯平台提供了中文支持和多语言支持。

3编译编译选项:CFLAGS = -cpu ARM7TDMI -O2 -bi -g+ -apcs /interwork/ -fy -D_RTOS -D_DEBUG -Ec -WallAFLAGS = -cpu ARM7TDMI -keep -bi -g -apcs /shlclient/interwork/编译选项的设置在Makefile.rules里面定义。

编译bin:make p=sc6600l_sp6601l new编译模拟器:make p= sc6600l_sp6601l m=simulator生成的dsw工程文件在build下面的win下面,需要用VC6来打开。

3.1 添加模块在make目录下,添加模块的makefile,(参考已有的格式)例如要添加xx模块,在make文件夹下创建xx目录,里面添加xx.mk即可。

在总的project_sc6600l_sp6601l.mk中,先添加总的开关:BAIDU_IME_SUPPORT = TRUE ### BAIDU_IME_SUPPORT:# Option1:TRUE# Option2:FALSE注意:# Feature Options (For User)在Makefile.third-party中添加外部库引用##============== baidu start ===================ifeq ($(strip $(BAIDU_IME_SUPPORT)), TRUE)ifeq ($(strip $(STACK_CHECK_SUPPORT)), TRUE)3RD_LIBS +=MS_MMI/source/mmi_app/app/im/baidu_ime/lib/baidu_works_arm7_bi.lib3RD_LIBS +=MS_MMI/source/mmi_app/app/im/baidu_ime/lib/libbicore_arm7_bi.libelse3RD_LIBS +=MS_MMI/source/mmi_app/app/im/baidu_ime/lib/baidu_works_arm7_bi_swst.lib 3RD_LIBS +=MS_MMI/source/mmi_app/app/im/baidu_ime/lib/libbicore_arm7_bi_swst.lib endifendif##============== baidu end ===================在Makefile中添加编译模块##============== baidu start =================ifeq ($(strip $(BAIDU_IME_SUPPORT)), TRUE)COMPLIBS_DBG += baidu_imeendif##============== baidu end ===================注意位置:Segment: COMPLIBS注意:如果出现了宏定义和sprd_macro.txt里面的定义不匹配的问题,需要注意添加的位置。

3.2 C++编译不支持C++源文件在系统里面编译,必须是C文件。

晕死。

3.3 添加资源模块在make文件夹下面的resource,有资源的makefile,在SOURCES中添加模块的资源头文件,命名规则为moduleName下划线mdu_def.h。

然后在SRCPATH中添加路径ifeq ($(strip $(BAIDU_IME_SUPPORT)), TRUE)SOURCES += baidu_ime_mdu_def.hSRCPATH += MS_MMI/source/mmi_app/app/im/baidu_ime/incendif模块的资源文件是通过该makefile下面的命令拷贝到最后build文件夹中的,脚本会在build\sc6600l_sp6601l_builddir下面创建res文件夹,为每个在makefile里面单独编译的module创建一个文件夹,例如baidu_ime,然后把baidu_ime_mdu_def.h拷贝到这个里面。

这样,在mmi_res_prj_def里面添加module的路径就是://start baidu code#if defined(BAIDU_IME_SUPPORT)RES_ADD_MODULE(MMI_MODULE_BAIDU_IME, "\\baidu_ime\\baidu_ime_mdu_def.h")#endif //BAIDU_IME_SUPPORT//end baidu code这是在build下面的临时路径,而不是这个文件真正的路径。

合集下载

展讯 build环境使用手册

展讯 build环境使用手册

展讯 build环境使用手册一、介绍1.1 前言在展讯(Exynos)处理器的开发环境中,build环境是非常重要的一环。

为了保证开发工作的顺利进行,展讯提供了一套完整的build环境使用手册,以帮助开发人员快速搭建和使用展讯的开发环境。

1.2 目的本文旨在介绍展讯build环境的搭建和使用方法,以帮助开发人员快速上手展讯处理器的开发工作。

二、环境搭建2.1 硬件要求在搭建展讯build环境前,首先需要满足一定的硬件要求。

建议使用高性能的计算机,配置至少16GB内存和500GB磁盘空间,以保证编译过程的顺利进行。

2.2 软件要求展讯build环境需要使用特定版本的操作系统和编译工具。

目前推荐使用Ubuntu 18.04 LTS操作系统,并安装必要的开发工具和编译器,如gcc、make等。

2.3 下载代码在搭建build环境之前,需要从展讯官方全球信息湾上下载最新的代码库。

开发人员可以通过Git工具将展讯的开发代码库克隆到本地,并根据需要切换到特定的分支或标签。

2.4 编译工具链展讯build环境需要使用特定的ARM交叉编译工具链,用于编译展讯处理器的应用程序和驱动程序。

开发人员可以从展讯官方全球信息湾上下载最新的编译工具链,并按照官方文档进行安装和配置。

2.5 系统配置在搭建build环境后,还需要进行一些系统配置工作,如设置环境变量、安装必要的依赖库等。

展讯官方文档中提供了详细的配置方法,开发人员可以根据文档进行操作。

三、使用方法3.1 编译应用程序一旦搭建好build环境,开发人员就可以开始编译展讯处理器的应用程序了。

通过使用展讯提供的Makefile和编译工具链,开发人员可以很方便地将自己的应用程序编译成可执行文件,并在展讯处理器上运行。

3.2 编译内核除了应用程序外,展讯的build环境还可以用于编译展讯处理器的内核。

开发人员可以从展讯官方全球信息湾上下载最新的内核代码,并使用展讯提供的配置文件和编译工具链进行内核的编译和定制。

展讯操作系统API用户指南

展讯操作系统API用户指南

1.1 范围 .................................................................................................................................7 1.2 参考文档..........................................................................................................................7 1.3 缩写和定义 ......................................................................................................................7
3.4 内存管理........................................................................................................................14 3.4.1 分配内存 SCI_ALLOC............................................................................................14 3.4.2 释放内存 SCI_FREE ..............................................................................................14 3.4.3 内存拷贝 SCI_MEMCPY........................................................................................15 3.4.4 设置内存 SCI_MEMSET ........................................................................................16 3.4.5 内存拷贝(以16bit为单位) SCI_MEM16CPY .....................................................17 3.4.6 设置内存(以16bit为单位) SCI_MEM16SET......................................................18

展讯 Norflash配置指南

展讯 Norflash配置指南

L平台Norflash配置指南展讯通信主讲人:Nick.Zhaor e a dt r umC on f id en t ia lL上支持的Norflash类型¾Pagemode Flash¾Burstmode Flash¾ADP Flash¾ADM Flash注意:1. ADM Flash都是Burstmode2. ADM Flash需要配置Strapping Pin3. 手机对Norflash的选型尽量选择Burstmode Flash,因为从Memory对系统提供的性能来看:Burst>Page>Single4. 对Pagemode Flash一定要将其SRAM配置成Pagemode5. Flash只有Burst Read,没有Burst Write。

而SRAM既有Burst Read,也有Burst Write。

6. 由于共用总线的原因,LCM与Flash的供电电压要相同。

S pa d t r umC on f id en t ia lFlash空间划分S pr ea d t r umC on f id en t ia l对NORMCP_ENTITY_T的说明¾NORMCP_SPEC_T是对这款Nor MCP本身属性的描述,与它所应用的平台无关。

¾NORMCP_CONFIG_T是这款Flash在当前平台上应该配置成何种读写模式。

¾NOR_FLASH_CONFIG_T是用来描述Flash 空间应该如何划分。

S pr er e a dt r umC on f id en t ia l如何添加一款新的Flash1.按照Flash SPEC将NORMCP_SPEC_T描述正确。

如果是Pagemode Flash就将其放到Normcp_burst_not_support.c中。

如果是Burstmode Flash,请参照normcp_k5l2833ata_af66.c进行配置。

展讯学习笔记(整理)

展讯学习笔记(整理)

创建窗口的步骤:第一步:创建窗口数据表WINDOW_TABLE( MMIPB_MAIN_WIN_TAB ) ={WIN_FUNC((uint32)HandleMainWinMsg),WIN_ID( MMIPB_MAIN_WIN_ID ),CREATE_TAB_CTRL(GUI_TAB_ITEM_LEFT,GUITAB_STATE_NONEED_SCROLL|GUITAB_STATE_SINGLE_LINE,MMIPB_SEARCH_LIST_TAB_CTRL_ID),END_WIN};第二步:实现窗口处理函数:LOCAL MMI_RESULT_E HandleMainWinMsg(MMI_WIN_ID_T win_id,MMI_MESSAGE_ID_E msg_id,DPARAM param){MMI_RESULT_E recode = MMI_RESULT_TRUE;switch(msg_id){case MSG_OPEN_WINDOW:break;case MSG_GET_FOCUS:break;case MSG_LOSE_FOCUS:break;case MSG_FULL_PAINT:break;case MSG_CLOSE_WINDOW:break;default:break;}return recode;}第三步:调用MMK_CreateWin创建窗口5,在MS_MMI/source/mmi_app/app目录下添加新模块:修改app.mk文件中的宏:MSRCPATH、MINCPATH、SOURCES6,字库资源放在目录MS_MMI\source\resource\mmi_res_320x480_universe\FONT中7,铃声资源放在目录MS_MMI\source\resource\mmi_res_320x480_universe\RING中8,颜色资源表在目录MS_MMI\source\resource\mmi_res_320x480_universe\color_table.xls 9,开机log在MS_MMI\source\resource\mmi_res_320x480_universe\logo.bmp10,mmi_res_prj_def.h文件中:定义语言信息、定义全局信息、定义皮肤信息、定义模块信息、定义铃声信息、定义字库信息11,在每个模块中,基本上都有一个自己模块的资源ID 头文件,例如common模块的common_mdu_def.h头文件12,mmi_theme.c和mmitheme_xx.c中实现了几乎所有控件的风格。

展讯 build环境使用手册

展讯 build环境使用手册

展讯 build环境使用手册展讯 Build 环境使用手册一、简介展讯 Build 环境是为展讯公司开发团队提供的一套集成开发环境,旨在为开发人员提供便捷、高效的开发工具和平台。

本手册将详细介绍展讯 Build 环境的安装、配置和使用方法。

二、安装1. 下载展讯 Build 环境安装包展讯 Build 环境安装包可以从展讯公司的官方网站下载。

请确保从官方渠道下载,以确保安装包的安全性和完整性。

2. 执行安装程序双击下载的安装包,按照提示一步步进行安装。

建议选择默认安装路径,以便后续操作的顺利进行。

3. 完成安装安装完成后,会在您选择的安装路径下生成展讯 Build 环境的文件夹。

您可以在此文件夹中找到所有的开发工具和相关资源。

三、配置1. 环境变量设置为了能够方便地在任意路径下调用展讯 Build 环境,我们需要对环境变量进行一些配置。

- Windows 系统:右键点击“计算机”或“我的电脑”,选择“属性”->“高级系统设置”->“环境变量”。

在系统变量中找到“Path”,并选择“编辑”。

在弹出的窗口中,将展讯 Build 环境的安装路径添加到“Path”变量的值中,并点击“确定”保存。

- macOS / Linux 系统:在终端中输入以下命令,并将展讯 Build环境的安装路径替换为您的实际路径。

```shellexport PATH=/your/installation/path:$PATH```2. 配置开发工具根据您的开发需求,展讯Build 环境提供了多种开发工具和插件。

您可以根据需要进行安装和配置。

- IDE:展讯 Build 环境支持多种集成开发环境,如 Eclipse、Android Studio 等。

您可以根据个人喜好进行选择和安装。

- SDK:展讯 Build 环境提供了丰富的软件开发工具包,包括Android SDK、Java SDK 等。

您可以根据项目需要进行安装和配置。

展讯6820平台开发介绍

展讯6820平台开发介绍

11/09/11
保密信息
.4
环境配置
• Adb(Android Debug Bridge)
在ubuntu中配置adb 步骤1,把adb拷贝到/usr/bin目录下 $sudo cp /home/apuser/<Android_Project>/out/host/linux-x86/bin/adb/ usr/bin 步骤2,更改adb的权限 $sudo chmod a+x /usr/bin/adb 步骤3,创建spreadtrum usb 专有 VID $[ -d ~/.android ] || mkdir ~/.android $echo 0x1782 >~/.android/adb_usb.ini 在windows中配置adb 步骤1,在C:\Documents and Settings\<User name>\目录下创建文件.android 步骤2,把adb_usb.ini放在文件夹.android中
[cts]
[customize] [dalvik] [development] [external] [frameworks] [hardware] [kernel] [mk] [out] [packages] [prebuilt] [sdk] [system] [u-boot] [vendor]
Android兼容性测试套件
11/09/11
保密信息
客户化工程配置
• 3rdparty目录结构:
├── app-----------------------------------------------------------------模块名:app
│ ├── app6810--------------------------------------------------------模块配置:app6810

展讯平台软件架构介绍

展讯平台软件架构介绍展讯平台软件架构介绍Spreadtrum 12/19/20102010-12-19Proprietary and Confidential Information2培训目的对展讯平台软件架构有初步认识对各模块功能有初步概念2010-12-19Proprietary and Confidential Information3Table of Contents软件开发平台框架平台各模块介绍编译开发环境接口使用举例2010-12-19Proprietary and Confidential Information4软件开发平台框架软件开发平台框架软件架构平台提供的features2010-12-19Proprietary and Confidential Information5软件架构Call SMS CBS SS PB Game ….其他应用, e.g. wap,java, MMS,etc.Multimedia Audio/VideoOther applicationATCMMI Kernal/GUIOSA DAL(LCD,KPD,CHR)FS, AUDIO, VIDEO, Multimedia Engines MIDI MP3 MPEG4 H.263 Engines Digital Camera Drivers HAL) Proprietary and Confidential Information MN (Call, CB, SS, SMS, GPRS)Layer 3RTOSDiagnosti csLayer 2Layer 1 62010-12-19平台提供的Features完整的GSM/GPRS通信和数据服务功能. 统一的RTOS的APIs - Thread控制,Timer, Memory Management, Message Queue… 提供完整的TBIOS APIs,能快速的适应硬件和外设的更改。

展讯 Norflash配置指南

L平台Norflash配置指南展讯通信主讲人:Nick.Zhaor e a dt r umC on f id en t ia lL上支持的Norflash类型¾Pagemode Flash¾Burstmode Flash¾ADP Flash¾ADM Flash注意:1. ADM Flash都是Burstmode2. ADM Flash需要配置Strapping Pin3. 手机对Norflash的选型尽量选择Burstmode Flash,因为从Memory对系统提供的性能来看:Burst>Page>Single4. 对Pagemode Flash一定要将其SRAM配置成Pagemode5. Flash只有Burst Read,没有Burst Write。

而SRAM既有Burst Read,也有Burst Write。

6. 由于共用总线的原因,LCM与Flash的供电电压要相同。

S pa d t r umC on f id en t ia lFlash空间划分S pr ea d t r umC on f id en t ia l对NORMCP_ENTITY_T的说明¾NORMCP_SPEC_T是对这款Nor MCP本身属性的描述,与它所应用的平台无关。

¾NORMCP_CONFIG_T是这款Flash在当前平台上应该配置成何种读写模式。

¾NOR_FLASH_CONFIG_T是用来描述Flash 空间应该如何划分。

S pr er e a dt r umC on f id en t ia l如何添加一款新的Flash1.按照Flash SPEC将NORMCP_SPEC_T描述正确。

如果是Pagemode Flash就将其放到Normcp_burst_not_support.c中。

如果是Burstmode Flash,请参照normcp_k5l2833ata_af66.c进行配置。

2015-07-03展讯平台开发-开机-资源-窗口


2015-7-8
Proprietary and Confidential Information
26
支持的图片类型--静态图片
输入(源文件格式) BMP(24,16BIT) BMP(8BIT) BMP(32BIT) PNG GIF JPEG 输出(encode后resource中的格式) BMP/BMP RLE/JPEG(RGB565 LCD) BMP/BMP RLE(256色LCD) ARGB ARGB GIF JPEG
在mmi_res_prj_def.h中添加如下代码: RES_ADD_MODULE(MMI_MODULE_XXX,"\\xxx\\xxx_mdu_def.h") 在资源目录中添加对应目录结构,并增加资源,如xxx模块,添加资源目录 如下
XXX
在Resource.mk中增加模块定义文件路径和文件名,添加之后resource.mk文件 增加的脚本为:MS_MMI/source/mmi_app/app/xxx/h \,增加文件名xxx_mdu_def.h 注意“\”后面没有空格 在模块h文件夹下面创建xxx_img.h和xxx_text.h文件
控件消息:
• • • • • MSG_CTL_OPEN MSG_CTL_CLOSE MSG_CTL_LOSE_FOCUS MSG_CTL_GET_FOCUS MSG_CTL_PAINT 打开控件 关闭控件 控件失去焦点 控件获得焦点 控件刷新
注意:只有Paint消息是窗口先处理,其他消息都是控件先处理
16
内部消息
Kernel维护消息队列 Kernal负责消息的分发处理 消息处理 消息Default是先控件,后窗口
Listbox Label APP

展讯android平台基础

展讯android软件平台基础(for SC8810)目录1.Android基本概念 (2)2.开发环境搭建 (4)安装ubuntu操作系统 (4)设定安装源 (4)安装开发包 (5)展开IDH包 (5)3.代码目录结构 (6)4.编译方法和系统 (7)5.烧录image方法 (8)传统烧录方法 (8)fastboot烧录方法 (8)6.adb (9)7.Log系统 (11)8.Q&A (12)1.Android基本概念Software stack for mobile devices, including operating system, middleware and key applications.2.开发环境搭建安装ubuntu操作系统设定安装源$ sudo vi /etc/apt/sources.listubuntu-10.4:deb /ubuntu/ lucid main multiverse restricted universedeb /ubuntu/ lucid-backports main multiverse restricted universedeb /ubuntu/ lucid-proposed main multiverse restricted universedeb /ubuntu/ lucid-security main multiverse restricted universedeb /ubuntu/ lucid-updates main multiverse restricted universedeb-src /ubuntu/ lucid main multiverse restricted universedeb-src /ubuntu/ lucid-backports main multiverse restricted universe deb-src /ubuntu/ lucid-proposed main multiverse restricted universe deb-src /ubuntu/ lucid-security main multiverse restricted universedeb-src /ubuntu/ lucid-updates main multiverse restricted universe ubuntu-10.10:deb /ubuntu maverick partnerdeb-src /ubuntu maverick partnerdeb /ubuntu maverick maindeb-src /ubuntu maverick maindeb /ubuntu/ maverick main restricted universe multiversedeb /ubuntu/ maverick-backports restricted universe multiversedeb /ubuntu/ maverick-proposed main restricted universe multiverse deb /ubuntu/ maverick-security main restricted universe multiversedeb /ubuntu/ maverick-updates main restricted universe multiversedeb-src /ubuntu/ maverick main restricted universe multiversedeb-src /ubuntu/ maverick-backports main restricted universe multiverse deb-src /ubuntu/ maverick-proposed main restricted universe multiverse deb-src /ubuntu/ maverick-security main restricted universe multiverse deb-src /ubuntu/ maverick-updates main restricted universe multiverse安装开发包更新了安装源之后,需要执行下面的命令安装必要的包$ sudo apt-get update$ sudo apt-get upgrade$ sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind eclipse vim ssh git libodbcinstq1c2 odbcinst1debian1展开IDH包3.代码目录结构最外层目录android:-- Makefile (全局的Makefile,里面只包含build/core/main.mk)-- 3rdparty (包含编译脚本,工具,第三方driver, hal, app,binary)-- bionic (bionic C库,bionic含义为仿生,这里面是一些基础的库的源代码)-- bootable (启动引导相关代码)-- build (存放系统编译规则及generic等基础开发包配置、脚本工具)-- cts (Android兼容性测试套件标准)-- dalvik (Dalvik JA VA虚拟机)-- development (应用程序开发相关,需要的模板和工具)-- device (设备厂商的示例文件)-- external (Android使用的一些开源的模组)-- frameworks (核心框架层——java及C++语言)-- hardware (部分厂家开源的硬解适配层HAL代码)-- kernel (Linux内核)-- ndk (一系列工具合集,帮助开发者快速开发C/C++动态库)-- out (编译完成后的代码输出与此目录)-- packages (应用程序包)-- prebuilt (x86和arm架构下预编译的一些资源)-- sdk (Android sdk及模拟器)-- system (Android底层文件系统库、应用及组件——C语言)-- u-boot (Bootloader,引导加载器)-- vendor (厂商定制代码)4.编译方法和系统$ cd 3rdparty/$ ./build.products.sh00). sp8810gaExample:*1* ./build.products.sh sp8810ga2 ./build.products.sh s p8810ga [subcmd]3 jobs=16 ./build.products.sh sp8810ga++++++++++++++++++++++++++ subcmd list ++++++++++++++++++++++++++prebuild [dirname] -- 编译android工程时脚本会将第3方chip的修改动态patch到android工程中lbuild [dirname] [clean] -- 调用第3方build.sh脚本中的function my_local_build函数(主要用来编译ko)nbuild -- 只编译标准androidfprebuild -- 快速build需要的前提配置自动设置,同时完成一次彻底编译(建议使用)fbuild -- 快速build,不编译3rdparty下的ko(一旦repo sync,务必重新执行fprebuild)fbuild2 -- 快速build,在fbuild基础上,再额外编译3rdparty下的文件(建议使用)clean -- 清除第3方对android的所有修改,恢复到原始的android版本,可以认为是unpatch.diff [dirname] -- 比较第3方代码和android标准代码的差异,即生成patchdiff2 [dirname] -- 用beyondcompare比较第3方代码和android标准代码的差异install [dirname] -- 将第3方编译结果安装到out/target/product/xxxx/system/sps*目录install2 [outdir ] -- 将product产品编译结果安装到outdir目录(用来在批量编译产品时完成自动拷贝)ramdisk -- 编译product产品对应的ramdisk.img,将init.3rdparty.rc修改内容添加到ramdisk.imgrecovery -- 编译product产品对应的ramdisk-recovery.img和recovery.img system -- 重新打包system文件夹生成system.imguserdata -- 重新打包data文件夹生成userdata.imgbootimage -- 生成boot.img和linux.bin内核文件bootimage2 -- 先删除.config,然后编译整个内核,最后生成boot.img和linux.bin 内核文件5.烧录image方法编译之后产生的image目录在:Out/target/product/hsdroid/sps.images.sp8810ga/可以看到,idh包编译出来的需要烧录的image是:fdl2.bin, u-boot-spl-16k.bin, u-boot.bin,boot.img, system.img, userdata.img, recovery.img另外,展讯还会release modem image:Vmjaluna.img, DSP.bin, nvitem.bin, Modem.bin传统烧录方法使用research downloader, upgrade downloader, factory downloader, 烧录上面所有的image。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档