ARM培训实验指导书第一版Word文档下载推荐.docx

上传人:b****1 文档编号:3032182 上传时间:2023-05-01 格式:DOCX 页数:12 大小:309.89KB
下载 相关 举报
ARM培训实验指导书第一版Word文档下载推荐.docx_第1页
第1页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第2页
第2页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第3页
第3页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第4页
第4页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第5页
第5页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第6页
第6页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第7页
第7页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第8页
第8页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第9页
第9页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第10页
第10页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第11页
第11页 / 共12页
ARM培训实验指导书第一版Word文档下载推荐.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ARM培训实验指导书第一版Word文档下载推荐.docx

《ARM培训实验指导书第一版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ARM培训实验指导书第一版Word文档下载推荐.docx(12页珍藏版)》请在冰点文库上搜索。

ARM培训实验指导书第一版Word文档下载推荐.docx

一实验目的:

初步学会使用EmbestIDEforARM开发环境。

二 实验设备:

硬件:

PC机;

软件:

EmbestIDE2003集成开发环境,WindowsXP。

三实验内容

1.学会使用EmbestIDE2003集成开发环境,可参见

2.在开发环境下完成第四章课后练习。

四 实验操作步骤

1)新建工程:

运行EmbestIDE集成开发环境,选择File→New-

Workspace菜单项,弹出一个对话框,按照图2.1所示输入相关内容。

单击OK按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。

此时在工作区窗口将打开该工作区和工程。

2)建立源文件:

选择File→New菜单项,弹出一个新的、没有标题的文本编辑窗口,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。

编辑完后,保存文件asml_a.s。

3)添加源文件:

选择Project→AddToProject→Files项,或单击工程管理窗口中的相应右键快捷菜单命令,打开文件选择对话框,在工程目录下选择刚才建立的源文件asml_a.s。

4)基本设置:

选择Project→Settings…菜单项,或按下快捷键Alt+F7,弹出工程设置对话框。

在工程设置对话框中,选择Processor属性页,按照图2.2所示,对目标板所用处理器进行设置。

5)生成目标代码:

选择Build→Buildasm_a菜单项,或按下快捷键F7,生成目标代码。

也可以单击工具栏上相应按钮来完成,如图2.3所示。

6)调试设置:

在工程设置对话框中,选择Remote页面,按照图2.4所示对调试设备模块进行设置。

选择Debug页面,按照图2.5所示进行调试模块设置。

注意:

Symbolfile与Downloadfile设置应该相同,用户可以从Linker页面拷贝系统默认的输出文件配置;

且该实验输入下载地址为0x8000,即为AS默认的代码段起始地址。

由于

汇编和链接选项在本实验中没有进行设置,完全使用其默认选项,所以,代码段是从0x8000开始的,下载地址应该与它保持一致。

7)选择Debug→RemoteConnect连接软件仿真器,执行Download命令下载程序,并打开寄存器窗口。

8)打开存储器窗口,观察相关地址的内容。

五练习题

在开发环境下完成第四章课后练习题。

实验二 ARM汇编指令实验

(1)

一实验目的

●初步学会使用EmbestIDEforARM开发环境及ARM软件模拟器

●通过实验掌握简单ARM汇编指令的使用方法。

二 实验设备

●硬件:

●软件:

EmbestIDE2003集成开发环境,Windows98/2000/NT/XP。

●熟悉开发环境的使用.并使用LDR/STR和MOV等指令访问寄存器或存储单元。

●使用ADD/SUB/LSL/LSR/AND/ORR等指令.完成基本数学/逻辑运算。

●熟悉开发环境的使用并完成一块存储区的拷贝。

●完成分支程序设计,要求判断参数,根据不同参数,调用不同的子程序。

四 实验原理

ARM处理器共有37个寄存器:

●31个通用寄存器,包括程序计数器(PC)。

这些寄存器都是32位。

●6个状态寄存器。

这些寄存器也是32位,但只使用了其中的12位。

1.ARM通用寄存器

 通用寄存器(R0~R15)可分l~3类.即不分组寄存器R0~R7、分组寄存器R8~R14、程序计数器R15。

1)不分组寄存器R0~R7

 R0~R7是不分组寄存器。

这意味着在所有处理器模式下.它们每一个都访问一样的32位寄存器。

它们是真正的通用寄存器.没有体系结构所隐含的特殊用途

2)分组寄存器R8~R14

R8~R14是分组寄存器。

它们每一个访问的物理寄存器取决于当前的处理器模式。

若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。

寄存器R8~R12各有两组物理寄存器:

一组为FIQ模式,另一组为除了FIQ以外的所有模式。

寄存器R8~R12没有任何指定的特殊用途。

只是使用R8~R12来简单地处理中断。

寄存器R13和R14各有6个分组的物理寄存器,1个用于用户模式和系统模式,其他5个分别用于5种异常模式。

寄存器R13通常用做堆栈指针,称作SP。

每种异常模式都有自己的R13。

寄存器R14用作子程序链接寄存器,也称作LR。

3)程序计数器R15

 寄存器R15用做程序计数器(PC)。

 在本实验中,ARM核工作在用户模式,R0~R15可用。

2.存储器格式

 ARM体系结构将存储器看作是从零地址开始的字节的线性组合。

字节0~3存放第1个字,字节4~7存放第2个字,以此类推。

ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。

1)大端格式

在这种格式中,字数据的高位字节存储在低地址中,而字数据的低位字节存放在高地址

中。

2)小端格式

在这种格式中,字数据的高位字节存放在高地址中,而字数据的低位字节存放在低地址

3.ARM程序状态寄存器

在所有处理器模式下,都可以访问当前程序状态寄存器CPSR。

CPSR包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。

每种异常模式都有一个程序状态保存寄存器SPSR。

当异常出现时,SPSR用于保存CPSR的状态。

4.GNU基础知识

EmbestIDE集成了GNU汇编器as、编译器gcc和链接器ld。

因此,编写程序要符合GNU的语法和规则。

这里简单介绍几点基本知识:

●程序默认入口点为“_start”,代码段默认起始地址为0x8000;

●as语法及规则:

l).标号的使用

标号由一个符号后跟一个冒号组成,它表示程序中当前的指令或者数据地址。

如果在程序中出现两个相同的标号,汇编器会产生一个警告,同时,只有第一个标号有效。

2).equ

.equ伪操作为数字常量、基于寄存器的值和程序中的标号定义一个字符名称。

语法格式

.equsymbol,expr

其中,expr为基于寄存器的地址值、程序中的标号、32位的地址常量或者32位的常量。

symbol为.equ伪操作为expr定义的字符名称。

示例

.equVersion,“0.1”

3).global及.globl

.global声明一个符号可以被其他文件引用,相当于声明了一个全局变量。

.globl与.global相同。

.globalsymbol

其中,symbol为声明的符号的名称。

它是区分大小写的。

.globalMyAsmFunc

4).text

.text伪操作将操作符开始的代码编译到代码段或代码段子段(Subsection)中。

.text{subsection}

.text

5).end

标记汇编文件的结束行,即标号后的代码不作处理。

.end

6).LDR

LDR伪指令将一个32位常数或者一个地址值读取到寄存器中。

当需要读取到寄存器中的数据超过了MOV或者MVN指令可以操作的范围时,可以使用LDR伪指令将该数据读取到寄存器中。

在汇编编译器处理源程序时,如果该常数没有超过MOV或者MVN可以操作的范围,则LDR指令被这两条指令中的一条所替代;

否则,该常数将被放在最近的一个文字池(LiteralPoo1)内,同时,本指令被一条基于PC的LDR指令替代。

LDR<

register>

,=<

expression>

其中,expression为需要读取的32位常数。

register为目标寄存器。

LDRr1,=0xff

LDRr0,=0xfff00000

7).1torg

.1torg伪操作用于在当前段(一般是.text段)的当前地址(字对准地址)产生一个文字池。

.1torg

五实验操作步骤

1.实验A

1)――7)同实验一。

8)打开存储器窗口,观察地址0x8000~0x801F的内容,以及地址0xFF0~0xFFF的内容。

9)单步执行程序并观察和记录寄存器与存储器值的变化。

10)结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令的使用。

11)理解和掌握实验后,完成实验练习题。

2.实验B

1)参考实验A,建立一个工程,命名为asm1_b。

2)参考实验A完成目标代码的生成与调试。

3)打开存储器窗口,观察地址0x8054~0x80A0的内容,以及地址0x80A4~0x80F0内容。

4)单步执行程序并观察和记录寄存器与存储器值的变化,注意观察步骤3的地址中内容变化。

当执行STMFD、LDMFD、LDMIA和STMIA指令时,注意观察其后面参数所指的地址段或寄存器段的内容变化。

5)结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令的使用。

6)理解和掌握实验后,完成实验练习题。

六 实验参考程序

1.实验A参考程序

.equx,45

.equy,64

.equstack_top,0x1000

.global_start

.text

_start:

MOVsp,#stack_top

MOVr0,#x

STRr0,[sp]

MOVr0,#y

LDRrl,[sp]

ADDr0,r0,r1

STRr0,[sp]

stop:

B stop

.end

2.实验B参考程序

.global_start

.text

.equnum,20

_start:

LDRr0,=src

LDRrl,=dst

MOVr2,#num

MOVsp,#0x400

blockcopy:

MOVSr3,r2,LSR#3

BEQcopywords

STMFDsp!

,{r4-r11}

octcopy:

LDMIAr0!

STMIArl!

,{r4-r11)

SUBSr3,r3,#1

BNEoctcopy

LDMFDsp!

,{r4-r14}

copywords:

ANDSr2,r2,#7

BEQstop

wordcopy:

LDRr3,[r0],#4

STRr3,[r1],#4

SUBSr2,r2,#1

BNEwordcopy

stop:

Bstop

.1torg

src:

.1ong1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4

dst:

.1ong0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

.end

七练习题

1)更改实验A中x、y的值,观察执行结果。

并将其每行指令写上注释。

2)画出实验B的流程图。

实验三  ARM汇编指令实验

(2)

同实验二

三实验内容:

深入学习ARM汇编指令的使用方法

四练习题

  完成第五章习题:

5.1,5.2,5.3,5.5,5.7

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2