ARM实验报告文档格式.docx
- 文档编号:20974825
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:16
- 大小:18.10KB
ARM实验报告文档格式.docx
《ARM实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《ARM实验报告文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
1)掌握ARM数据处理指令的使用方法
2)了解ARM指令灵活的第二个操作数
1)使用MOV和MVN指令访问ARM通用寄存器
2)使用ADDSUBANDORRCMPTST等指令完成数据加减运算及逻辑运算
实验步骤
5)单步运行程序,观察寄存器值的变换
4.实验结果和分析
可单步或者设置断点记录各变化寄存器(包括PC,CPSR)的变化情况
1)
PC=0X40000004R0=0X0000000B
PC=0X00000008R1=0X00000008
PC=0X4000000C
PC=0X40000010
PC=0X40000014R0=0X5FFFFFF8
PC=0X40000018R5=0X5FFFFF60
PC=0X4000001CR0=0X00000008
PC=0X40000020R0=0X00000028
PC=0X40000024R0=0X00000014
PC=0X40000028R1=0X0000000B
PC=0X4000002CR1=0X00000016
PC=0X40000030cpsr=Nzcr
PC=0X40000034
PC=0X40000038
PC=0X4000003CR5=0X5FFFFFFF
PC=0X40000040cpsr=nzcr
PC=0X40000044R5=0X5FFFFFBF
2)
Pc=0x4000
0000
0004R0=0x000
00c8
0008R1=0x0000
00A3
000c
0010
0014R0=0X5FFF
FFF8
0018R5=OX5FFF
F4A0
001C
R0=0X0000
0020R0=0X0000
032F
0024R0=0X0000
0197
0028R1=0X0000
00C8
002CR1=0X0000
0190
0030cpsr=ncvq
0034
0038R5=0X5FFF
0000
003C
0040cpsr=ncvq
0044
3)掌握ARM乘法指令的使用方法
4)了解A子程序编写及调用
使用STMFD/LDMFDMUL指令编写一个整数乘方的子程序,然后使用BL指令调用子程序计算X^n的值
4)编译工程,启动仿真,设置观察地址为0x40003EA0,显示size32bit,监视从0x40003EC0起始的满递减堆栈区。
6)调试程序,更改X,n来测试程序。
PC=0X00008014R14=0X00008010
PC=0X00008018
PC=0X0000802C
PC=0X00008020
PC=0X00008024
PC=0X00008028cpsr=nzcv
PC=0X00008030
PC=0X00008034R2=0X00000007
PC=0X00008038R0=0X00000051
PC=0X0000803CR2=0X00000006
PC=0X00008034R0=0X00000209
PC=0X0000803CR2=0X00000005
PC=0X00008034
PC=0X00008038R0=0X000019A1
PC=0X0000803CR2=0X00000004
PC=0X00008034
PC=0X00008038R0=0X000056A9
PC=0X0000803CR2=0X00000003
PC=0X00008038R0=0X00081BF1
PC=0X0000803CR2=0X00000002
2.5
1.实验目的:
学习ARM微控制器的16位thumb汇编指令的使用指令
2.实验内容:
使用thumb指令ADD.MOV.CMP.B实现1+2+3·
·
+N
3.实验步骤:
5)打开寄存器,窗口打开寄存器观察窗口
6)单步运行程序,注意执行BXR0指令前后CPSR寄存器的T位
PC=0x4000302ccpsr=Nzcv
PC=0x4000302ecpsr=Nzcv
PC=0x40003030cpsr=nzcv
PC=0x40003026cpsr=nzcv
PC=0x40003028cpsr=nzcv
2.6
通过实验了解如何使用ARM汇编指令实现结构化程序编程
使用ARM汇编指令实现if条件指令
使用ARM汇编指令实现for循环指令
使用ARM汇编指令实现while循环指令
使用ARM汇编指令实现do·
while循环指令
使用ARM汇编指令实现switch开关指令
6)单步运行程序,判断程序是否按设计的程序逻辑执行
For语句
ADDLDR0,R0,#1
ADDLDR2,R3,#1
BLDFOR_L1
While语句
WHILE_LCMPR0,R1
MOVLSR0,R0,LSL#1
BLSWHILE_L
do·
while语句
DOWHILE_LSUBSRO,RO,#1
BNEDOWHILE_L1
Switch
AND、CMP中R2改为R4
2.7
1)掌握如何使用MRS/MSR指令实现ARM微控制器工作模式的切换
2)了解在各个工作模式下的寄存器
1)使用MRS/MSR指令切换工作模式,并初始化各种模式下堆栈指针
2)观察ARM微控制器在各种模式下寄存器的区别
6)单步运行程序,观察CPSRSPSRR13R14R15
PC=0x40000000
PC=0x40000004
PC=0x40000008
PC=0x4000000C
PC=0x40000010
PC=0x40000014
PC=0x40000018
PC=0x4000001C
PC=0x40000020
PC=0x40000024
PC=0x40000028
PC=0x4000002C
PC=0x40000030
PC=0x40000034
PC=0x40000058R14=0x40000038
PC=0x4000005C
PC=0x40000060
PC=0x40000064R13=0x400030FC
PC=0x40000068R13=0x40000000R14=0x40000000cpsr=nzcvqIFt_IRQ
PC=0x4000006CR13=0x400031FC
PC=0x40000070R13=0x40000000cpsr=nzcvqIFt_FIQ
PC=0x40000074R13=0x4000323C
PC=0x40000078R13=0x40000000cpsr=nzcvqIFt_Abort
PC=0x4000007CR13=0x4000313C
PC=0x40000080R13=0x40000000cpsr=nzcvqIFt_Ubdef
PC=0x40000084R13=0x4000323C
PC=0x40000088R13=0x40000000cpsr=nzcvqIFt_Sys
PC=0x4000008CR13=0x400030FC
PC=0x40000038
PC=0x4000003C
PC=0x40000040
PC=0x40000044cpsr=nzcvqiFt_Sys
PC=0x40000048cpsr=nzcvqiFt_User
PC=0x4000004C
PC=0x40000050
PC=0x40000054
2.8
通过实验了解使用ADS1.2编写C语言程序,并进行调试
1)编写一个汇编程序和一个C语言程序文件
2)C语言实现1+2+3·
6)单步运行程序
Sum=0x00000000
Sum=0x00000001
Sum=0x00000006
Sum=0x0000000A
Sum=0x0000000F
Sum=0x00000015
Sum=0x0000001C
Sum=0x00000024
Sum=0x0000002D
Sum=0x00000037
Sum=0x00000042
Sum=0x0000004E
Sum=0x0000005B
Sum=0x00000069
Sum=0x00000078
Sum=0x00000088
Sum=0x00000099
Sum=0x000000AB
Sum=0x000000BE
Sum=0x000000D2
Sum=0x000000E7
Sum=0x000000FD
Sum=0x00000114
Sum=0x0000012C
Sum=0x00000145
Sum=0x0000015F
Sum=0x0000017A
Sum=0x00000196
Sum=0x000001B3
Sum=0x000001D1
Sum=0x000001F0
Sum=0x00000210
Sum=0x00000231
Sum=0x00000253
Sum=0x00000276
Sum=0x0000029A
Sum=0x000002BF
Sum=0x000002F5
Sum=0x0000030C
Sum=0x00000334
Sum=0x0000035D
Sum=0x00000387
Sum=0x000003B2
Sum=0x000003DE
Sum=0x0000040B
Sum=0x00000439
Sum=0x00000468
Sum=0x00000498
Sum=0x000004C9
Sum=0x000004FB
Sum=0x0000052E
Sum=0x00000562
Sum=0x00000597
Sum=0x000005CD
Sum=0x00000604
Sum=0x0000063C
Sum=0x00000675
Sum=0x000006AF
Sum=0x000006EA
Sum=0x00000726
Sum=0x00000763
Sum=0x000007A1
Sum=0x000007E0
Sum=0x00000820
Sum=0x00000861
Sum=0x000008A3
Sum=0x000008E6
Sum=0x0000092A
Sum=0x0000096F
Sum=0x000009B5
Sum=0x000009FC
Sum=0x00000A44
Sum=0x00000A8D
Sum=0x00000AD7
Sum=0x00000B22
Sum=0x00000B6E
Sum=0x00000C09
Sum=0x00000C58
Sum=0x00000CA8
Sum=0x00000CF9
Sum=0x00000D48
Sum=0x00000D9E
Sum=0x00000DF2
Sum=0x00000E47
Sum=0x00000E9D
Sum=0x00000EF4
Sum=0x00000F4C
Sum=0x00000FA5
Sum=0x00000FFF
Sum=0x0000105A
Sum=0x000010B6
Sum=0x00001113
Sum=0x00001171
Sum=0x000011D0
Sum=0x00001230
Sum=0x00001291
Sum=0x000012F3
Sum=0x00001356
Sum=0x000013BA
2.10
1.实验目的:
(1)掌握LPC2200专用工程模板
(2)掌握EasyJTAG仿真器的安装和使用
(3)能够在magicARM2200教学开发平台运行第一个程序
(4)熟悉LPC2000系列ARM7微控制器GPIO控制
2.实验内容
控制magicARM2200教学实验开发平台上蜂鸣器报警,先使用片外RAM(MT445W4MW16芯片)进行调试,调试通过后将程序固化到片外FLASH(SST39VF160芯片)然后脱机使用。
3.实验程序
#include"
config.h"
#defineBEEPCON0x00000080
voidDelayNS(uint32dly)
{uint32i;
for(;
dly>
0;
dly--)
{
for(i=0;
i<
5000;
i++);
}
}
intmain(void)
{
PINSEL0=0x00000000;
while
(1)
IO0SET=BEEPCON;
DelayNS(15);
IO0CLR=BEEPCON;
return(0);
4.分析思考
哪句使蜂鸣器鸣叫哪句使蜂鸣器停止鸣叫
答:
intmain(void)开始鸣叫DelayNS(15)暂停鸣叫
2.11
1.实验目的
熟悉LPC2000系列ARM微控制器GPIO控制
2.实验内容
使用GPIO控制8个LED流水灯显示
include"
#defineLED11<
<
16//P2.16
#defineLED21<
17//P2.17
#defineLED31<
18//P2.18
#defineLED41<
19//P2.19
#defineLED51<
20//P2.20
#defineLED61<
21//P2.21
#defineLED71<
22//P2.22
#defineLED81<
23//P2.23
#defineLEDCON0X00ff0000
constuint32DISP_TAB[8]={0Xff01ffff,0xff02ffff,0xff04ffff,0xff08ffff,
0xff10ffff,0xff20ffff,0xff40ffff,0xff80ffff};
voidDelayNS(uint32dly)
{uint8i;
IO2DIR=LEDCON;
8;
i++)
IO2CLR=DISP_TAB[i];
DelayNS(10);
IO2SET=0Xffffffff;
}
(1)二进制显示
{longinti;
256;
IO2CLR=i<
16;
(2)流水灯正反走
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 实验 报告