实验一 ARM汇编程序的编写以及启动代码的分析.pdfVIP

实验一 ARM汇编程序的编写以及启动代码的分析.pdf

  1. 1、本文档共23页,可阅读全部内容。
  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汇编程序的编写,对提供的程序的启动代码进行分析,了解

S3C2410初始化过程,初始化代码主要是包含在start.s中。

二、实验原理:

启动程序要完成的任务包括:硬件初始化,系统存储系统的配置,复

制二级中断向量表。

启动程序过程

●系统硬件初始化

系统上电或复位后,程序从位于地址0x0的ResetExceptionVector处

开始执行,因此需要在这里放置Bootloader的第一条指令:bResetHandler,

跳转到标号为ResetHandler处进行第一阶段的硬件初始化,执行完,系统

进行堆栈和存储器的初始化。使用了外设,则需要设置相关的寄存器,确

定其刷新频率、总线宽度等信息。

●代码段复制到RAM中运行

需要把系统的代码复制到RAM中运行。映像文件内部共有三种输出

段:RO段、RW段和ZI段。ARMLink同时还产生了这三种输出段的起始和

终止定位信息:Image$$RO$$Base、Image$$RO$$Limit、Image$$RW$$Base、

Image$RW$Limit、Image$ZI$Base和Image$$ZI$$Limit。可以在程序中使用

这些定位信息。将ROM中的代码和数据搬移到RAM中。

●建立二级中断向量表

在ARM系统中,中断向量表位于0X0开始的地址处,意味着无论运

行什么样的上层软件,一旦发生中断,程序就得到Flash存储器中的中断

向量表里去,降低系统的运行效率。因此在RAM中建立自己的二级中断向

量表,当中断发生后,程序直接从RAM中取中断向量进入中断子程序。尤

其是在中断频繁发生的系统里,这种方法可以大大提高系统的运行效率。

三、实验内容:

1.运行一个简单的串口程序,单步执行初始化代码,观察寄存器变化。

2.分析系统上电后的初始化工作包括哪些内容。

3.分析中断的处理过程,包括中断向量表的建立、中断源的识别及中断IRQ

服务程序是如何进入的。

4.分析应用程序的结构。

四、实验代码:

在系统上电后,初始化部分的工作注意包含以下部分:

1、关看门狗定时器

2、屏蔽所有中断

3、设置CPU时钟频率。

4、设置存储器控制寄存器,对外部存储器的参数进行设置。

5、初始化各模式下的堆栈

6、建立IRQ中断的总的入口地址

7、初始化应用程序的执行环境

8、跳入Main函数,进入C程序

;=========================================

;NAME:2410INIT.S

;DESC:Cstartupcodes

;Configurememory,ISR,stacks

;InitializeC-variables

;HISTORY:

;2002.02.25:kwtark:ver0.0

;2002.03.20:purnnamu:AddsomefunctionsfortestingSTOP,POWER_OFFmode

;=========================================

GEToption.s;GET相当INCLUDE将一个源文件包含到当前源文件,这里表示包含

option.s,并在当前位置进行汇编

GETmemcfg.s

GET2410addr.s

BIT_SELFREFRESHEQU(122);定义了一些符号常量

;ARM异常模式的定义

;SDRAM/DRAM刷新控制器bit22REFMD位0:CBR/AUTOREFRESH1:SHIFREFRESH

;下面是对arm处理器模式寄存器对应值的常数定义,arm处理器中有一个CPSR程序状

;态寄存器,CPSR后五位决定目前的处理器模式。

;Pre-definedconstants

文档评论(0)

198****4825 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档