Qualcomm手机NandFlash启动解析

需积分: 11 15 下载量 83 浏览量 更新于2024-09-10 1 收藏 148KB DOC 举报
"Qualcomm手机开机全过程大揭密——深入解析Qualcomm平台手机从按下开机键到进入待机界面的启动流程" Qualcomm手机的开机过程是一个复杂而有序的序列,涉及硬件初始化、软件加载等多个步骤。在了解这一过程之前,我们需要知道Qualcomm平台支持两种启动方式:NorFlash和NandFlash。NorFlash启动方式相对简单,但这里主要讨论的是Amoi采用的NandFlash启动方式,因为它与PC的启动方式更为相似。 当用户按下开机键,系统首先会响应一个时钟中断,这个中断触发AMSS主芯片的Boot Loader从NandFlash的第一个Block(8K)读取Boot代码,并将其复制到内核内存(RAM)的0xFFFF0000地址开始执行。Boot Loader的主要职责是对系统硬件进行初始化,类似PC中的BIOS,负责自检和配置硬件。 Boot Loader执行完毕后,会将整个手机软件包(包括AMSS软件)从NandFlash拷贝到SDRAM(动态随机存取内存)中,这是系统运行的主要内存。随后,控制权转移给AMSS软件的入口点函数`main()`,这个函数位于`mobile.c`文件中。 在`main()`函数中,操作系统(Rex)的初始化工作开始进行,这主要通过调用`rex_init()`来实现。`rex_init()`不仅初始化操作系统所需的数据结构,如定时器链表和任务链表,还会创建三个核心任务:`rex_idle_task`、`rex_dpc_task`和`tmc_task`。 - `rex_idle_task`是空闲任务,当前可能尚未实现任何功能。 - `rex_dpc_task`的具体功能在文档中未详述,可能涉及到低优先级处理或后台任务。 - `tmc_task`的任务也不明确,但通常这类任务可能与通信或系统管理相关。 这些任务的创建标志着操作系统开始准备处理各种并发事件,为后续的用户界面和应用程序运行奠定了基础。随着初始化的继续,系统会逐步启动其他必要的服务和组件,直至最终呈现出待机界面,用户可以开始交互操作。 总结来说,Qualcomm手机的开机流程涵盖了Boot Loader的硬件初始化、操作系统加载、核心任务创建等多个关键步骤。这个过程的每一个环节都是为了确保系统能够稳定、高效地运行,为用户提供流畅的体验。对这个过程的理解有助于开发者进行系统优化和故障排查,特别是在定制初始化工作时,可以作为重要的参考依据。