- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]Chapter11 嵌入式系统启动程序开发
嵌入式微处理器系统及应用 第十一章 嵌入式系统启动程序开发 主要内容 嵌入式系统的典型启动过程及bootloader 几种典型的嵌入式系统启动程序简介 基于W90P710学习板的redboot移植实例 嵌入式软件运行流程 11.1.1板级初始化 CPU相关初始化: CPU状态的初始化:对全局中断控制的初始化、CPU其它状态位的初始化; 协处理器的初始化:对浮点寄存器、状态寄存器等的初始化。 Watchdog初始化 有的CPU有Watchdog,系统上电后应该禁止watchdog的工作,或者对Watchdog进行复位操作,以避免在后续的初始化过程中由于Watchdog的原因造成不期望的系统重新复位; 如果上电后Watchdog没有启动,则应该尽可能地延迟Watchdog的初始化 11.1.1板级初始化 GPIO初始化 GPIO是用于控制一些通用或者复用的输入输出端口,有关GPIO各个引脚所具有的功能和配置方法在SOC芯片手册中都有详细的说明,另外在系统硬件板的手册中也有相关连接和选择跳线的说明。 系统时钟初始化 首先明确系统时钟是使用的外部时钟还是内部时钟; 其次明确各个时钟的工作频率及分频关系; 对系统时钟的相关寄存器进行初始化 11.1.1板级初始化 内存初始化 内存初始化主要是根据存储系统的具体情况设置存储空间。 模式初始化 设置处理器的工作模式,比如对于x86系列的处理器将其从实模式转换为保护模式。 中断向量初始化 需要对系统的中断向量(包括异常向量)正确进行初始化。对于X86系列的处理器而言需要设置向量表寄存器IDTR,而对于ARM、PowerPC系列的处理器则需要将异常处理的指令放到向量位置中 11.1.1板级初始化 MMU与Cache的初始化 对于带有MMU(或MPU)、cache的处理器,需要在本阶段对其进行相应的初始化,包括是否使能它们的功能,以及当使能时其具体的工作模式和相关参数的设置,以便根据系统的实际需要,实施有效的存储空间隔离、保护、地址转换映射,以及缩短平均访存时间和提升系统性能 语言相关初始化 设置系统的调用栈,以便在函数调用时能使用堆栈对返回地址、状态进行保存和恢复,并可通过堆栈传递参数和返回值; 对于使用C语言编程的软件,需要对BSS段的数据做清零操作,并进行必要的数据搬移操作。 11.1.2 系统引导/升级 在板级初始化完成后,进入系统引导/升级阶段,用户可以根据系统的提示按需要进入系统软件引导部分或系统升级部分 系统引导阶段 在系统引导阶段,有操作系统的嵌入式系统通过Boot Loader程序将操作系统内核从外部存储介质拷贝到内存中,并跳转到内核的首条指令。如果没有操作系统,则bootloader可直接加载应用软件。 引导程序的3种情况 将软件从引导flash(通常是NOR Flash)中读取出来加载到RAM中运行,软件存储在flash中可以采用压缩存储的方式。这种方式的优点在于,压缩存储可以减少对flash空间的需求,降低成本,而在RAM中运行又可以提供比flash更快的速度。 将软件从外存(如NandFlash、CF卡、MMC等)中读取出来加载到RAM中运行,采用这种方式获得更大的存储空间,成本更低,但是启动过程中软件加载的速度会慢一些。 不将软件引导到RAM中而是让其直接在Nor Flash上运行,进入系统初始化阶段 引导方式的分类 按是否需要引导程序分类 需要引导程序的引导方式 不需要引导程序的引导方式 按存储介质分类 从Nor Flash启动 单独使用Nor Flash 启动 Nor Flash和Nand Flash配合使用 从NAND Flash启动 11.1.2 系统引导/升级 系统升级阶段 本地升级:一般是指将嵌入式系统设备连接到被升级软件所在的主机,连接方式可以通过JTAG口、串口或网口,采用命令行或图形化的升级工具来完成升级过程。 远程升级:是由嵌入式系统设备发出升级指示,通过Internet与提供升级服务的远程服务器进行通讯,更新嵌入式系统中的软件和数据,从而完成升级的过程。 嵌入式软件运行流程 系统初始化阶段 在该阶段进行操作系统等系统软件各功能部分必需的初始化工作,如根据系统配置初始化数据空间、初始化系统所需的接口和外设等。 系统初始化阶段需要按特定顺序进行,如首先完成内核的初始化,然后完成网络、文件系统等的初始化,最后完成中间件等的初始化工作。 嵌入式软件运行流程 应用初始化阶段 在该阶段进行应用任务的创建,信号量、消息队列的创建和与应用相关的其它初始化工作。 多任务应用运行阶段 各种初始化工作完成后,系统进入多任务状态,操作系统按照已确定的算法进行任务的调度,各应用任务分别完成特定的功能。 主要内
文档评论(0)