ARM的启动分析详解.pdfVIP

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM的启动分析详解

ARM 的启动代码分析 1 1、启动代码概述 基于ARM 芯片的应用系统,多数为复杂的片上系统,该复杂系统里 ,多数硬件模块都是可配置的,需要由软件来预先设置其需要的工作状 态,因此在用户的应用程序之前,需要由专门的一段代码来完成对系统 基本的初始化工作。 由于此类代码直接面对处理器内核和硬件控制器进行编程,故一般均 用汇编语言实现。 通常,启动代码是指CPU复位后到进 C语言的main函数之前需要执 行的那段汇编代码。 这是由于C语言程序的运行需要具备一定的条件,比如:分 配好外部数据空间堆栈空间和中断入口等。另外汇编代码可 以更直接的对硬件进行操,使效率更高。 2 编址方式 3 SDRAM分配 4 1、启动代码概述 通常启动代码是放在2410INIT.S汇编文件 (本实验平台 是Startup.s); 特殊功能寄存器定义在2410addr.s; Memory Bank 配置在mencfg.s; 还有系统的选项等在option.s文件。 5 1、启动代码概述 6 程序入口 其中关键字ENTRY 是指定编译器保留这段代码, 链接的时候要确保这段代码被链接在整个程序的入口 地址,该地址也就是RO 的连接地址。 当ARM 启动时,PC指针会自动寻找该关键字从 该关键字处执行,该关键字的地址应满足4 字节对齐 的地址。 7 程序入口 下面是大小端的一个判断, 条件编译,在编译成机器码前 就设定好,在Option.inc里已经设为FALSE。 8 分配中断向量表 ARM 要求中断向量表必须放置在从0地址开 始,连续32 个字节的空间内。 每当一个中断发生后,即使移植了操作系统如linux ,处理 器还是会跳转到从0x0开始,强制把PC指针指向对应中断类型 的向量表中的地址。 因为每个中断 占据向量表中4 个字节的存储空间, 能 放置一条ARM 指令,所以,通常放一条跳转指令让程序跳 转到存储器的其他地方,再执行中断处理。 9 1. 分配中断向量表 b ResetHandler ;因为设成FALSE,所以系统复位后 ;就来到这了,转跳到复位程序入口 ] b HandlerUndef ;转跳到Undefined mode程序入口 b HandlerSWI ;转跳到SWI 中断程序入口

您可能关注的文档

文档评论(0)

zsmfjy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档