Qualcomm手机开机流程解析:从Boot到操作系统启动

3星 · 超过75%的资源 需积分: 49 34 下载量 186 浏览量 更新于2024-10-21 收藏 159KB PDF 举报
"本文主要探讨了Qualcomm手机的开机原理,特别是基于NandFlash启动方式的过程,涵盖了从按下开机键到出现待机界面的整个流程。文中提到了BootLoad硬件如何加载Boot代码到内核内存,Boot代码如何完成硬件初始化,以及如何将控制权交给AMSS软件。此外,还介绍了操作系统Rex的初始化,包括数据结构的设置和核心任务的创建。" Qualcomm手机的开机流程是一个复杂而精细的过程,尤其当使用NandFlash启动方式时,与传统的NorFlash启动方式相比更为相似于PC的启动。在这个过程中,按下开机键触发时钟中断,BootLoad硬件开始执行,将NandFlash的第一个Block中的Boot代码复制到内核内存(非SDRAM)的特定地址,并开始执行这段代码。 Boot代码的主要职责是进行系统的硬件初始化,这与PC上的BIOS类似,负责检测和配置各种硬件组件。这一阶段结束后,Boot会将手机软件代码整体复制到SDRAM中,这是手机运行的主要内存区域。然后,Boot将执行权交给AMSS软件的入口点函数`main()`,该函数在`mobile.c`中实现。 进入`main()`函数后,操作系统Rex的初始化工作就开始了。`main()`调用`rex_init()`,这个函数不仅初始化操作系统必要的数据结构,如定时器链表和任务链表,还创建了三个关键任务:`rex_idle_task`、`rex_dpc_task`和`tmc_task`。这些任务在Rex操作系统中扮演着核心角色: 1. `rex_idle_task`通常是低优先级的任务,用于处理系统空闲时的活动。 2. `rex_dpc_task`(Deferred Procedure Call Task)可能用于处理延迟的或非实时的任务。 3. `tmc_task`可能与通信或任务管理相关,具体职责未在摘要中明确,但在Qualcomm的平台上通常涉及通信处理和任务调度。 通过这个过程,Qualcomm手机能够成功地从开机到进入待机界面,为用户提供交互界面和各种服务。这一系列步骤展示了手机软件和硬件之间的紧密协作,以及操作系统在初始化过程中如何构建和管理系统的基石。