- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Qualcomm手机开机全过程大揭密剖析
摘要:? ? 本文试图通过代码来深入剖析Qualcomm手机开机的整个过程,即从按下开机键一直到出现待机界面,Qualcomm的手机软件在整个流程中究竟完成了哪些工作。本文的主要目标是理清手机的初始化流程,并为今后Amoi定做初始化工作提供一个参考。关键字:开机、Rex、TMC、ui_task、CoreApp一、开机的简要流程分析? ? Qualcomm的平台软件支持两种启动方式:一种是Nor Flash启动方式,另外一种就是Nand Flash启动方式。Nor Flash启动方式就相当于硬件直接找到一个入口点开始执行代码,相比较而言会 比较简单,且Amoi没有采用此种方式,所以本文对于这种方式不做详细分析。另外一种就是Nand Flash启动方式,这种方式和PC的启动方式比较相像,也是Amoi采用的Boot方式,下面将详细分析在此方式下面的开机过程。? ? 按下开机键之后,将产生一个时钟中断,从而通知AMSS主芯片的Boot Load硬件去将放置于Nand Flash上面的第一个Block(8K)里面的Boot代码Copy到内核内存(RAM,这个内存应该是CPU自带的内存,同后面提到的SDRAM有一定区别,可以把它当作CPU的Cache)的0xFFFF0000地址,并开始执行Boot代码。Boot的主要任务是完成整个系统的硬件初始化工作(类似于PC上面的BIOS所完成的硬件自检工作,至于Boot的详细工作机制,后文会有详细描述)。Boot所完成的工作里面,最重要的一件事就是会将整个手机软件代码(AMSS软件包)拷贝到SDRAM中,并最后将控制权交给AMSS软件。说白了,就是Boot执行完成之后,代码的执行点将由Boot跳转到AMSS软件的的入口点函数main().(此函数在mobile.c里实现)。? ? 代码运行到了Main()之后,在这个函数里面将完成操作系统(rex)的初始化工作,其实现方法是调用? ? rex_init()。Rex_init()完成的工作很简单:? ? 1.完成操作系统必要的一些数据结构(timer链表、任务链表等))的初始化之外;? ? 2.接下来,它创建了三个任务,分别是:rex_idle_task、rex_dpc_task和tmc_task。? ? Idle任务没什么好解释的,目前这个任务为空,什么也没做,dpc_task目前不知道是做什么的,暂时可以不用管。前面的这两个任务都属于操作系统层面的,由操作系统来维护,和手机软件关系不大。哪一个和手机软件关系大呢?答案是:tmc_task。大家可以把这个当作操作系统的入口(主)任务,也可以把它当作整个手机软件的入口任务。即AMSS软件里的所有其它任务的创建和维护就是由这个tmc_task来完成的。? ? 到此为止,整个AMSS软件还并没有跑起来,只是跑到了tmc_task里面了。在tmc_task里面,会调用tmc_init()来完成整个AMSS软件包的初始化工作,其中最重要的一项工作就是调用tmc_define_tasks()将AMSS软件包所有需要的任务都创建起来了。比如说slee_task、dog_task、cm_task、wms_task、ui_task等。这些任务,一般不需要直接和AL层软件打交道,但请大家记住,手机上所有功能的实现最根本点就是由这些服务组件(Service Task)来完成的。将来大家跟踪一个具体的功能模块时,比如说通话模块,如果需要,可以再去深入研究它的具体实现。? ? 好了,到现在为止,所有的AMSS核心软件就全部跑起来了(手机的功能模块,在软件方面就体现为OS层面的一个任务)。但现在大家还根本看不到Brew和AEE的影子。呵呵,各位不要急。到了这个层面之后,我想稍微多说几句。最早的Qualcomm平台,比如说5xxx系列,是根本没有Brew的,那个时候的AL(Application Layer)层软件开发,是直接调用底层Service task所提供的API来完成相应的工作的。从这种角度来看的话,显然那时的开发是比较郁闷和难度较高的。不过,到了65xx之后,Qualcomm平台引入了Brew,手机开发商就没必要去从这么底层(Service API)的层面进行手机开发了,他们完全可以基于Brew来实现一台手机的所有功能(Qualcomm给我们的参考代码,就是全Brew平台的)。? ? Brew的运行环境AEE是如何跑起来的呢?关键在于ui_task(),由于ui_task和我们手机开发的关系非常密切,其地位也相当重要,所以,后文我将单独对它进行一个深入的研究与分析。到目前为止,大家只需要知道ui_task将AEE加载起来了,并且,它起到了一个中间层的作用,即所有AMSS底层服务组件的消息,都
您可能关注的文档
- QC成果报告剖析.pptx
- QC成果报告:提高现浇结构模板安装合格率剖析.doc
- QCC质量管理培训教材打印剖析.pptx
- pvc管新产品剖析.pptx
- QC桥墩台身砼外美内实剖析.doc
- QD施工剖析.doc
- Qgis学习资料剖析.docx
- QE新型起重机说明剖析.doc
- QM-3-C01压力容器宏观检查指导书2012年11月_v1_0剖析.doc
- QMK-J44.007-2007_注塑产品原料配比工艺规范剖析.doc
- 民航机场不停航施工管理.pdf
- 民宿客栈预订app商业实施计划书范文.pdf
- 2025年云南省曲靖市宣威九中第二学期高三第一次考试数学试题试卷含解析.doc
- 2025年云南省曲靖市重点中学高三下学期第二次周考数学试题含解析.doc
- 2025年云南省曲靖一中高三下学期3月测试数学试题试卷含解析.doc
- 2025年云南省双江县第一中学高三5月第二次阶段考试数学试题试卷含解析.doc
- 2025年云南省文山州广南县第一中学高三5月月考(数学试题文)试卷含解析.doc
- 2025年云南省文山州广南县第一中学高三下学期第一次模拟考试数学试题试卷-解析版含解析.doc
- 2025年云南省文山州马关县一中4月高三学业水平考试数学试题试卷含解析.doc
- 2025年云南省西盟县第一中学高三下期中考试数学试题理试题含解析.doc
最近下载
- HG∕T 20691-2017 高压喷射注浆施工技术规范(可复制版).pdf
- 商业计划书模板.ppt VIP
- 小学一年级体育与健康全册教案.pdf VIP
- 呼吸系统护理中的前沿技术与新进展.pptx
- 严禁教师违规收受学生及家长礼品礼金等行为的规定.docx
- 部编版三年级上册《道德与法治》教学计划.doc VIP
- 商业计划书模版-商业计划书.ppt VIP
- 气道净化护理(2023年中华护理学会团体标准).pptx VIP
- EN 13034-2005+A1-2009 液体化学品防护服.对液体化学品提供有限保护性能的化学防护服的性能要求(6型和PB[6]设备).pdf
- 小学英语语法大全.pptx VIP
文档评论(0)