ARM Boot Loader简介.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM Boot Loader简介 1 Boot Loader概述 简单地说,在操作系统内核运行之前,通过一小程序,可以初始化硬件设备、建立内存空间的映射图等,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核配置好相应的环境,也可以下载文件到系统板上的SDRAM,对Flash进行擦除与编程,这个小程序一般称为Boot Loader。可以说,一个功能完善的Boot Loader已经相当于一个微型的操作系统了。 Boot Loader作为系统复位或上电后首先运行的代码,一般应写入Flash存储器并从起始物理地址0x0开始。Boot Loader是非常依赖于硬件而实现的,而且根据实现的功能不同,其复杂程度也各不相同。一个简单的Boot Loader可以只完成USB口的初始化,而功能完善的Boot Loader可以支持比较复杂的命令集,对系统的软硬件资源进行合理的配置与管理。因此,建立一个通用的Boot Loader几乎是不可能的。 尽管Boot Loader的功能各不相同,我们仍然可以对Boot Loader归纳出一些通用的概念来,以指导用户对特定要求的Boot Loader设计与实现。Boot Loader一般应包括系统初始化过程,然后用户根据其系统的自身需求,具体设计。 系统初始化代码直接对ARM微处理器内核及硬件控制器编程,多采用汇编语言编程,初始化代码一般应包括如下典型任务: 1.?????? 定义程序入口点; 2.?????? 设置异常和中断向量表; 3.?????? 初始化存储设备; 4.?????? 初始化堆栈指针寄存器; 5.?????? 初始化用户执行环境; 6.?????? 呼叫主应用程序。 1.1 定义程序入口 初始化代码必须定义整个程序的入口点。通过伪指令Entry指定编译器保留该段代码,同时配合链接器的设置,确定整个程序的入口点。 1.2 设置异常和中断向量表 异常和中断处理是嵌入式系统的重要核心部分。它们负责处理错误、中断和其它由外部系统触发的事件。 ARM要求异常向量表必须放置在从0地址开始,连续32(8X4)字节的空间内,各异常的位置如表1所示。 每当一个异常发生以后,系统执行完当前指令后,ARM微处理器会执行以下几步操作: (1)????????? 把cpsr保存到相应异常模式下的spsr; (2)????????? 把pc保存到相应异常模式下的lr; (3)????????? 设置cpsr为相应的异常模式(异常及其对应的模式见图1); (4)????????? 设置pc为相应异常处理程序的入口地址。 因为每个异常只占据向量表中1个字的存储空间,只能放置一条ARM指令,所以该指令必须使程序跳转到存储器存储异常处理程序的地方,再执行异常处理程序。 执行完异常处理程序,要从异常中断处理程序中返回。 从异常中断处理程序中返回包括下面两个基本操作: (1)????????? 恢复被屏蔽的程序的处理器状态 (2)????????? 返回到发生异常中断的指令的下一条指令处继续执行。 当异常发生时,程序计数器PC所指的位置对于各种不同的异常是不同的,同样,返回地址对于各种不同的异常中断也是不同的。例外的是,复位异常中断处理程序不需要返回,因为整个应用系统是从复位异常中断处理程序开始执行的。 总的来说,异常处理过程为:当异常发生时,系统执行完当前指令后,将跳转到相应的异常处理程序处执行。当异常处理程序执行完成后,程序返回到发生异常的指令的下一条指令处执行。在进入异常处理程序时,要保存被中断的程序的执行现场。从异常处理程序退出时,要恢复被中断的程序的执行现场。 IRQ和FIQ异常是用来处理外围设备中断的,不同的ARM芯片生产商,生产的芯片会有所不同。 1.3初始化存储设备 初始化存储器系统主要是对系统存储器控制器的初始化,如果系统具有存储器管理单元,也必须对其进行初始化。 ARM微处理器架构的理论寻址能力为4GB,但是对于一个特定的系统来说,所配备的实际物理存储器远没有那么多。出于对芯片的面积、成本、使用灵活性等方面的考虑,这么大容量的存储器如果设计在芯片内部是不能被接受的。因此,基于ARM微处理器的系统一般都需要外扩大容量的存储器,这些存储器是由专门的存储器控制器控制的。 因为存储器控制器并非标准ARM微处理器架构的一部分,所以不同的ARM微处理器,设计也会各不相同,初始化代码自然也会有一些差异,但一般包含如下两个方面: 1.?????? 存储器类型和时序的配置 ARM微处理器一般都设计有多种类型的存储器接口,需要根据具体的系统设计加以正确配置,且对于同在一种类型的存储器,也会因为访问速度的差异进行不同的时序设置。 存储器接口时序优化是非常重要的,这会影响到整个系统的性能。因为一般系统运

文档评论(0)

飞扬的岁月 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档