NandFlash启动方式解析:从开机到rex操作系统启动
需积分: 10 155 浏览量
更新于2024-11-09
1
收藏 45KB DOC 举报
"本文主要分析了rex操作系统在Qualcomm平台上的启动流程,特别是NandFlash启动方式,这是Amoi手机采用的启动方式。在按下开机键后,BootLoader从NandFlash加载Boot代码到内核内存,然后进行硬件初始化,包括将手机软件代码复制到SDRAM,最终将控制权交给AMSS软件的main()函数。操作系统rex通过rex_init()初始化,创建三个任务:rex_idle_task、rex_dpc_task和tmc_task。tmc_task作为操作系统和手机软件的主要入口任务,负责其他任务的创建与管理。"
在深入讨论rex操作系统的启动流程之前,首先需要理解BootLoader的角色。BootLoader是系统启动的第一部分,它负责初始化硬件环境,如CPU、内存控制器以及必要的外设,并加载操作系统映像到内存中,为操作系统运行做好准备。在NandFlash启动方式下,BootLoader首先读取NandFlash上的第一个Block(8KB)到CPU的内核内存,通常位于0xFFFF0000地址。
Boot代码一旦执行,其主要任务是完成硬件初始化,包括内存检测和配置、时钟设置、中断系统初始化等,这些工作与PC中的BIOS类似。BootLoader还会将整个手机软件代码,即AMSS软件包,从NandFlash拷贝到SDRAM中。SDRAM是系统运行时的主要内存,不同于内核内存,它用于存储运行时的数据和程序。
当BootLoader完成硬件初始化后,它将控制权传递给AMSS软件的入口点,即main()函数,该函数位于mobile.c文件中。在main()函数内部,操作系统rex的初始化通过调用rex_init()进行。rex_init()不仅初始化操作系统必要的数据结构,如定时器链表、任务链表,还创建了三个核心任务:
1. rex_idle_task:这是一个空任务,目前不做任何处理。
2. rex_dpc_task:具体功能未详述,可能涉及设备驱动或中断处理,暂时忽略。
3. tmc_task:这是一个关键任务,既是操作系统层面的任务,也是手机软件的主入口。它负责创建和管理AMSS软件中的其他所有任务,确保手机软件的正常运行。
至此,rex操作系统启动流程的主要环节已经阐述完毕,从BootLoader启动到操作系统接管,再到手机软件的运行,每个步骤都是系统能够成功启动并运行的基础。理解这一过程对于系统开发、调试和优化至关重要。
2021-06-23 上传
2021-10-08 上传
2021-10-05 上传
2021-08-09 上传
2012-02-27 上传
2011-04-29 上传
2021-12-25 上传
houxiaojian0
- 粉丝: 1
- 资源: 10
最新资源
- mathematicalPendulum
- JavaScript-modules-in-browser:在JavaScript中使用ECMAScript模块
- NodaChat:基于 Node.js、Express 4、Jade、Bootstrap 和 Socket.IO 的简单聊天
- 毕业设计&课设--毕业设计之SpringCloud-B2C电子商务平台App端.zip
- jwt-rsa:在一个简单的界面中结合了jsonwetokens和node-rsa的包装器
- Vali-it-projektid:我的训练营文件
- Excel模板财务收支报表5.zip
- angular-contacts:管理系统联系人列表
- Autour_de_DAG:G. Vezzosi在2013年Spring在巴黎7举行的研讨会周期的注释。
- Excel模板项目测试用例表.zip
- esp32_php:Ejercicios de prueba de PHP
- ui5-middleware-code-coverage:用于UIt工具的代码覆盖率检测器
- protolog:为所有变量添加全局日志方法
- 【地产资料】XX地产 培训专员考勤表.zip
- teachPro:问题管理系统
- uuidtools:一个简单的通用唯一ID生成库