ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:18.10KB ,
资源ID:7845298      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7845298.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ARM实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ARM实验报告.docx

1、ARM实验报告2.1实验目的:了解ADS 1.2集成开发环境的使用方法实验要求:1)建立一个新工程2)建立一个c源文件,并添加到工程中3)设置文本编辑器支持中文4)设置编译链接控制选项5)编译链接工程6)调试工程实验步骤:1)启动ADS,选择file new,建立一个新工程2)建立一个新文件3)在debugrel setting 调试入口地址4)编译整个工程5)调试软件实验结果与分析可记录R0,R1,PC,CPSR和Memory中0x40003100的变化情况R0=0x0000 000F R1=0X0000 0000 PC=0X4000 0000R0=0x0000 000F R1=0X0000

2、 0000 PC=0X4000 0004R0=0x0000 000F R1=0X0000 0008 PC=0X4000 0008R0=0x0000 0017 R1=0X0000 0008 PC=0X4000 000CR0=0x0000 0017 R1=0X0000 0008 PC=0X4000 0000R0=0x0000 000F R1=0X0000 0008 PC=0X4000 00042.2实验目的:1)了解ADS1.2集成开发环境及ARMulator软件仿真2)掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序3)掌握指令的条件执行和使用LDR/STR指令完成存储器的访问实验内容

3、:1)使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10则使用STR指令吧结果写回原地址,若结果大于10,则把0写回原地址。2)使用ADS 1.2软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口监视R0,R1的值,打开存储器观察窗口监视0x40003100的值。实验步骤:1)启动ADS,建立新工程2)建立新文件3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址 0x4000 00004)编译工程,启动仿真5)打开寄存器窗口,监视R1,R0,打开寄存器观察窗口,设置观察地址0x40003100,显示

4、32bit2.3实验目的:1)掌握ARM数据处理指令的使用方法2)了解ARM指令灵活的第二个操作数实验内容:1)使用MOV和MVN指令访问ARM通用寄存器2)使用ADD SUB AND ORR CMP TST 等指令完成数据加减运算及逻辑运算实验步骤1)启动ADS,建立新工程2)建立新文件3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址 0x4000 00004)编译工程,启动仿真5)单步运行程序,观察寄存器值的变换4. 实验结果和分析可单步或者设置断点记录各变化寄存器(包括PC,CPSR)的变化情况1)PC=0X4000

5、0004 R0=0X0000 000BPC=0X0000 0008 R1=0X0000 0008PC=0X4000 000C PC=0X4000 0010PC=0X4000 0014 R0=0X5FFF FFF8PC=0X4000 0018 R5=0X5FFF FF60PC=0X4000 001C R0=0X0000 0008PC=0X4000 0020 R0=0X0000 0028PC=0X4000 0024 R0=0X0000 0014PC=0X4000 0028 R1=0X0000 000BPC=0X4000 002C R1=0X0000 0016PC=0X4000 0030 cpsr=

6、NzcrPC=0X4000 0034PC=0X4000 0038PC=0X4000 003C R5=0X5FFF FFFFPC=0X4000 0040 cpsr=nzcrPC=0X4000 0044 R5=0X5FFF FFBF2)Pc=0x40000000Pc=0x40000004 R0=0x00000c8Pc=0x40000008 R1=0x000000A3Pc=0x4000000cPc=0x40000010Pc=0x40000014 R0=0X5FFFFFF8Pc=0x40000018 R5=OX5FFFF4A0Pc=0x4000001CR0=0X000000A3Pc=0x4000002

7、0 R0=0X0000032FPc=0x40000024 R0=0X00000197Pc=0x40000028 R1=0X000000C8Pc=0x4000002C R1=0X00000190Pc=0x40000030 cpsr=ncvqPc=0x40000034Pc=0x40000038 R5=0X5FFF0000Pc=0x4000003CPc=0x40000040 cpsr=ncvqPc=0x400000442.3实验目的:3)掌握ARM乘法指令的使用方法4)了解A子程序编写及调用实验内容: 使用STMFD/LDMFD MUL指令编写一个整数乘方的子程序,然后使用BL指令调用子程序计算Xn

8、的值实验步骤1)启动ADS,建立新工程2)建立新文件3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址 0x4000 00004)编译工程,启动仿真,设置观察地址为0x40003EA0,显示size32bit,监视从0x40003EC0起始的满递减堆栈区。5)单步运行程序,观察寄存器值的变换6)调试程序,更改X,n来测试程序。4. 实验结果和分析可单步或者设置断点记录各变化寄存器(包括PC,CPSR)的变化情况PC=0X0000 8014 R14=0X0000 8010PC=0X0000 8018 PC=0X0000 802C

9、 PC=0X0000 8020PC=0X0000 8024 PC=0X0000 8028 cpsr=nzcvPC=0X0000 802C PC=0X0000 8030 PC=0X0000 8034 R2=0X0000 0007PC=0X0000 8038 R0=0X0000 0051PC=0X0000 803C R2=0X0000 0006PC=0X0000 8034 R0=0X0000 0209PC=0X0000 803C R2=0X0000 0005PC=0X0000 8034PC=0X0000 8038 R0=0X0000 19A1PC=0X0000 803C R2=0X0000 000

10、4PC=0X0000 8034 PC=0X0000 8038 R0=0X0000 56A9PC=0X0000 803C R2=0X0000 0003PC=0X0000 8034 PC=0X0000 8038 R0=0X0008 1BF1PC=0X0000 803C R2=0X0000 0002PC=0X0000 8034 2.51实验目的: 学习ARM微控制器的16位thumb汇编指令的使用指令2实验内容: 使用thumb指令ADD.MOV.CMP.B实现1+2+3+N3实验步骤:1)启动ADS,建立新工程2)建立新文件3)设置工程链接地址为RO BASE 0x4000 0000,RW BAS

11、E 0x4000 3000,设置调试入口地址 0x4000 00004)编译工程,启动仿真5)打开寄存器,窗口打开寄存器观察窗口6)单步运行程序,注意执行BX R0指令前后CPSR寄存器的T位4. 实验结果和分析PC=0x4000302c cpsr=NzcvPC=0x4000302e cpsr =NzcvPC=0x40003030 cpsr= nzcvPC=0x40003026 cpsr =nzcvPC=0x40003028 cpsr =nzcv2.61实验目的: 通过实验了解如何使用ARM汇编指令实现结构化程序编程2实验内容: 使用ARM汇编指令实现if条件指令 使用ARM汇编指令实现for

12、循环指令 使用ARM汇编指令实现while循环指令 使用ARM汇编指令实现do while 循环指令 使用ARM汇编指令实现switch开关指令3实验步骤:1)启动ADS,建立新工程2)建立新文件3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址 0x4000 00004)编译工程,启动仿真5)打开寄存器,窗口打开寄存器观察窗口6)单步运行程序,判断程序是否按设计的程序逻辑执行4. 实验结果和分析For语句 ADDLD R0,R0,#1ADDLD R2,R3,#1BLD FOR_L1While语句WHILE_L CMP R0,

13、R1 MOVLS R0,R0,LSL #1 BLS WHILE_Ldowhile语句DOWHILE_L SUBS RO,RO,#1 BNE DOWHILE_L1SwitchAND、CMP中R2改为R42.71实验目的: 1)掌握如何使用MRS/MSR指令实现ARM微控制器工作模式的切换 2)了解在各个工作模式下的寄存器2实验内容: 1)使用MRS/MSR指令切换工作模式,并初始化各种模式下堆栈指针 2)观察ARM微控制器在各种模式下寄存器的区别3实验步骤:1)启动ADS,建立新工程2)建立新文件3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000

14、,设置调试入口地址 0x4000 00004)编译工程,启动仿真5)打开寄存器,窗口打开寄存器观察窗口6)单步运行程序,观察CPSR SPSR R13 R14 R154. 实验结果和分析PC=0x40000000PC=0x40000004PC=0x40000008PC=0x4000000CPC=0x40000010PC=0x40000014PC=0x40000018PC=0x4000001CPC=0x40000020PC=0x40000024PC=0x40000028PC=0x4000002CPC=0x40000030PC=0x40000034PC=0x40000058 R14=0x40000

15、038PC=0x4000005CPC=0x40000060PC=0x40000064 R13=0x400030FCPC=0x40000068 R13=0x40000000 R14=0x40000000 cpsr=nzcvqIFt_IRQPC=0x4000006C R13=0x400031FCPC=0x40000070 R13=0x40000000 cpsr=nzcvqIFt_FIQPC=0x40000074 R13=0x4000323CPC=0x40000078 R13=0x40000000 cpsr=nzcvqIFt_AbortPC=0x4000007C R13=0x4000313CPC=0

16、x40000080 R13=0x40000000 cpsr=nzcvqIFt_UbdefPC=0x40000084 R13=0x4000323CPC=0x40000088 R13=0x40000000 cpsr=nzcvqIFt_SysPC=0x4000008C R13=0x400030FCPC=0x40000038PC=0x4000003CPC=0x40000040PC=0x40000044 cpsr=nzcvqiFt_SysPC=0x40000048 cpsr=nzcvqiFt_UserPC=0x4000004CPC=0x40000050PC=0x400000542.81实验目的: 通过实

17、验了解使用ADS 1.2编写C语言程序,并进行调试2实验内容: 1)编写一个汇编程序和一个C语言程序文件 2)C语言实现1+2+3+N3实验步骤:1)启动ADS,建立新工程2)建立新文件3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址 0x4000 00004)编译工程,启动仿真5)打开寄存器,窗口打开寄存器观察窗口6)单步运行程序4. 实验结果和分析Sum=0x0000 0000Sum=0x0000 0001Sum=0x0000 0006Sum=0x0000 000ASum=0x0000 000FSum=0x0000 00

18、15Sum=0x0000 001CSum=0x0000 0024Sum=0x0000 002DSum=0x0000 0037Sum=0x0000 0042Sum=0x0000 004ESum=0x0000 005BSum=0x0000 0069Sum=0x0000 0078Sum=0x0000 0088Sum=0x0000 0099Sum=0x0000 00ABSum=0x0000 00BESum=0x0000 00D2Sum=0x0000 00E7Sum=0x0000 00FDSum=0x0000 0114Sum=0x0000 012CSum=0x0000 0145Sum=0x0000 01

19、5FSum=0x0000 017ASum=0x0000 0196Sum=0x0000 01B3Sum=0x0000 01D1Sum=0x0000 01F0Sum=0x0000 0210Sum=0x0000 0231Sum=0x0000 0253Sum=0x0000 0276Sum=0x0000 029ASum=0x0000 02BFSum=0x0000 02F5Sum=0x0000 030CSum=0x0000 0334Sum=0x0000 035DSum=0x0000 0387Sum=0x0000 03B2Sum=0x0000 03DESum=0x0000 040BSum=0x0000 04

20、39Sum=0x0000 0468Sum=0x0000 0498Sum=0x0000 04C9Sum=0x0000 04FBSum=0x0000 052ESum=0x0000 0562Sum=0x0000 0597Sum=0x0000 05CDSum=0x0000 0604Sum=0x0000 063CSum=0x0000 0675Sum=0x0000 06AFSum=0x0000 06EASum=0x0000 0726Sum=0x0000 0763Sum=0x0000 07A1Sum=0x0000 07E0Sum=0x0000 0820Sum=0x0000 0861Sum=0x0000 08

21、A3Sum=0x0000 08E6Sum=0x0000 092ASum=0x0000 096FSum=0x0000 09B5Sum=0x0000 09FCSum=0x0000 0A44Sum=0x0000 0A8DSum=0x0000 0AD7Sum=0x0000 0B22Sum=0x0000 0B6ESum=0x0000 0C09Sum=0x0000 0C58Sum=0x0000 0CA8Sum=0x0000 0CF9Sum=0x0000 0D48Sum=0x0000 0D9ESum=0x0000 0DF2Sum=0x0000 0E47Sum=0x0000 0E9DSum=0x0000 0E

22、F4Sum=0x0000 0F4CSum=0x0000 0FA5Sum=0x0000 0FFFSum=0x0000 105ASum=0x0000 10B6Sum=0x0000 1113Sum=0x0000 1171Sum=0x0000 11D0Sum=0x0000 1230Sum=0x0000 1291Sum=0x0000 12F3Sum=0x0000 1356Sum=0x0000 13BA2.101.实验目的: (1)掌握LPC2200专用工程模板 (2)掌握EasyJTAG仿真器的安装和使用 (3)能够在magicARM2200教学开发平台运行第一个程序 (4)熟悉LPC2000系列ARM

23、7微控制器GPIO控制 2.实验内容 控制magicARM2200教学实验开发平台上蜂鸣器报警,先使用片外RAM(MT445W4MW16芯片)进行调试,调试通过后将程序固化到片外FLASH(SST39VF160芯片)然后脱机使用。3.实验程序#include config.h#define BEEPCON 0x00000080void DelayNS (uint32 dly) uint32 i; for(;dly0;dly-) for(i=0;i5000;i+); int main(void) PINSEL0=0x00000000; while(1) IO0SET=BEEPCON; Delay

24、NS(15); IO0CLR=BEEPCON; DelayNS(15); return(0);4.分析思考 哪句使蜂鸣器鸣叫 哪句使蜂鸣器停止鸣叫答: int main(void)开始鸣叫 DelayNS(15)暂停鸣叫2.111.实验目的 熟悉LPC2000系列ARM微控制器GPIO控制2.实验内容 使用GPIO控制8个LED流水灯显示3.实验程序 include config.h#define LED1 116 /P2.16#define LED2 117 /P2.17#define LED3 118 /P2.18#define LED4 119 /P2.19#define LED5 12

25、0 /P2.20#define LED6 121 /P2.21#define LED7 122 /P2.22#define LED8 10;dly-) for(i=0;i5000;i+); int main(void) uint8 i; IO2DIR=LEDCON; while(1) for(i=0;i8;i+) IO2CLR=DISP_TABi; DelayNS(10); IO2SET=0Xffffffff; return(0); 4.分析思考(1)二进制显示#include config.h#define LED1 116 /P2.16#define LED2 117 /P2.17#define LED3 118 /P2.18#define LED4 119 /P2.19#define LED5 120 /P2.20#define LED6 121 /P2.21#define LED7 122 /P2.22#define LED8 10;dly-) for(i=0;i5000;i+); int main(void) long int i; IO2DIR=LEDCON; while(1) for(i=0;i256;i+) IO2CLR=i16; DelayNS(10); IO2SET=0Xffffffff; return(0); (2)流水灯正反走

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1