Qualcomm手机NandFlash启动流程解析

需积分: 50 14 下载量 35 浏览量 更新于2024-10-05 收藏 38KB DOC 举报
"本文主要探讨高通手机的boot流程,特别是NandFlash启动方式,从按下开机键到显示待机界面的全过程。涉及的关键技术包括Rex操作系统、TMC任务和ui_task、CoreApp等。文章旨在理解手机初始化流程,并为定制初始化工作提供指导。" 在高通手机的启动过程中,有两种主要的启动方式:Nor Flash和Nand Flash。Nor Flash启动方式较为简单,但本文主要关注的是与PC启动方式相似的Nand Flash启动。当用户按下开机键时,会产生一个时钟中断,启动Boot Load硬件。该硬件会读取Nand Flash上的第一个Block(8KB)中的Boot代码,并将其复制到内核内存(RAM)的特定地址0xFFFF0000开始执行。 Boot代码的作用至关重要,它负责整个系统的硬件初始化,包括CPU、内存和其他外设的检测与配置,类似于PC的BIOS功能。Boot还会将完整的手机软件包(AMSS软件)从Nand Flash复制到系统内存(SDRAM)中,并将执行权交给AMSS软件的入口点函数`main()`,位于`mobile.c`文件中。 在`main()`函数内部,操作系统Rex的初始化工作开始进行,通过调用`rex_init()`。`rex_init()`执行的任务主要包括: 1. 初始化操作系统必需的数据结构,如定时器链表和任务链表,这些是操作系统运行的基础。 2. 创建三个核心任务:`rex_idle_task`、`rex_dpc_task`和`tmc_task`。 - `rex_idle_task`通常为空,不执行任何操作,可能作为CPU空闲时的默认状态。 - `rex_dpc_task`的具体功能在文中未详细说明,可能涉及到低优先级的后台处理或驱动程序的调度。 - `tmc_task`关联于TMC(可能是指Task Management Controller或者相关的任务管理机制),其具体功能也需要进一步研究。 随着Rex的初始化完成,手机系统逐步进入运行状态。后续的启动过程可能还包括网络连接、用户界面的加载以及其他核心应用程序(如CoreApp)的启动。这些步骤共同构成了从开机到用户交互的完整流程。 高通手机的开机boot流程涉及复杂的硬件初始化、操作系统加载以及核心任务的创建,为理解手机系统运行原理提供了基础。对于开发人员来说,深入理解这一过程对于优化系统性能、解决启动问题或定制特定功能具有重要意义。