Qualcomm手机开机流程解析

5星 · 超过95%的资源 需积分: 29 45 下载量 49 浏览量 更新于2024-10-30 1 收藏 131KB DOC 举报
"高通软件开机流程" 高通手机的开机过程是一个复杂而精细的系统级初始化过程,主要涉及软件和硬件的协同工作。本文重点解析的是基于NandFlash启动方式的流程,因为这种方式与个人电脑的启动过程更为相似,且在高通平台上广泛采用。 当用户按下开机键时,首先触发的是一个时钟中断,这个中断信号通知AMSS(Advanced Mobile System Software,高通的主控芯片)的Boot Loader。Boot Loader是系统启动的第一步,它位于NandFlash的首个Block中,通常为8K大小。Boot Loader的任务是将自身的代码复制到CPU的内核内存(非SDRAM,可以理解为CPU缓存)的特定地址0xFFFF0000处,并开始执行。 Boot Loader的主要工作是对系统硬件进行初始化,类似PC中的BIOS功能,包括内存检测、设备初始化等。完成这些工作后,Boot Loader会将手机软件包(AMSS软件)从NandFlash加载到SDRAM(系统动态随机存取存储器)中,并将控制权交给AMSS软件的入口点函数`main()`。这个函数定义在`mobile.c`文件中。 `main()`函数是操作系统启动的关键点,它调用`rex_init()`来初始化操作系统,即Rex操作系统。Rex_init()的职责主要包括: 1. 初始化操作系统必要的数据结构,如定时器链表、任务链表等。这些数据结构是操作系统核心功能的基础,用于调度和管理任务执行。 2. 创建并启动三个核心任务:`rex_idle_task`、`rex_dpc_task`和`tmc_task`。 - `rex_idle_task`,空闲任务,当无其他任务需要执行时,CPU会运行这个任务,以节省资源。 - `rex_dpc_task`,延迟过程调用任务,用于处理那些不能在中断上下文中执行但必须尽快处理的任务。 - `tmc_task`,可能与通信相关的任务,TMC(可能是Time Management Controller)负责管理时间相关的操作或通信协议栈的执行。 这些任务的创建和初始化完成后,操作系统开始正常运行,进一步加载和初始化其他应用程序和服务,直到最终显示待机界面。整个过程涉及的组件和技术还包括任务调度、内存管理、设备驱动等,都是手机操作系统核心功能的体现。 高通手机的开机流程是一个涉及多层软件和硬件交互的过程,从Boot Loader到操作系统初始化,再到用户界面的展示,每一步都至关重要,确保了手机能够顺利启动并提供稳定的服务。