郑州航空工业管理学院
嵌入式系统实验报告
(修订版)
20 – 20 第 学期
赵成,张克新
院 姓 专 学
系: 名: 业: 号:
电子通信工程系
2014年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中包括 Code Warrior IDE 和 AXD Debugger 两个软件组件。在ADS1.2中建立 ARM Executable Image 类型的工程,工程目标配置为 Debug ;接着,还需要对工程进行 目标设置 、 语言设置 及链接器设置;最后,配置仿真环境为 AXD Debugger 仿真方式。
2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。
; 文件名: ADDER COUNT EQU 10 AREA ADDER,CODE,READONLY ENTRY ;程序入口 CODE32 ;32 位代码 START LDR R0,=COUNT ; 将 COUNT 的值赋值给 R0 ADD R0,R0,#3 ;R0=R0+3 ; HALT ; 死循环 B HALT 3.列写出使用LDR、STR指令的汇编程序,并在关键语句后面给出相应的注释。 LDR R0,[R1]; R0?[R1] STR R0, [R1]; [R1]?R0 LDR R0,[R1,#4];R0?[R1+4]
LDR R0,[R1,#4]!;R0?[R1+4],R1?R1+4 LDR R0,[R1],#4:R0?[R1],R1?R1+4 LDR R0,[R1,R2];R0?[R1+R2] 4.“使用多寄存器传送指令进行数据复制”汇编程序分析。
LDR R0,=SrcData ; 执行后,R0的值是 SrcData
LDR R1,=DstData ; 执行后,R1的值是 DstData LDMIA R0,{R2-R9} ; LDMIA中的指令后缀IA表示 在每次
; 执行完加载/存储操作后,R0按字长增加
STMIA R1,{R2-R9} ; 执行后,程序实现的功能是 R2?[R0],
; R3?[R0+4],R4?[R0+8],R5?[R0+12] ; R6?[R0+16],R7?[R0+20],R8?[R0+ ; 24],R9?[R0+28] ; STMIA指令功能是将R1~R7的数据保存到R0存储器中,R0存储器指针在保存第一个值之后增加,增长方向为向上增长
5.在“使用查表法实现程序跳转”的汇编程序中,指令LDR PC,[PC,R2]采用的是什么寻址方式?作为基址的寄存器PC的值是多少?作为指令指针的PC又指向哪条指令?这个指令与流水线执行的关系是什么?(选做)
6.通过运行及观察“使用BX指令切换处理器状态”汇编程序实验,回答ARM指令与Thumb指令之间是如何实现状态切换的?AXD Debugger调试环境中的哪个寄存器指示了ARM微处理器当前的指令状态?同时,在程序中添加从Thumb指令切换到ARM指令的代码。(选做)
7.观察“微处理器工作模式切换”程序的运行,按顺序写出ARM工作模式切换过程中依次出现的工作模式,同时,通过观察回答ARM微处理器是否能从用户模式切换到特权模式?(选做)
六、遇到的问题及解决方法
实验二 VMWARE虚拟机与Linux环境的建立
一、实验目的
熟悉嵌入式系统开发环境的建立,掌握VMWARE-Linux环境的安装步骤;能够配置Samba服务、设置VMWARE虚拟机共享功能,学会Windows系统环境与Linux系统环境共享资源的基本方法。
二、实验内容
1.在Windows系统环境中安装VMWARE7.0虚拟机软件; 2.在VMWARE7.0虚拟机中安装Linux RHEL AS4操作系统; 3.设置VMWARE虚拟机提供的共享功能; 4.在Linux系统中建立Samba服务;
三、预备知识
了解VMWARE、VirtualBox、Virtual PC等虚拟机软件的相关知识;了解Linux操作系统的安装方法及基本操作方法。
四、实验设备
1. 硬件环境配置
计算机:Intel(R) Pentium(R) 及以上 内存:1GB及以上
实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器 2. 软件环境配置
操作系统:Microsoft Windows XP Professional Service Pack 2 虚拟机:VMware WorkStation 7
Linux系统:Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)
五、实验分析
1.查看实验设备中配备的PC机,将下列硬件型号填写正确:
? CPU型号: Intel(R) Pentium(R) ? 内存大小: 1GB ? 硬盘空间: 300G
根据实验的实际操作,将下列软件版本号填写正确:
? VMWARE: VMware WorkStation 7
? Linux系统: Red Hat Enterprise Linux AS 4 (2.6.9-5.EL)
? Windows系统: Microsoft Windows XP Professional Service Pack 2 2.在VMWARE软件中安装RHEL4虚拟机时,出现网络连接方式的设置界面,如下图,提供了四个选项:桥接(bridged networking)、NAT(Network Address Translation)、host-only及无需连接。应该选择哪种方式?并解释其他方式的特点。
图 设置网络连接方式
3.根据在Linux系统中的实际操作方法,按实验步骤简要说明Samba服务的设置与测试过程。
4.参考教材中的实践指导部分,在Linux系统环境中安装VMWARE Tools软件,观察安装过程中的交互提示。安装成功后,系统给出了什么提示信息?怎样从VMWARE的VM菜单中设置Windows-Linux共享功能?