您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页实验2 S3C2410堆栈初始化程序实验

实验2 S3C2410堆栈初始化程序实验

来源:意榕旅游网
实验2 S3C2410堆栈初始化程序实验

一、试验目的: 1、熟悉ADS软件的调试方法。 2、熟悉汇编语言启动程序的定义,了解ARM的体系结构。 3、分析了解初始化代码Startup.s中对堆栈的结构定义。 二、实验步骤: 1. 点击D盘“Embedded system exp\\EXP2”文件夹下的工程文件exp2.mcp,打开工程进入“Metrowerks CodeWarrior for ARM Developer Suite v1.2”调试界面。 2. 找到Startup.s文件并打开,阅读汇编语言代码,理解其中的堆栈定义语句。 3. 按照实验1的方法打开寄存器窗口,采用单步和设断点的方式,观察各指令的运行结果。 4. 调试时完成以下所要求的内容。 三、试验要求及纪录: 1、在初始化代码中运行分析和堆栈相关的以下代码,查找其中用到的常数定义数值,运行代码,确定并记录每种模式堆栈区域的起始地址和大小。 InitStacks mov r2,lr mrs r0,cpsr bic r0,r0,#MODEMASK orr r1,r0,#UNDEFMODE|NOINT msr cpsr_cxsf,r1 ldr sp,=UndefStack ;AbortMode orr r1,r0,#ABORTMODE|NOINT msr cpsr_cxsf,r1 ldr sp,=AbortStack ;IRQMode orr r1,r0,#IRQMODE|NOINT msr cpsr_cxsf,r1 ldr sp,=IRQStack orr r1,r0,#FIQMODE|NOINT msr cpsr_cxsf,r1 ldr sp,=FIQStack ;FIQMode ;UndefMode orr r1,r0,#SVCMODE|NOINT msr cpsr_cxsf,r1 ldr sp,=SVCStack ;SVCMode orr r1,r0,#USERMODE|NOINT msr cpsr_cxsf,r1 mov pc,r2 记录结果: SVC模式堆栈起始地址: 大小: 字节 IRQ模式堆栈起始地址: 大小: 字节 FIQ模式堆栈起始地址: 大小: 字节 ABORT模式堆栈起始地址: 大小: 字节 UNDEF模式堆栈起始地址: 大小: 字节 2、问题 1) 系统复位后处于哪种工作模式? 2) 堆栈初始化完成以后系统处于什么模式? 3) 堆栈初始化完成后FIQ中断和IRQ中断是否打开? 3、修改程序 1)将InitStacks后面的第3条语句改成以下黑体显示的语句,然后重新编译调试。 InitStacks mov r2,lr mrs r0,cpsr bic r0,r0,#MODEMASK orr r1,r0,# USERMODE|NOINT 2)观察运行结果,此时的结果和程序修改之前有何不同,为什么? 4、 现在要把各堆栈的大小改为8192字节,如何修改,写出具体的定义语句,然后重新编译运行程序,验证修改是否正确。 答: 5、分析各寄存器的值,回答以下问题 1) BANK0和BANK1的数据总线宽度各是多少? 2) BANK0和BANK1的存取周期各是多少? 3) BANK6和BANK7的存储器类型各是什么? 4) BANK6和BANK7的存储区大小各是多少?

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务