实验 1 ARM工作模式实验
大学ARM嵌入式实验报告范文
大学ARM嵌入式实验报告范文《嵌入式系统》实验报告姓名:学号:班级:2022年4月实验一ARM汇编指令实验1一、实验目的1.初步学会使用ADS1.2开发环境及ARM软件模拟器;2.通过实验掌握简单ARM汇编指令的使用方法。
二.实验设备1.硬件:PC机;2.软件:ADS1.2集成开发环境。
Window98/2000/NT/某P。
三.实验内容1.熟悉开发环境的使用,并使用LDR/STR和MOV等指令访问寄存器或存储单元。
2.使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。
四.实验原理ARM处理器共有37个寄存器:31个通用寄存器,包括程序计数器(PC),这些寄存器都是32位;6个状态寄存器,这些寄存器也是32位,但只使用了其中的12位。
1.ARM通用寄存器通用寄存器(R0~R15)可分为3类,即不分组寄存器R0~R7.分组寄存器R8~R14.程序计数器R15。
2.存储器格式ARM体系结构将存储器看作是从零地址开始的字节的线性组合。
字节0~3存放第一个字,字节4~7存放第2个字,以此类推。
ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。
五.实验程序1.实验A参考程序某EQU45:定义变量某,并赋值为45YEQU64:定义变量y,并赋值为64STACK_TOPEQU0某1000:定义栈顶0某1000AREAE某ample,CODE,READONLY:声明代码段ENTRY:标识入口STARTMOVSP,#STACK_TOPMOVR0,#某:某的值放入R0STRR0,[SP]:R0的值保存到堆栈MOVR0,#Y:y的值放入R0LDRR1,[SP]:取堆栈中的数到R1ADDR0,R0,R1STRR0,[p]STOPBSTOP:死循环END:结束2.实验B参考程序某EQU45:定义变量某,并赋值为45YEQU64:定义变量y,并赋值为64ZEQU87:定义变量z,并赋值为87STACK_TOPEQU0某1000:定义堆栈顶0某1000AREAHU某IANG,CODE,READONLY:声明代码段,只读ENTRY:标识入口STARTMOVR0,#某:某的值放入R0MOVR0,R0,LSL#8:R0的值乘以2的8次方MOVR1,#Y:y的值放入R1ADDR2,R0,R1,LSR#1:R1的值除以2加上r0的值放入R2MOVSP,#0某1000STRR2,[SP]MOVR0,#Z:z的值放入R0ANDR0,R0,#0某FF:取R0的低八位MOVR1,#Y:y的值放入R1ADDR2,R0,R1,LSR#1:R1的值除以2加上r0的值放入R2LDRR0,[SP]:y的值放入R1MOVR1,#0某01ORRR0,R0,R1MOVR1,R2:y的值放入R1ADDR2,R0,R1,LSR#1:R1的值除以2加上r0的值放入R2STOPBSTOP:死循环END:结束六.实验结果及分析1.程序A的实验结果截图如下:实验分析;本实验使用LDR、STR、MOV等指令访问寄存器和存储单元,使用堆栈和寄存器R0,R1存储变量。
arm嵌入式实验报告完整版
arm嵌入式实验报告完整版篇一:ARM嵌入式系统实验报告1郑州航空工业管理学院嵌入式系统实验报告第赵成,张克新院姓专学系:名:业:号:电子通信工程系周振宇物联网工程 121309140电子通信工程系XX年3月制实验一 ARM体系结构与编程方法一、实验目的了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。
二、实验内容1.ADS1.2 IDE的安装、环境配置及工程项目的建立;2.ARM汇编语言程序设计(参考附录A):(1)两个寄存器值相加;(2)LDR、STR指令操作;(3)使用多寄存器传送指令进行数据复制;(4)使用查表法实现程序跳转;(5)使用BX指令切换处理器状态;(6)微处理器工作模式切换;三、预备知识了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。
四、实验设备 1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置操作系统:Microsoft Windows XP Professional Service Pack 2;集成开发环境:ARM Developer Suite (ADS)1.2。
五、实验分析1.安装的ADS1.2 IDE中包括两个软件组件。
在ADS1.2中建立 ARM Executable Image(ARM可执行映像)类型的工程,工程目标配置为 Debug;接着,还需要对工程进行目标设置、语言设置及链接器设置;最后,配置仿真环境为ARMUL仿真方式。
2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。
ARM嵌入式实验报告
实验一ARM 汇编指令使用实验——基本数学/ 逻辑运算一、实验目的1. 初步学会使用ARM ADS / Embest IDE for ARM 开发环境及ARM 软件模拟器。
2. 通过实验掌握数据传送和基本数学/ 逻辑运算的ARM 汇编指令的使用方法。
二、实验设备1. 硬件:PC机。
2. 软件:ADS 1.2 / Embest IDE 200X 集成开发环境。
三、实验内容1 .熟悉ADS 1.2 / Embest IDE 200X 开发环境的使用,使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算。
具体实验程序如下:/* armasm1a.s */• EQU X, 45 /*定义变量X,并赋值为45*/.EQU Y, 64 /*定义变量Y,并赋值为64*/.EQU STACK_TOP, 0X1000 /* 定义栈顶0X1000*/.GLOBAL _START.TEXT_START: /* 程序代码开始标志*/MOV SP, #STACK_TOPMOV R0, #X/*X 的值放入R0*/STR R0, [SP]/*R0 的值保存到堆栈*/MOV R0, #Y/*Y 的值放入R0*/LDR R1, [SP]/* 取堆栈中的数到R1*/STRR0, [SP] STOP: B STOP/* 程序结束,进入死循环 */.END等指令,完成基本数学 / 逻辑运算。
具体实验程序如下:/* armasm1b.s */ .EQU X, 45 /*定义变量X ,并赋值为45*/ .EQU Y, 64 /*定义变量Y ,并赋值为64*/ .EQU 乙87/*定义变量Z ,并赋值为87*/.GLOBAL _START .TEXT_START: /* 程序代码开始标志 */MOV R0, #X/*X 的值放入 R0*/MOV R0, R0, LSL #8 /*R0 的值乘以 2 的 8 次方 */ MOV R1, #Y/*Y 的值放入 R1*/ADD R2, R0, R1, LSR #1 /*R1 的值除以 2 再加上 R0 后的值放入 R2*/MOV SP, #0X1000 STR R2, [SP] MOV R0, #Z/*Z 的值放入 R0*/ AND R0, R0, #0XFF /* 取 R0 的低八位 */ MOV R1, #Y/*Y 的值放入 R1*/ADD R2, R0, R1, LSR #1 /*R1 的值除以 2 再加上 R0 后的值放入 R2*/ADDR0, R0, R1 2.使用 ADD/SUB/LSL/LSR/AND/ORR .EQU STACK_TOP, 0X1000 /* 定义栈顶 0X1000*/1.新建工程。
[理学]ARM工作原理实验指导书
嵌入式系统原理实验指导书目录实验一ARM集成开发工具——ADS练习 (5)1.1 实验目的 (5)1.2 实验设备 (5)1.3 实验内容 (5)1.4 实验预习要求 (5)1.5 实验步骤 (5)1.6 思考 (19)实验二汇编指令实验1 (20)2.1 实验目的 (20)2.2 实验设备 (20)2.3 实验内容 (20)2.4 实验预习要求 (20)2.5 实验步骤 (21)2.6 实验参考程序 (23)2.7 思考 (24)实验三汇编指令实验2 (25)3.1 实验目的 (25)3.2 实验设备 (25)3.3 实验内容 (25)3.4 实验预习要求 (25)3.5 实验步骤 (26)3.6 实验参考程序 (27)3.7 思考 (30)实验四GPIO控制实验 (32)4.1 实验目的 (41)4.2 实验设备 (41)4.3 实验内容 (41)4.4 实验原理 (41)4.5 实验硬件原理图 (43)4.6 实验预习 (44)4.7 实验过程 (44)4.8 实验参考程序 (44)4.9 思考 (45)实验五UART通信实验 (48)5.1 实验目的 (48)5.2 实验设备 (48)5.3 实验内容 (48)5.4 实验原理 (49)5.5 实验硬件原理图 (49)5.6 实验预习 (50)5.7 实验过程 (50)5.8 实验参考程序 (51)5.9 思考 (61)实验六中断实验 (62)6.1 实验目的 (62)6.2 实验设备 (62)6.3 实验内容 (62)6.4 实验原理 (63)6.5 实验硬件原理图 (63)6.6 实验预习 (63)6.7 实验过程 (63)6.8 实验参考程序 (63)6.9 思考 (66)总论本实验包含两部分,前面三个实验是ARM 7指令系统指令实验,使用ADS 的编译器和调试器进行仿真调试,主要目的是掌握ARM7的指令系统和开发工具的使用,理解ARM CPU的工作过程。
ARM实验报告ARM
XI`AN TECHNOLOGICAL UNIVERSITY 实验报告西安工业大学实验报告一丶实验目的初步学会使用Embest IDE for ARM开发环境及ARM软件模拟器。
通过实验掌握简单ARM汇编指令的使用方法。
二、实验内容熟悉开发环境的使用并使用ldr/str,mov等指令访问寄存器或存储单元。
使用add/sub/lsl/lsr/and/orr等指令,完成基本数学/逻辑运算。
三、实验原理ARM 处理器共有37 个寄存器:31 个通用寄存器,包括程序计数器(PC)。
这些寄存器都是32 位的。
6 个状态寄存器。
这些寄存器也是32 位的,但是只是使用了其中的12 位。
ARM 通用寄存器通用寄存器(R0~R15)可分为3 类:不分组寄存器R0~R7;分组寄存器R8~R14;程序计数器R15;1) 不分组寄存器R0~R7;R0~R7 是不分组寄存器。
这意味着在所有处理器模式下,它们每一个都访问一样的32 位寄存器。
它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。
2)分组寄存器R8~R14R8~R14 是分组寄存器。
它们每一个访问的物理寄存器取决于当前的处理器模式。
若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。
寄存器R8~R12 各有两组物理寄存器:一组为FIQ 模式,另一组为除了FIQ 以外的所有模式。
寄存器R8~R12 没有任何指定的特殊用途。
只是使用R8~R14 来简单地处理中断。
寄存器R13,R14 各有6 个分组的物理寄存器。
1 个用于用户模式和系统模式,其它5 个分别用于5 种异常模式。
寄存器R13 通常用做堆栈指针,称为SP。
每种异常模式都有自己的R13。
寄存器R14 用作子程序链接寄存器,也称为LR。
3) 程序计数器R15寄存器R15 用做程序计数器(PC)。
在本实验中,我们认为ARM 核工作在用户模式,R0~R15 可用。
四、实验过程1)打开Embest IDE Pro软件,选择菜单项File-->New Workspace,系统弹出对话框,点击OK创建名为TEXT的新工程,并同时创建一个与工程名相同的工作区。
ARM处理器工作模式实验.
其中的5种称为“异常模式”,即FIQ(Fast Interrupt Request)、IRQ(lnterrupt Request)、管理(Supervisor)、中止(Abort)和未定义(Undefined)。
当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。
Abort_Handler:
b Abort_Handler
nop /* Reserved vector */
IRQ_Handler:
b IRQ_Handler
FIQ_Handler:
b FIQ_Handler
SWI_Handler:
mov pc, lr
Reset_Handler:
mrs r0,cpsr /* read CPSR value */
ARM处理器工作模式实验
一、实验目的
通过实验掌握学会使用MSR/MRS指令实现ARM处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU结构的理解。
通过实验掌握ld中如何使用命令行指定代码段起始地址。
二、实验设备
硬件:PC机。
软件:Embest IDE Pr0 2004集成开发环境,Windows 98/2000/NT/XP。
2.程序状态寄存器
3.2节提到的程序状态寄存器CPSR和SPSR包含了条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。每种异常模式都有一个程序状态保存寄存器SPSR。当异常出现时,SPSR用于保留CPSR的状态。
3.本实验涉及到的Id命令行参数
-Ttext org
使用org作为输出文件的text
ARM处理器工作模式实验报告
肇庆学院电子信息与机电工程学院实验日期: 2015 年 11 月 30 日班级:12电气1班姓名:李俊杰学号: 19 老师评定:____ _ 实验二:ARM处理器工作模式实验一、实验目的通过实验掌握学会使用MSR/MRS指令实现ARM处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU结构的理解。
通过实验掌握ld中如何使用命令行指定代码段起始地址。
二、实验设备硬件:PC机。
软件:Embest IDE Pr0 2004集成开发环境,Windows 98/2000/NT/XP。
三、实验内容通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别。
掌握ARM不同模式的进入与退出。
四、实验原理1.ARM处理器模式ARM体系结构支持表3-2所列的7种处理器模式。
在软件控制下可以改变模式,外部中断或异常处理也可以引起模式发生改变。
大多数应用程序在用户模式下执行。
当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。
这允许适当编写操作系统来控制系统资源的使用。
图2-1除用户模式外的其他模式称为“特权模式”,它们可以自由地访问系统资源和改变模式。
其中的5种称为“异常模式”,即FIQ(Fast Interrupt Request)、IRQ(lnterrupt Request)、管理(Supervisor)、中止(Abort)和未定义(Undefined)。
当特定的异常出现时,进入相应的模式。
每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。
剩下的模式是“系统模式”。
仅ARM体系结构V4以及以上的版本有该模式。
不能由于任何异常而进入该模式。
它与用户模式有完全相同的寄存器,但它是特权模式,不受用户模式的限制。
它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。
避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。
arm实验说明
Example1 分频程序本例程属于独立实验,主要是让大家熟悉一下VHDL语言基本语法,这是比较简单的程序了。
实现一个将时钟信号clk十分频的功能,可以通过波形仿真来看效果。
波形仿真的过程可以参考视频“波形仿真.exe”文件,有比较详细的操作方法。
其实在例程的项目中已经包含了波形仿真文件,大家可以直接仿真,观察结果。
图1 波形仿真图Example2 moore状态机程序状态机一般分为三种类型:z Moore型状态机:次态=f(现状,输入),输出=f(现状);z Mealy型状态机:次态=f(现状,输入),输出=f(现状,输入);z混合型状态机。
Moore型与Mealy型两种状态机的不同点在于,Moore型状态机的输出信号是直接由状态寄存器译码得到,而Mealy型状态机则是以现时的输入信号结合即将变成次态的现态,编码成输出信号。
这个例子指moore型的状态机,在Example9中驱动AD0804的时候用的状态机也属于Moore型的。
这个例程有四个输入信号分别是时钟信号clk、准备好信号ready、读写控制信号read_write、复位控制信号reset。
输出有两个信号使能信号oe、控制信号we。
一共有四个状况,空闲idle等待ready信号准备好后进入判决状态decision否则继续等待ready信号;判决状态decision中将oe、we信号置低,同时根据read_write判定下一个状态是读状态read还是写状态write;如果read_write为‘1’读状态read,否则写状态write;读状态将oe置高,we置低;写状态将oe置低,we置高。
图2 状态机仿真图注:上面两个例程是独立实验,不能下载到板子上完成功能,只是用仿真波形来验证程序的正确型。
后面的例程基本都有分频部分,仿真起来比较困难,如果要仿真的话可以将程序中的分频程序去掉去实验。
Example3 加/减法计数器本例程实现的是一个加/减8进制计数器。
ARM实验指导书(wjq)
实验一、ARM开发环境的建立一、实验目的学会安装ADS集成环境及连接仿真硬件平台。
二、实验设备硬件:嵌入式实验平台一套、仿真器一个、PC机一台。
软件:Windows 98/2000/NT/XP操作系统、仿真器驱动程序、ADS开发软件一套。
三、实验内容正确安装完全版ARM ADS1.2集成环境,并了解JTAG硬件仿真环境的一些设置和工作方法。
四、实验原理ARM ADS (ARM DEVELOPER SUITE )是ARM平台集成开发环境,它包括两个部分:CodeWarrior for ARM Developer Suite 和AXD debugger 。
AXD调试通过Windows驱动程序及中间件软件与JTAG接口连接,并通过JTAG接口与硬件平台连接本实验使用ARMJtagDebugFinal中间件软件通过LPT1并行接口经JTAG协议转换连接ARM目标板。
五、实验操作步骤1、安装ADS1.2集成开发环境, 把ADS1.2_Licence.rar中的license.dat文件copy到“C:\Program Files\ARM\ADSv1_2\licenses”路径中,覆盖原来的license.dat,若安装目录设置为其他目录,必须copy到相应目录中。
2、启动CodeWarrior for ARM Developer Suite集成开发环境,设置许可证文件指向最新license.dat文件。
3、首次使用时,①把文件夹ARMJtagDebugFinal.rar中的文件copy到“C:\Program Files\ARM\ADSv1_2\ARMJtagDebugFinal”目录中或其他安装目录;②先安装ARMJtagDebugFinal驱动软件(以后不用再安装),即执行文件夹中的“安装驱动.exe”程序,并点击安装按钮,分别安装“并口驱动”和“OCX”;③在桌面建立Arm7Agent和Arm9Agent 两给快捷连接,分别指向ARMJtagDebugFinal目录中的Arm9.exe, Arm7.exe ;4 安装完毕驱动后,每次调试前,必须先启动运行Arm7Agent或Arm9Agent调试代理软件(中间件),调试过程始终不要关闭调试代理程序,启动并正确连接硬件目标系统之后,既可以开始调试ARM7系统或ARM9系统;5、如果在以后的使用过程中发现程序无法启动,重新执行“安装驱动.exe”即可;6、在ADW(SDT)/AXD(ADS)的调试配置选项里选择remote_a.dll7、在ADW/AXD的调试配置里IP地址必须填写:127.0.0.18、具体的调试使用可以参考"jtag.exe"的使用方法六、常见问题1、THUMB/ARM混合编程时断点设置要素当CPU处于一种CPU模式时(THUMB或ARM) 断点只可以设置在当前模式下的指令处不可以设置在另一种模式下的指令解决方案设置一个断点在CPU模式切换指令处(如BX) 当程序运行到此指令并停下来后然后通过单步执行(Step)进入另一种状态这时候就可以在当前模式下任意设置断点了;2、THUMB/ARM混合编程时因为ADW/AXD启动时默任的CPU模式为ARM模式如果你启动调试前你的ARM CPU 正在执行Thumb模式指令那么将会导致调试错误解决方案按一下你的板子的复位键,然后再启动ADW/AXD即可;3、为了加快软件影响单步执行速度现在暂时屏蔽了semihosting 功能如果你需要此功能可以EMAIL索取;4、如果出现无法逼使CPU进入调试的提示只需要复位你的板子,重新启动软件即可;5、如果发现软件没有任何动作把它关了再启动;6、如果发现软件根本无法运行看不到其运行界面那么执行“安装驱动.exe”,重新驱动OCX即可;7、如果出现打开并口失败,那么执行安装驱动.exe , 重新并口驱动即可;8、如果提示检测不到ARM核如果你的CPU没坏供电正常那么就一定是你的JTAG板子问题了,应该参考常用的那种"SDT"或"Wiggler"接线然后在JTAG调试软件选择对应的选项SDT或wiggler或自定义;9、排除这些如果出现其他的调试错误,那么就是你设置ADW/AXD或你的板子问题了10、一些常见问题请参考 上的BBS;11、有任何疑问请EMAIL sendtoyou@ Tang-ZhongGen,调程序实验二、ADS 1.2 集成开发环境练习ARM ADS(ARM Developer Suite V1.2 )是ARM公司,为开发ARM内核处理机而提供的集成开发环境(IDE)和集成调试环境(ICE)。
ARM处理器工作模式实验报告
肇庆学院电子信息与机电工程学院实验日期:2015 年11 月30 日班级:12电气1班姓名:李俊杰学号:19 老师评定:____ _ 实验二:ARM处理器工作模式实验一、实验目的通过实验掌握学会使用MSR/MRS指令实现ARM处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU结构的理解。
通过实验掌握ld中如何使用命令行指定代码段起始地址。
二、实验设备硬件:PC机。
软件:Embest IDE Pr0 2004集成开发环境,Windows 98/2000/NT/XP。
三、实验内容通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别。
掌握ARM不同模式的进入与退出。
四、实验原理1.ARM处理器模式ARM体系结构支持表3-2所列的7种处理器模式。
在软件控制下可以改变模式,外部中断或异常处理也可以引起模式发生改变。
大多数应用程序在用户模式下执行。
当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。
这允许适当编写操作系统来控制系统资源的使用。
图2-1除用户模式外的其他模式称为“特权模式”,它们可以自由地访问系统资源和改变模式。
其中的5种称为“异常模式”,即FIQ(Fast Interrupt Request)、IRQ(lnterrupt Request)、管理(Supervisor)、中止(Abort)和未定义(Undefined)。
当特定的异常出现时,进入相应的模式。
每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。
剩下的模式是“系统模式”。
仅ARM体系结构V4以及以上的版本有该模式。
不能由于任何异常而进入该模式。
它与用户模式有完全相同的寄存器,但它是特权模式,不受用户模式的限制。
它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。
避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。
ARM处理器工作模式实验报告
肇庆学院电子信息与机电工程学院实验日期:2015 年11 月30 日班级:12电气1班:李俊杰学号:19 老师评定:____ _实验二:ARM处理器工作模式实验一、实验目的通过实验掌握学会使用MSR/MRS指令实现ARM处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU结构的理解。
通过实验掌握ld中如何使用命令行指定代码段起始地址。
二、实验设备硬件:PC机。
软件:Embest IDE Pr0 2004集成开发环境,Windows 98/2000/NT/XP。
三、实验内容通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别。
掌握ARM不同模式的进入与退出。
四、实验原理1.ARM处理器模式ARM体系结构支持表3-2所列的7种处理器模式。
在软件控制下可以改变模式,外部中断或异常处理也可以引起模式发生改变。
大多数应用程序在用户模式下执行。
当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。
这允许适当编写操作系统来控制系统资源的使用。
图2-1 除用户模式外的其他模式称为“特权模式”,它们可以自由地访问系统资源和改变模式。
其中的5种称为“异常模式”,即FIQ(Fast Interrupt Request)、IRQ(lnterrupt Request)、管理(Supervisor)、中止(Abort)和未定义(Undefined)。
当特定的异常出现时,进入相应的模式。
每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。
剩下的模式是“系统模式”。
仅ARM体系结构V4以及以上的版本有该模式。
不能由于任何异常而进入该模式。
它与用户模式有完全相同的寄存器,但它是特权模式,不受用户模式的限制。
它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。
避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。
[理学]ARM工作原理实验指导书
嵌入式系统原理实验指导书目录实验一ARM集成开发工具——ADS练习 (5)1.1 实验目的 (5)1.2 实验设备 (5)1.3 实验内容 (5)1.4 实验预习要求 (5)1.5 实验步骤 (5)1.6 思考 (19)实验二汇编指令实验1 (20)2.1 实验目的 (20)2.2 实验设备 (20)2.3 实验内容 (20)2.4 实验预习要求 (20)2.5 实验步骤 (21)2.6 实验参考程序 (23)2.7 思考 (24)实验三汇编指令实验2 (25)3.1 实验目的 (25)3.2 实验设备 (25)3.3 实验内容 (25)3.4 实验预习要求 (25)3.5 实验步骤 (26)3.6 实验参考程序 (27)3.7 思考 (30)实验四GPIO控制实验 (32)4.1 实验目的 (41)4.2 实验设备 (41)4.3 实验内容 (41)4.4 实验原理 (41)4.5 实验硬件原理图 (43)4.6 实验预习 (44)4.7 实验过程 (44)4.8 实验参考程序 (44)4.9 思考 (45)实验五UART通信实验 (48)5.1 实验目的 (48)5.2 实验设备 (48)5.3 实验内容 (48)5.4 实验原理 (49)5.5 实验硬件原理图 (49)5.6 实验预习 (50)5.7 实验过程 (50)5.8 实验参考程序 (51)5.9 思考 (61)实验六中断实验 (62)6.1 实验目的 (62)6.2 实验设备 (62)6.3 实验内容 (62)6.4 实验原理 (63)6.5 实验硬件原理图 (63)6.6 实验预习 (63)6.7 实验过程 (63)6.8 实验参考程序 (63)6.9 思考 (66)总论本实验包含两部分,前面三个实验是ARM 7指令系统指令实验,使用ADS 的编译器和调试器进行仿真调试,主要目的是掌握ARM7的指令系统和开发工具的使用,理解ARM CPU的工作过程。
arm实验报告
实验一.GPIO输出实验一.实验目的(1)掌握QuickARM专用工程模板的使用。
(2)掌握EasyJTAG仿真器的安装和使用。
(3)能够在SmartSOPC教学实验开发平台上运行第一个程序(无操作系统)。
(4)熟悉LPC2000系列ARM7微控制器的GPIO控制。
二.实验原理1.硬件原理(1)连接EasyJTAG仿真器和QuickARM核心板。
将EasyJTAG仿真器的25针接口通过并口延长线与PC机的并口相连,将EasyJTAG仿真器的20针连接电缆接到QuickARM核心板的J3上,然后将核心板插到SmartSOPC实验箱上。
打开实验箱电源。
(2)EasyJTAG仿真器的安装和应用:参考第3.6节的内容。
(3)添加工程模板:参考第3.8.3节的内容。
(4)用工程模板建立第一个工程:使用ARM Executable Image for QuickARM工程模板建立工程。
建立源文件并加入到工程,然后编写程序代码:编译连接工程,若有错误,则修改程序,再次编译。
(5)仿真调试第一个工程:正确设置SmartSOPC教学实验开发平台上的跳线;启动AXD进行仿真调试。
2.软件控制#include "config.h"#define BEEPCON 0x00000080 // P0.7引脚控制蜂鸣器//名称:DelayNS//功能:延时函数void DelayNS(uint32 dly){ uint32 i;for(; dly>0; dly--){for(i=0; i<50; i++);}}//名称:main//功能:控制蜂鸣器叫//调试说明:将SmartSOPC教学实验开发平台上的A6区的JP7短接,把B2区的JP6的BEEP 短接起来。
int main(void){PINSEL0 = 0x00000000; // 设置管脚连接GPIOIO0DIR = BEEPCON; // 设置I/O为输出while(1){ IO0SET = BEEPCON; // BEEPCON = 1DelayNS(2);IO0CLR = BEEPCON; // BEEPCON = 0DelayNS(2);}}三.步骤结果(1)连接EasyJTAG仿真器和QuickARM核心板,将核心板插到SmartSOPC教学实验开发平台,然后安装EasyJTAG仿真器的驱动程序(若已经安装过,此步省略);(2)为ADS1.2增加QuickARM专用工程模板(若已增加过,此步省略);(3)启动ADS 1.2,使用ARM Executable Image for QuickARM工程模板建立一个工程BeepCon_C;(4)打开main.c文件编写实验程序;(5)选用DebugInExram生成目标,然后编译链接工程;(6)将SmartSOPC教学实验开发平台上的A6区的JP7短接,把B2区的JP6的BEEP短接起来。
ARM处理器工作模式实验报告材料
肇庆学院电子信息与机电工程学院实验日期:2015 年11 月30 日班级:12电气1班:俊杰学号:19 老师评定:____ _实验二:ARM处理器工作模式实验一、实验目的通过实验掌握学会使用MSR/MRS指令实现ARM处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU结构的理解。
通过实验掌握ld中如何使用命令行指定代码段起始地址。
二、实验设备硬件:PC机。
软件:Embest IDE Pr0 2004集成开发环境,Windows 98/2000/NT/XP。
三、实验容通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别。
掌握ARM不同模式的进入与退出。
四、实验原理1.ARM处理器模式ARM体系结构支持表3-2所列的7种处理器模式。
在软件控制下可以改变模式,外部中断或异常处理也可以引起模式发生改变。
大多数应用程序在用户模式下执行。
当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。
这允许适当编写操作系统来控制系统资源的使用。
图2-1除用户模式外的其他模式称为“特权模式”,它们可以自由地访问系统资源和改变模式。
其中的5种称为“异常模式”,即FIQ(Fast Interrupt Request)、IRQ(lnterrupt Request)、管理(Supervisor)、中止(Abort)和未定义(Undefined)。
当特定的异常出现时,进入相应的模式。
每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。
剩下的模式是“系统模式”。
仅ARM体系结构V4以及以上的版本有该模式。
不能由于任何异常而进入该模式。
它与用户模式有完全相同的寄存器,但它是特权模式,不受用户模式的限制。
它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。
避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。
实验1-ARM基础编程仿真(Keil)
/*ASM file*/
AREA asmfile, CODE, READONLY
EXPORT fun 导出函数名
fun
MOV R1,#1
STR R1,[R0]
MOV PC,LR
返回语句
END
19
有缘学习更多+谓ygd3076考证资料或关注桃报:奉献教育(店铺)
3、C调用汇编实现字符串拷贝功能(必做)
/*C file, called by asmfile */ int cFun(int a,int b) {
return a-b; }
22
4、汇编调用C实现实现求和1+2+...+N(必做)
实验步骤: 1、建立新工程,加入实验1.4文件夹中的sum.c和testfile.s( 同一个工程下添加两个文件一起编译)。 2、补充完成源代码中缺失的部分,通过调用c函数g()实现 1+2+3+glovb1,结果存在R8中。 3、运行Debug进行调试
YES YES
SUM_END
NO
R1自增1
R1=R1+1
17
3、C调用汇编实现字符串拷贝功能(必做)
C中调用汇编的函数原理: 在C中调用汇编文件中的函数,主要工作有两个: a. 在C中声明函数原型,并加extern关键字; b. 在汇编中用EXPORT导出函数名,并用该函数名作为汇 编代码段的标识。这样就可以在C中使用该函数了。 注:EXPORT伪指令用于在程序中声明一个全局的标号, 该标号可在其他的文件中引用。
18
3、C调用汇编实现字符串拷贝功能(必做)
C中调用汇编示例:
/*C file*/ extern void fun (int *p); 声明函数原型 int main()
ARM处理器工作模式实验
ARM处理器工作模式实验一、实验目的通过实验掌握学会使用MSR/MRS指令实现ARM处理器工作模式的切换,观察不同模式下的寄存器,加深对CPU结构的理解。
通过实验掌握ld中如何使用命令行指定代码段起始地址。
二、实验设备硬件:PC机。
软件:Embest IDE Pr0 2004集成开发环境,Windows 98/2000/NT/XP。
三、实验内容通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别。
掌握ARM不同模式的进入与退出。
四、实验原理1.ARM处理器模式ARM体系结构支持表3-2所列的7种处理器模式。
在软件控制下可以改变模式,外部中断或异常处理也可以引起模式发生改变。
大多数应用程序在用户模式下执行。
当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常发生。
这允许适当编写操作系统来控制系统资源的使用。
除用户模式外的其他模式称为“特权模式”,它们可以自由地访问系统资源和改变模式。
其中的5种称为“异常模式”,即FIQ(Fast Interrupt Request)、IRQ(lnterrupt Request)、管理(Supervisor)、中止(Abort)和未定义(Undefined)。
当特定的异常出现时,进入相应的模式。
每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可靠。
剩下的模式是“系统模式”。
仅ARM体系结构V4以及以上的版本有该模式。
不能由于任何异常而进入该模式。
它与用户模式有完全相同的寄存器,但它是特权模式,不受用户模式的限制。
它供需要访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。
避免使用附加寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。
2.程序状态寄存器3.2节提到的程序状态寄存器CPSR和SPSR包含了条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息。
每种异常模式都有一个程序状态保存寄存器SPSR。
ARM微控制器工作模式
那么究竟如何才能从非特权模式即用户模式切换到特 权模式(即其他六种模式)呢?
这就需要用到SWI软件中断异常。 从用户模式下切换到特权模式的唯一途径,就是使 用一个SWI指令调用。SWI指令强迫处理器用用户模 式切换到SVC管理模式,并且IRQ中断自动关闭。
思考 (1)在用户模式或系统模式下读取SPSR寄存器会有何 结果? (2)在非特权模式下能否对CPSR寄存 器设置?能否读 取CPSR寄存器的值? (提示:参考实验程序有相应的 代码,运行测试一下) (3)在非特权模式下如何使能/禁止IRQ或FIQ中断? (提示:可以先使用SWI指令切换到管理模式。) (4)程序中能否通过MSR指令直接修改CPSR中的T位来 实现ARM状态/ Thumb 状态的切换?
(1)在用户模式或系统模式中是没有SPSR寄存器的,所以要想 知道在用户模式或系统模式下标志位的值,只能通过CPSR。
如上图所示,切换到用户模式,在CPSR中的标志位变成了 用户模式,其值赋给R0寄存器中,所以通过观察R0知道用 户模式即0D0。 相同的方法可以知道系统模式为0DF
(2)在非特权模式下即用户模式下只允许对
备注 不能直接从用户模式切换到其他模 式 与用户模式类似,但具有直接切换到 其他模式等特权
系统(sys) 用于支持操作系统 的特权任务等
特 权 模 式
管理 供操作系统使用的 (svc) 一种保护模式
中止 用于虚拟内存和 (abt) (或)存储器保护
只有在系统复位和软件中断响应时, 才进入此模式
在ARM7内核中没有多大用处 只有在未定义指令异常响应时,才进 入此模式 只有在IRQ异常响应时,才进入此模式
CPSR寄存器显示方式如右图所示。显 示分为两部分,一部分是各个标志位, 另一部分是工作模式。 标志位NZCVQ为条件码标志N、Z、C、 V和Q,显示为大写字母,表示该位为 1;显示为小写字母,表示该位为0。 Q标志在ARM体系结构v5及以上版本 的E变量中才有效。 标志位IFT为IRQ中断禁止位I、FIQ中 断禁止位F和ARM微控制器状态位T,显 示为大写字母,表示该位为1;显示 为小写字母,表示该位为0。T标志在 ARM体系结构v4及以上版本的T变量 中才有效。
arm实验报告最终版
ARM与嵌入式技术实验报告专业班级:10通信工程1班姓名:万洁学号:100103011125实验日期:2013年5月28日指导老师:郑汉麟1、 通过实验掌握ARM 指令的特点和寻址方式;2、 掌握简单的ARM 汇编语言的程序设计;3、 了解集成开发环境 Embest IDE 及其开发软件的应用;、实验环境Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备 的面向嵌入式系统的开发和调试工具。
其开发软件 Embest IDE for ARM 是集编辑器、编译 器、调试器、工程管理器( projectma nager )于一体的高度集成的窗口环境,用户可以在Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应 用程序。
三、实验步骤1)新建工程:运行Embest IDE 集成开发环境,选择菜单项 File 宀New Workspace ,如图一,系统弹出一个对话框,键入文件名“ wj ”,如图二,点击 0K 按钮。
将创建一个新工程,并同时创 建一个与工程名相同的工作区。
此时在工作区窗口将打开该工作区和工程 .。
(老师提醒:不要放入Bin 文件夹中)■ Emb«t QE Pre 亠 Educat「販]£dii_VwwBuid frtbug D if** Qri+W 诊 Open-"Qrl*O2)建立源文件:点击菜单项 File T New ,如图三,系统弹出一个新的文本编辑窗,输入源文件代码。
编辑完后,保存文件“ wj.s ”后缀,如图三,四。
Hr*Open Workspace.・图一■■ rflJO IUU rl jil rd f rfl,rlClop: h Ho. .end图tut vUrl:3)添加源文件:选择菜单项Project T Add To Project Files,在工程目录下选择刚才建立的源文件.s 后缀文件,如图五,图六,图七。
实验八_ARM处理器工作模式与堆栈指针实验
实验八 ARM处理器工作模式与堆栈指针设置实验1 实验目的(1) 通过实验掌握学会使用MSR和MRS指令实现ARM工作模式的切换,观察不同模式下的寄存器,尤其是状态寄存器,加深对CPU的理解;(2) 掌握ARM堆栈指针SP的设置方法和意义,在设置好的堆栈中压入适当的数据,并使用寄存器窗口、存储器窗口观察。
2 实验内容(1) 主要内容①ARM9处理器支持7中工作运行模式(如表1)特权模式:又称非用户模式。
是指除用户模式以外的6种模式。
在这些模式下程序可以访问所有的系统资源,也可以任意地进行处理器模式切换。
用户模式下是不允许模式切换的。
异常模式:是指除用户模式和系统模式以外地5种模式,常用于处理中断。
异常模式有:●FIQ(Fast Interrupt ReQuest)●IRQ(Interrupt ReQuest)●管理svc(Supervisor)●中止abt(Abort)●未定义und(Undefined)在特定地异常出现时,进入相应的模式。
某种模式都有附加的寄存器,以避免出现异常时用户模式的状态不可靠。
在软件的控制下可以改变模式,外部中断和异常也可以引起模式发生改变。
大多数应用程序在用户模式下执行。
当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的处理器资源,也不能改变模式,除非异常(Exception)发生。
这允许适当编写操作系统来控制系统资源的使用。
ARM9体系结构的异常类型和异常处理模式(如表2)表2②状态寄存器CPSR/SPSR以及对其进行的访问●状态寄存器CPSR和SPSR:包含了条件码标志,中断禁止位,当前处理器模式以及其它状态和控制信息。
每种异常都有一个程序状态保存寄存器SPSR,当异常出现时SPSR用于保存CPSR的状态值。
CPSR和SPSR的格式如下:状态位:位31-28依次为N、Z、C、V分别表示符号位Negative、零位Zero、进位位Carry和溢出位Overflow。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验目的
掌握ARM工作模式切换的方法 通过观察指令的运行结果掌握汇编指令 MSR、MRS、BIC与ORR的功能 硬件:PC机 软件:Embest IDE 参见教材或课件
实验设备与工具
实验原理
实验 1 ARM工作模式实验
实验内容与步骤
1. 2. 3. 4. 5.
实验 1 ARM工作模式实告,将实验内容4、5、6 填写在 实验报告中
状态寄存器
6.
打开Embest IDE 在Embest IDE窗口打开项目004_ARMMode 按要求设置编译环境,然后编译、连接、下载 单步执行,根据运行结果,指出指令的功能 记录模式变换前后CPSR[7]、 CPSR[6] 、 CPSR[5]与 CPSR[4:0]的内容,并说明其表示的 意义 编写一段进入用户模式的代码,使处理器进入用户 模式,并在用户模式中进入特权模式,你发现了什 么?如何才能从用户模式进入特权模式?