基于ARM的嵌入式系统Bootloader启动流程分析-Mipaper.PDF

基于ARM的嵌入式系统Bootloader启动流程分析-Mipaper.PDF

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于ARM的嵌入式系统Bootloader启动流程分析-Mipaper.PDF

基于 ARM 的嵌入式系统Bootloader 启动流程分析 万永波 1 张根宝 1 田泽2 杨峰 1 (1:陕西科技大学电气与电子工程学院,陕西省咸阳市人民西路49 号,712081 2 :西北大学电子系,陕西省西安市太白北路229 号,710069 ) 摘要:讲述了基于 ARM 处理器的嵌入式系统在上电启动后应用程序或操作系统运行前,对 处理器及其内部功能模块进行初始化的过程,并结合经过实际验证的代码详细的分析了 S3C44B0 Bootloader 的运行过程。 关键字:ARM 嵌入式系统 Bootloader 一. 引言: 对于 PC 机,其开机后的初始化处理器配置、硬件初始化等操作是由 BIOS (Basic Input /Output System )完成的,但对于嵌入式系统来说,出于经济性、价格方面的考虑一般不配 置 BIOS ,因此我们必须自行编写完成这些工作的程序,这就是所需要的开机程序。而在嵌 入式系统中,通常并没有像 BIOS 那样的固件程序,启动时用于完成初始化操作的这段代 码被称为 Bootloader 程序,因此整个系统的加载启动任务就完全由 Bootloader 来完成。简 单地说,通过这段程序,可以初始化硬件设备、建立内存空间的映射图(有的 CPU 没有内 存映射功能如 S3C44B0 ),从而将系统的软硬件环境设定在一个合适的状态,以便为最终调 用操作系统内核、运行用户应用程序准备好正确的环境。Bootloader 依赖于实际的硬件和应 用环境,因此要为嵌入式系统建立一个通用、标准的 Bootloader 是非常困难的。Bootloader 也依赖于具体的嵌入式板级设备的配置,这也就是说,对于两块不同的嵌入式主板而言,即 使它们是基于同一 CPU 而构建,要想让运行在一块板子上的 Bootloader 程序也能运行在 另一块板子上,通常都需要修改 Bootloader 的源程序。 二. 启动流程 系统加电复位后,几乎所有的 CPU 都从由复位地址上取指令。比如,基于 ARM7TDMI 内核的 CPU 在复位时通常都从地址 0 处取它的第一条指令。而以微处理器为核 心的嵌入式系统通常都有某种类型的固态存储设备(比如 EEPROM 、FLASH 等)被映射到 这个预先设置好的地址上。因此在系统加电复位后,处理器将首先执行存放在复位地址处的 程序。通过集成开发环境可以将 Bootloader 定位在复位地址开始的存储空间内,因此 Bootloader 是系统加电后、操作系统内核或用户应用程序运行之前,首先必须运行的一段程 序代码。对于嵌入式系统来说,有的使用操作系统,也有的不使用操作系统,比如功能简单 仅包括应用程序的系统,但在系统启动时都必须执行 Bootloader ,为系统运行准备好软硬件 运行环境。 系统的启动通常有两种方式,一种是可以直接从 Flash 启动,另一种是可以将压缩的内 存映像文件从 Flash (为节省Flash 资源、提高速度)中复制、解压到 RAM ,再从 RAM 启 动。当电源打开时,一般的系统会去执行 ROM (应用较多的是Flash )里面的启动代码。这 些代码是用汇编语言编写的,其主要作用在于初始化 CPU 和板上的必备硬件如内存、中断 控制器等。有时候用户还必须根据自己板子的硬件资源情况做适当的调整与修改。 系统启动代码完成基本软硬件环境初始化后,对于有操作系统的情况下,启动操作系统、 启动内存管理、任务调度、加载驱动程序等,最后执行应用程序或等待用户命令;对于没有 操作系统的系统直接执行应用程序或等待用户命令。 启动代码是用来初始化电路以及用来为高级语言写的软件做好运行前准备的一小段汇 编语言,在商业实时操作系统中,启动代码部分一般被称为板级支持包,英文缩写为 BSP 。 它的主要功能就是:电路初始化和为高级语言编写的软件运行做准备。系统启动流程如图 1 所示,主要的过程如下: 1. 启动代码的第一步是设置中断和异常向量。 设置中断异常向量 2. 完成系统启动所必须的

您可能关注的文档

文档评论(0)

wendang_12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档