当前位置:文档之家› arm嵌入式实验报告完整版

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汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。

; 文件名: AREA XTF,CODE,READONLY声明32位ARM指令 R0arm嵌入式实验报告完整版)ADDR0,R1,R23.列写出使用LDR、STR指令的汇编程序,并在关键语句后面给出相应的注释。

AREA XTF,CODE,READONLY ;声明代码段XTFENTRY ;标示程序入口CODE32 ;声明32位ARM 指令START LDR R0,=1 ;加载数据LDR R1,=2LDR R3,=ADDR_1;载符号地址 ADD R2,R0,R1;R2[R3];数据空间定义 AREA Data_1,DATA,ALIGN=2ADDR_1 DCD 0 END ;结束 4.“使用多寄存器传送指令进行数据复制”汇编程序分析。

LDR R0,=SrcData ; 执行后,R0的值是 LDR R1,=DstData ; 执行后,R1的值是 LDMIA R0,{R2-R9} ; LDMIA中的指令后缀IA表示传送后地址加4,[R0]-->R2,[R0+4]-->R3,?,[R0+28]-->R9STMIA R1,{R2-R9} ;执行后,程序实现的功能是?,[R1+28] 5.在“使用查表法实现程序跳转”的汇编程序中,指令LDR PC,[PC,R2]采用的是什么寻址方式?作为基址的寄存器PC 的值是多少?作为指令指针的PC又指向哪条指令?这个指令与流水线执行的关系是什么?(选做)答: 1)基址加变址寻址;2)PC 6.通过运行及观察“使用BX指令切换处理器状态”汇编程序实验,回答ARM指令与Thumb指令之间是如何实现状态切换的?AXD Debugger调试环境中的哪个寄存器指示了ARM微处理器当前的指令状态?同时,在程序中添加从Thumb指令切换到ARM 指令的代码。

(选做)答:1)BX指令使用寄存器作为参数,当32位操作数寄存器的第0位的值为1时,执行BX指令后,ARM处理器从16位半字节对齐ARM指令状态切换到32位字对齐Thumb指令状态;当32位操作数寄存器的第0位为0时,ARM处理器从Thumb指令状态切换到32位ARM指令状态。

2)CPSR的value值为nzcvqIFt_SVC时为ARM32指令状态;为nzcvqIFT_SVC时为Thumb16指令状态3) AREAXTF,CODE,READONLY ;声明代码段XTFENTRY ;标识程序入口CODE32 ;声明32位ARM指令SART MOV R1,#1 ;设置参数MOV R2,#2ADD R0,R1,R2 ;R0Into_ThumbMOV R5,#3MOV R6,#4ADD R4,R5,R6LDR R3, =Bach_to_ARM ;将Back_to_ARM 地址值赋给R3 ;产生字对齐的跳转地址,最低位被清除,即bit0为0BX R3 ;Branch Exchange 返回到ARM状态,此时运行在ARM指令集环境里CODE32 ;ARM状态下的子函数Bach_to_ARMMOV R8,#3MOV R9,#4 ADD R7,R8,R9 END7.观察“微处理器工作模式切换”程序的运行,按顺序写出ARM工作模式切换过程中依次出现的工作模式,同时,通过观察回答ARM微处理器是否能从用户模式切换到特权模式?(选做)答:1)Usr(用户)?Sys(系统)?Fiq(快中断)?Svc(管理)?Abt(终止)?Irq(中断)?Und(未定义)2)用户模式不能直接切换到其他处理模式(特权模式),特权模式可以自由切换到其他处理器模式。

程序: AREA Work_mode_switch,CODE,READONLY ;ENTRY CODE32;入口;********************************************** **** ;now_in_svc_mode;ARM处理器默认工作在SVC模式M=10011;切换原理:CPSR最低8位I、F、T、M位用作控制位,当异常出现时改变控位。

; ;其中,中断标志位I、F;指令状态标志T;工作模式位M[4:0] 通过软件控制模式位M即可控制ARM工作状态。

;********************************************** ** ;into_Sys_mod;系统模式下可运行具有特权的操作系统任务,与用户模式类似,但可以直接切换到其他模式。

MRS R0,CPSR;复制CPSR到R0;into_Fiq_mode;用于高速数据传输或通道处理,Fiq异常响应时进入此模式MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x11 MSR CPSR_c,R0 MOV R13,#2;复制CPSR到R0 ;清楚R0的后5位;设定R0的最后5位为10001;把R0装在到CPSR,切换到快中断模式 ;对快中断模式下的R13赋值(R8-R14)BIC R0,R0,#0x1F ORR R0,R0,#0x1F MSR CPSR_c,R0 MOV R13,#1;清除R0的后5位;设定R0的最后5位为11111;把R0装在到CPSR,切换到系统模式 ;对系统模式下的R13赋值(R0-R14);into_Svc_mode;操作系统使用的保护模式,系统复位和软件中断响应时进入此模式 (R13-R14);into_Abt_mode;可用于虚拟存储及存储保护,当数据或指令预取终止时进入该模式MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x17 MSR CPSR_c,R0 MOV R13,#4;复制CPSR到R0 ;清楚R0的后5位;设定R0的最后5位为10111;把R0装在到CPSR,切换到数据访问终止模式 ;对快数据访问终止模式下的特有缓冲器R13赋MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x13 MSR CPSR_c,R0 MOV R13,#3;复制CPSR到R0 ;清楚R0的后5位;设定R0的最后5位为10011 ;把R0装在到CPSR,切换到管理模式 ;对快管理模式下的特有缓冲器R13赋值值(R13-R14);into_Irq_mode;用于通用的中断处理,Irq异常时进入此模式(R13-R14);into_Und_mod;可用于支持硬件协处理器的软件仿真,当未定义的指令执行时进入该模式 (R13-R14)MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x1b MSR CPSR_c,R0 MOV R13,#6;复制CPSR到R0 ;清楚R0的后5位;设定R0的最后5位为11011;把R0装在到CPSR,切换到未定义模式 ;对未定义模式下的特有缓冲器R13赋值MRS R0,CPSR BIC R0,R0,#0x1F ORR R0,R0,#0x12 MSR CPSR_c,R0 MOV R13,#5;复制CPSR到R0 ;清楚R0的后5位;设定R0的最后5位为10010;把R0装在到CPSR,切换到外部中断模式 ;对快外部中断模式下的特有缓冲器R13赋值篇二:XX完整ARM嵌入式系统实验报告郑州航空工业管理学院嵌入式系统实验报告(修订版)20第赵成,张克新编著院姓专学系:名:业:号:电子通信工程系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中包括两个软件组件。

相关主题