当前位置:文档之家› 展讯开发指南

展讯开发指南

展讯开发指南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下面的临时路径,而不是这个文件真正的路径。

相关主题