高通平台NandFlash启动与Rex操作系统解析

需积分: 10 0 下载量 99 浏览量 更新于2024-10-16 收藏 45KB DOC 举报
"高通实时操作系统Rex启动详解" 在深入了解高通实时操作系统Rex的启动过程之前,首先需要理解其所在的硬件环境。高通平台提供了两种启动方式,分别是NorFlash和NandFlash启动。NorFlash启动方式由于相对简单且在Amoi设备中未采用,故在此不做详细讨论。主要关注的是NandFlash启动方式,这种方式与PC的启动流程类似,是Amoi设备的实际启动方式。 当按下开机键,系统通过时钟中断触发BootLoader硬件。BootLoader位于NandFlash的第一个Block(8KB),被复制到内核内存(RAM,非后续提到的SDRAM)的0xFFFF0000地址并开始执行。BootLoader的主要任务是对系统硬件进行初始化,类似PC中的BIOS功能,包括对各种硬件设备的检测和配置。 BootLoader的一个关键操作是将整个手机软件代码(AMSS软件包)从NandFlash拷贝到系统动态随机存取内存(SDRAM)中。一旦硬件初始化完成,BootLoader会将控制权交给AMSS软件的入口点函数`main()`。这个`main()`函数位于`mobile.c`文件中,标志着操作系统接管执行流程的开始。 在`main()`函数内部,操作系统Rex的初始化工作通过调用`rex_init()`函数进行。`rex_init()`主要负责初始化操作系统所需的数据结构,如定时器链表和任务链表。同时,它还会创建三个关键任务: 1. `rex_idle_task`:空闲任务,目前未实现任何功能。 2. `rex_dpc_task`:其具体功能未知,暂时可以忽略。 3. `tmc_task`:这是一个重要的任务,可视为操作系统的核心任务,也是手机软件的主要入口点。`tmc_task`负责创建和管理AMSS软件中的其他所有任务。 至此,AMSS软件的执行流程已由`tmc_task`接手,开始执行手机软件的各种功能和服务。这个过程展示了Rex操作系统如何在高通平台上启动并运行,以及如何管理和调度任务,确保设备的正常运行。