- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一 ARM汇编程序的编写以及启动代码的分析
实验 ARM汇编程序的编写以及启动代码的分析
一、实验目的:
练习ARM汇编程序的编写,对提供的程序的启动代码进行分析,了解S3C2410初始化过程, 初始化代码主要是包含在start.s中。
二、实验原理:
启动程序要完成的任务包括:硬件初始化,系统存储系统的配置,复制二级中断向量表。
启动程序过程
● 系统硬件初始化
系统上电或复位后,程序从位于地址0x0的Reset Exception Vector处开始执行,因此需要在这里放置Bootloader的第一条指令:b ResetHandler,跳转到标号为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.分析应用程序的结构。
四、实验代码:
在系统上电后,初始化部分的工作注意包含以下部分:
关看门狗定时器
屏蔽所有中断
设置CPU时钟频率。
设置存储器控制寄存器,对外部存储器的参数进行设置。
初始化各模式下的堆栈
建立IRQ中断的总的入口地址
初始化应用程序的执行环境
跳入Main函数,进入C程序
;=========================================
; NAME: 2410INIT.S
; DESC: C start up codes
; Configure memory, ISR ,stacks
; Initialize C-variables
; HISTORY:
; 2002.02.25:kwtark: ver 0.0
; 2002.03.20:purnnamu: Add some functions for testing STOP,POWER_OFF mode
;=========================================
GET option.s ;GET相当INCLUDE 将一个源文件包含到当前源文件,这里表示包含option.s,并在当前位置进行汇编
GET memcfg.s
GET 2410addr.s
BIT_SELFREFRESH EQU (122) ;SDRAM/DRAM 刷新控制器 bit22 REFMD位 0:CBR/AUTO REFRESH 1:SHIF REFRESH
;Pre-defined constants
USERMODE EQU 0x10 ;用户模式
FIQMODE EQU 0x11 ;FIQ快速中断模式
IRQMODE EQU 0x12 ;中断模式
SVCMODE EQU 0x13 ;管理模式
ABORTMODE EQU 0x17 ;中止模式
UNDEFMODE EQU 0x1b ;未定义指令模式
MODEMASK EQU 0x1f ;系统模式
NOINT EQU 0xc0 ;禁止IRQ和FIQ中断
;定义各模式堆栈地址 _STACK_BASEADDRESS在option.s中,
;The location of stacks
_STACK_BASEADDRESS EQU (SDRAM_END-0x8000) ;0x33ff8000
UserStack EQU (_STACK_B
您可能关注的文档
- 微机原理分支程序设计 将大写字母转换为小写字母.doc
- 汇编程序:实现1+n,并且以十进制形式输入与输出.docx
- 微机原理实验10-2.doc
- 实验三 可输入的整数加法器.doc
- 微型计算机原理及应用谭浩强第8讲程序设计.ppt
- 10284043-童博-通信1004-微机原理实验报告.doc
- 《微机原理与接口技术》习题解答2.doc
- 微机原理整理后.doc
- 微机原理及应用第四章第二部分.ppt
- 微机原理课程设计打字练习计时.doc
- 深埋中厚煤层双巷区段煤柱留设及煤巷锚网索注协同控制技术.pdf
- 采空区顶板破损演化机理及其控制研究.pdf
- 2.2.1有理数的乘法(第一课时)课件人教版数学七年级上册.pptx
- (预习部分)第02讲Module2(知识全梳理考点精准练).docx
- Unit6SectionB(2a2e)课件人教版(2012)九年级英语全册.pptx
- Unit1ThesecretsofhappinessUnderstandingideas课件外研版七年级英语下册(3).pptx
- 期末冲刺(完形填空20道).docx
- 白羊岭煤矿临空巷道顶板水压裂缝扩展规律及卸压控制研究.pdf
- 激光熔覆不锈钢涂层的超声表面深滚压改性研究.pdf
- 矿山立井钢丝绳运动状态监测装置设计与应用研究.pdf
文档评论(0)