首页 ARM实验报告

ARM实验报告

举报
开通vip

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的变化情况 ...

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 0000 R0=0x0000 000F R1=0X0000 0000 PC=0X4000 0004 R0=0x0000 000F R1=0X0000 0008 PC=0X4000 0008 R0=0x0000 0017 R1=0X0000 0008 PC=0X4000 000C R0=0x0000 0017 R1=0X0000 0008 PC=0X4000 0000 R0=0x0000 000F R1=0X0000 0008 PC=0X4000 0004 2.2 实验目的: 1)了解ADS1.2集成开发环境及ARMulator软件仿真 2)掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序 3)掌握指令的条件执行和使用LDR/STR指令完成存储器的访问 实验内容: 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 0000 4)编译工程,启动仿真 5)打开寄存器窗口,监视R1,R0,打开寄存器观察窗口,设置观察地址0x40003100,显示 32bit 2.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 0000 4)编译工程,启动仿真 5)单步运行程序,观察寄存器值的变换 4. 实验结果和分析 可单步或者设置断点记录各变化寄存器(包括PC,CPSR)的变化情况 1) PC=0X4000 0004 R0=0X0000 000B PC=0X0000 0008 R1=0X0000 0008 PC=0X4000 000C PC=0X4000 0010 PC=0X4000 0014 R0=0X5FFF FFF8 PC=0X4000 0018 R5=0X5FFF FF60 PC=0X4000 001C R0=0X0000 0008 PC=0X4000 0020 R0=0X0000 0028 PC=0X4000 0024 R0=0X0000 0014 PC=0X4000 0028 R1=0X0000 000B PC=0X4000 002C R1=0X0000 0016 PC=0X4000 0030 cpsr=Nzcr PC=0X4000 0034 PC=0X4000 0038 PC=0X4000 003C R5=0X5FFF FFFF PC=0X4000 0040 cpsr=nzcr PC=0X4000 0044 R5=0X5FFF FFBF 2) Pc=0x4000 0000 Pc=0x4000 0004 R0=0x000 00c8 Pc=0x4000 0008 R1=0x0000 00A3 Pc=0x4000 000c Pc=0x4000 0010 Pc=0x4000 0014 R0=0X5FFF FFF8 Pc=0x4000 0018 R5=OX5FFF F4A0 Pc=0x4000 001C R0=0X0000 00A3 Pc=0x4000 0020 R0=0X0000 032F Pc=0x4000 0024 R0=0X0000 0197 Pc=0x4000 0028 R1=0X0000 00C8 Pc=0x4000 002C R1=0X0000 0190 Pc=0x4000 0030 cpsr=ncvq Pc=0x4000 0034 Pc=0x4000 0038 R5=0X5FFF 0000 Pc=0x4000 003C Pc=0x4000 0040 cpsr=ncvq Pc=0x4000 0044 2.3 实验目的: 3)掌握ARM乘法指令的使用方法 4)了解A子程序编写及调用 实验内容: 使用STMFD/LDMFD MUL指令编写一个整数乘方的子程序,然后使用BL指令调用子程序计算X^n的值 实验步骤 1)启动ADS,建立新工程 2)建立新文件 3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址0x4000 0000 4)编译工程,启动仿真,设置观察地址为0x40003EA0,显示size32bit,监视从 0x40003EC0起始的满递减堆栈区。 5)单步运行程序,观察寄存器值的变换 6)调试程序,更改X,n来测试程序。 4. 实验结果和分析 可单步或者设置断点记录各变化寄存器(包括PC,CPSR)的变化情况 PC=0X0000 8014 R14=0X0000 8010 PC=0X0000 8018 PC=0X0000 802C PC=0X0000 8020 PC=0X0000 8024 PC=0X0000 8028 cpsr=nzcv PC=0X0000 802C PC=0X0000 8030 PC=0X0000 8034 R2=0X0000 0007 PC=0X0000 8038 R0=0X0000 0051 PC=0X0000 803C R2=0X0000 0006 PC=0X0000 8034 R0=0X0000 0209 PC=0X0000 803C R2=0X0000 0005 PC=0X0000 8034 PC=0X0000 8038 R0=0X0000 19A1 PC=0X0000 803C R2=0X0000 0004 PC=0X0000 8034 PC=0X0000 8038 R0=0X0000 56A9 PC=0X0000 803C R2=0X0000 0003 PC=0X0000 8034 PC=0X0000 8038 R0=0X0008 1BF1 PC=0X0000 803C R2=0X0000 0002 PC=0X0000 8034 2.5 1.实验目的: 学习ARM微控制器的16位thumb汇编指令的使用指令 2.实验内容: 使用thumb指令ADD.MOV.CMP.B实现1+2+3······+N 3.实验步骤: 1)启动ADS,建立新工程 2)建立新文件 3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址0x4000 0000 4)编译工程,启动仿真 5)打开寄存器,窗口打开寄存器观察窗口 6)单步运行程序,注意执行BX R0指令前后CPSR寄存器的T位 4. 实验结果和分析 PC=0x4000302c cpsr=Nzcv PC=0x4000302e cpsr =Nzcv PC=0x40003030 cpsr= nzcv PC=0x40003026 cpsr =nzcv PC=0x40003028 cpsr =nzcv 2.6 1.实验目的: 通过实验了解如何使用ARM汇编指令实现结构化程序编程 2.实验内容: 使用ARM汇编指令实现if条件指令 使用ARM汇编指令实现for循环指令 使用ARM汇编指令实现while循环指令 使用ARM汇编指令实现do···while 循环指令 使用ARM汇编指令实现switch开关指令 3.实验步骤: 1)启动ADS,建立新工程 2)建立新文件 3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址0x4000 0000 4)编译工程,启动仿真 5)打开寄存器,窗口打开寄存器观察窗口 6)单步运行程序,判断程序是否按 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 的程序逻辑执行 4. 实验结果和分析 For语句 ADDLD R0,R0,#1 ADDLD R2,R3,#1 BLD FOR_L1 While语句 WHILE_L CMP R0,R1 MOVLS R0,R0,LSL #1 BLS WHILE_L do···while语句 DOWHILE_L SUBS RO,RO,#1 BNE DOWHILE_L1 Switch AND、CMP中R2改为R4 2.7 1.实验目的: 1)掌握如何使用MRS/MSR指令实现ARM微控制器工作模式的切换 2)了解在各个工作模式下的寄存器 2.实验内容: 1)使用MRS/MSR指令切换工作模式,并初始化各种模式下堆栈指针 2)观察ARM微控制器在各种模式下寄存器的区别 3.实验步骤: 1)启动ADS,建立新工程 2)建立新文件 3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址0x4000 0000 4)编译工程,启动仿真 5)打开寄存器,窗口打开寄存器观察窗口 6)单步运行程序,观察CPSR SPSR R13 R14 R15 4. 实验结果和分析 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=0x40000058 R14=0x40000038 PC=0x4000005C PC=0x40000060 PC=0x40000064 R13=0x400030FC PC=0x40000068 R13=0x40000000 R14=0x40000000 cpsr=nzcvqIFt_IRQ PC=0x4000006C R13=0x400031FC PC=0x40000070 R13=0x40000000 cpsr=nzcvqIFt_FIQ PC=0x40000074 R13=0x4000323C PC=0x40000078 R13=0x40000000 cpsr=nzcvqIFt_Abort PC=0x4000007C R13=0x4000313C PC=0x40000080 R13=0x40000000 cpsr=nzcvqIFt_Ubdef PC=0x40000084 R13=0x4000323C PC=0x40000088 R13=0x40000000 cpsr=nzcvqIFt_Sys PC=0x4000008C R13=0x400030FC PC=0x40000038 PC=0x4000003C PC=0x40000040 PC=0x40000044 cpsr=nzcvqiFt_Sys PC=0x40000048 cpsr=nzcvqiFt_User PC=0x4000004C PC=0x40000050 PC=0x40000054 2.8 1.实验目的: 通过实验了解使用ADS 1.2编写C语言程序,并进行调试 2.实验内容: 1)编写一个汇编程序和一个C语言程序文件 2)C语言实现1+2+3······+N 3.实验步骤: 1)启动ADS,建立新工程 2)建立新文件 3)设置工程链接地址为RO BASE 0x4000 0000,RW BASE 0x4000 3000,设置调试入口地址0x4000 0000 4)编译工程,启动仿真 5)打开寄存器,窗口打开寄存器观察窗口 6)单步运行程序 4. 实验结果和分析 Sum=0x0000 0000 Sum=0x0000 0001 Sum=0x0000 0006 Sum=0x0000 000A Sum=0x0000 000F Sum=0x0000 0015 Sum=0x0000 001C Sum=0x0000 0024 Sum=0x0000 002D Sum=0x0000 0037 Sum=0x0000 0042 Sum=0x0000 004E Sum=0x0000 005B Sum=0x0000 0069 Sum=0x0000 0078 Sum=0x0000 0088 Sum=0x0000 0099 Sum=0x0000 00AB Sum=0x0000 00BE Sum=0x0000 00D2 Sum=0x0000 00E7 Sum=0x0000 00FD Sum=0x0000 0114 Sum=0x0000 012C Sum=0x0000 0145 Sum=0x0000 015F Sum=0x0000 017A Sum=0x0000 0196 Sum=0x0000 01B3 Sum=0x0000 01F0 Sum=0x0000 0210 Sum=0x0000 0231 Sum=0x0000 0253 Sum=0x0000 0276 Sum=0x0000 029A Sum=0x0000 02BF Sum=0x0000 02F5 Sum=0x0000 030C Sum=0x0000 0334 Sum=0x0000 035D Sum=0x0000 0387 Sum=0x0000 03B2 Sum=0x0000 03DE Sum=0x0000 040B Sum=0x0000 0439 Sum=0x0000 0468 Sum=0x0000 0498 Sum=0x0000 04C9 Sum=0x0000 04FB Sum=0x0000 052E Sum=0x0000 0562 Sum=0x0000 0597 Sum=0x0000 05CD Sum=0x0000 0604 Sum=0x0000 063C Sum=0x0000 0675 Sum=0x0000 06AF Sum=0x0000 06EA Sum=0x0000 0726 Sum=0x0000 0763 Sum=0x0000 07A1 Sum=0x0000 07E0 Sum=0x0000 0820 Sum=0x0000 0861 Sum=0x0000 08A3 Sum=0x0000 08E6 Sum=0x0000 092A Sum=0x0000 096F Sum=0x0000 09B5 Sum=0x0000 09FC Sum=0x0000 0A44 Sum=0x0000 0A8D Sum=0x0000 0B22 Sum=0x0000 0B6E Sum=0x0000 0C09 Sum=0x0000 0C58 Sum=0x0000 0CA8 Sum=0x0000 0CF9 Sum=0x0000 0D48 Sum=0x0000 0D9E Sum=0x0000 0DF2 Sum=0x0000 0E47 Sum=0x0000 0E9D Sum=0x0000 0EF4 Sum=0x0000 0F4C Sum=0x0000 0FA5 Sum=0x0000 0FFF Sum=0x0000 105A Sum=0x0000 10B6 Sum=0x0000 1113 Sum=0x0000 1171 Sum=0x0000 11D0 Sum=0x0000 1230 Sum=0x0000 1291 Sum=0x0000 12F3 Sum=0x0000 1356 Sum=0x0000 13BA 2.10 1.实验目的: (1)掌握LPC2200专用工程 模板 个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载 (2)掌握EasyJTAG仿真器的安装和使用 (3)能够在magicARM2200教学开发平台运行第一个程序 (4)熟悉LPC2000系列ARM7微控制器GPIO控制 2.实验内容 控制magicARM2200教学实验开发平台上蜂鸣器报警,先使用片外RAM(MT445W4MW16 芯片)进行调试,调试通过后将程序固化到片外FLASH(SST39VF160芯片)然后脱机使用。 3.实验程序 #include "config.h" #define BEEPCON 0x00000080 void DelayNS (uint32 dly) { uint32 i; for(;dly>0;dly--) { for(i=0;i<5000;i++); } } int main(void) { PINSEL0=0x00000000; while(1) { IO0SET=BEEPCON; DelayNS(15); IO0CLR=BEEPCON; DelayNS(15); } return(0); } 4.分析思考 哪句使蜂鸣器鸣叫哪句使蜂鸣器停止鸣叫 答:int main(void)开始鸣叫DelayNS(15)暂停鸣叫 2.11 1.实验目的 熟悉LPC2000系列ARM微控制器GPIO控制 2.实验内容 使用GPIO控制8个LED流水灯显示 3.实验程序 include "config.h" #define LED1 1<<16 //P2.16 #define LED2 1<<17 //P2.17 #define LED3 1<<18 //P2.18 #define LED4 1<<19 //P2.19 #define LED5 1<<20 //P2.20 #define LED6 1<<21 //P2.21 #define LED7 1<<22 //P2.22 #define LED8 1<<23 //P2.23 #define LEDCON 0X00ff0000 const uint32 DISP_TAB[8]={0Xff01ffff,0xff02ffff,0xff04ffff,0xff08ffff, 0xff10ffff,0xff20ffff,0xff40ffff,0xff80ffff}; void DelayNS(uint32 dly) { uint32 i; for(;dly>0;dly--) { for(i=0;i<5000;i++); } } int main(void) { uint8 i; IO2DIR=LEDCON; while(1) { for(i=0;i<8;i++) { IO2CLR=DISP_TAB[i]; DelayNS(10); IO2SET=0Xffffffff; } } return(0); } 4.分析思考 (1)二进制显示 #include "config.h" #define LED1 1<<16 //P2.16 #define LED2 1<<17 //P2.17 #define LED3 1<<18 //P2.18 #define LED4 1<<19 //P2.19 #define LED5 1<<20 //P2.20 #define LED6 1<<21 //P2.21 #define LED7 1<<22 //P2.22 #define LED8 1<<23 //P2.23 #define LEDCON 0X00ff0000 const uint32 DISP_TAB[8]={0Xff01ffff,0xff02ffff,0xff04ffff,0xff08ffff, 0xff10ffff,0xff20ffff,0xff40ffff,0xff80ffff}; void DelayNS(uint32 dly) { uint32 i; for(;dly>0;dly--) { for(i=0;i<5000;i++); } } int main(void) { long int i; IO2DIR=LEDCON; while(1) { for(i=0;i<256;i++) { IO2CLR=i<<16; DelayNS(10); IO2SET=0Xffffffff; } } return(0); } (2)流水灯正反走
本文档为【ARM实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_624976
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:25
分类:互联网
上传时间:2018-12-05
浏览量:22