嵌入式系统——实验4

上传人:公**** 文档编号:507773963 上传时间:2022-08-05 格式:DOCX 页数:8 大小:297.32KB
返回 下载 相关 举报
嵌入式系统——实验4_第1页
第1页 / 共8页
嵌入式系统——实验4_第2页
第2页 / 共8页
嵌入式系统——实验4_第3页
第3页 / 共8页
嵌入式系统——实验4_第4页
第4页 / 共8页
嵌入式系统——实验4_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《嵌入式系统——实验4》由会员分享,可在线阅读,更多相关《嵌入式系统——实验4(8页珍藏版)》请在金锄头文库上搜索。

1、实验一 ARM Realview MDK软件和ARM汇编指令实验一、实验目的(1) 学会使用ARM Realview MDK软件工程配置及使用方法;(2) 掌握简单ARM汇编指令的使用方法。二、实验设备(1) 硬件:嵌入式实验平台一套、仿真器一个、PC机一台;(2) 软件:ARM Realview MDK集成开发环境,Windows 98/2000/NT/XP。三、实验内容(1) 熟悉开发环境的使用并使用Idr/str, mov等指令访问寄存器或存储单元;(2) 使用add/sub/lsl/lsr/and/orr等指令,完成基本算术/逻辑运算;(3) 使用ARM指令ADD,MOV,CMP,B编

2、制程序计算1 + 2 + 3 + -+N的值。四、实验原理ARM 处理器共有37个寄存器: 31个通用寄存器,包括程序计数器(PC)。这些寄存器都是32位的; 6个状态寄存器。这些寄存器也是32位的,但是只是使用了其中的12位。1. ARM通用寄存器通用寄存器(R0-R15)可分为三类:不分组寄存器R0R7; 分组寄存器 R8R14; 程序计数器 PC。(1) 不分组寄存器 R0R7不分组寄存器R0R7在所有处理器模式下,它们每一个都访问一样的32位寄存器。 它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。(2) 分组寄存器 R8R14分组寄存器R8R14对应的物理寄存器取决于当前的处理

3、器模式。若要访问特定的 物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。寄存器R8R12各有两组物理寄存器:一组为FIQ模式,另一组为除了FIQ以外 的所有模式。寄存器R8R12没有任何指定的特殊用途,只是在作快速中断处理时使用。 寄存器R13, R14各对应6个分组的物理寄存器,1个用于用户模式和系统模式,其它5 个分别用于5种异常模式。寄存器R13通常用做堆栈指针,称为SP;寄存器R14用作子 程序链接寄存器,也称为LR。(3) 程序计数器 PC寄存器R15用做程序计数器(PC)。在本实验中,ARM核工作在用户模式,R0R15 可用。2. ARM Realview MDK基础知识I

4、dVision4 IDE集成了 REALVIEW汇编器AARM、编译器CARM、链接器LARM,若采用 GNU编译器则需要下载安装相应的工具包。实验代码均按照REALVIEW的语法和规则来书 写。关于AARM、CARM和LARM的规范和具体使用,可参照pVision4 IDE所带的帮助文档。 这里简单介绍几个相关基本知识: ENTRY设置程序默认入口点,一个程序可有多个ENTRY,但一个源文件最多只有一个ENTRY。 EQUEQU伪操用于将数字常量、基于寄存器的值和程序中的标号定义为一个字符名称。语 法格式:symbol EQU expression其中,expression可以是一个寄存器的

5、名字,也可是由程序标号、常量或者32位的地 址常量组成的表达式。symboI是EQU伪操作所定义的字符名称。示例:COUNT EQU OX1FFF EXTERN/IMPORTIMPORT(EXTERN 功能完全相同)用于声明在其他模块中定义但需要在本文件中 使用的符号。EXTRN声明的变量必须是在其他模块中用EXPORT或GLOBAL声明过的。 语法格式:I MPORT cIass (symboI, symboI .)其中,class为变量的类型,可以为ARM、CODE16、CODE32、DATA、CONST、THUMB; symbo l为所声明的变量名。 EXPORT/GLOBALEXPOR

6、T(GLOBAL功能完全相同)用于声明在本文件中定义但能在其他模块中使用的 变量,相当于定义了一个全局变量。语法格式:EXPORT symbol, symbol.其中,symbol为所声明的变量名。 AREAAREA用于定义一个代码段或数据段,ARM汇编程序设计采用分段式设计,一个ARM源 程序至少有一个代码段,大的程序会有若干个代码段和数据段。语法格式:AREA segment-name, class-name, attributes ,.其中,segment-name为所定义段的名称;class-name为所定义段的类型名称,可以 为系统类型(CODE, CONST, DATA, ERAM

7、)或用户定义类型;attributes为段的属性。 ENDEND用于标记汇编文件的结束行,即标号后的代码不作处理。五、实验步骤1. 新建工程首先建立文件夹命名为Asm1_a,运行pVision4 IDE集成开发环境,选择菜单项 “Project - New.- Vision Project,系统弹出一个对话框,按照图1.1所示,输入 相关内容。点击保存”按钮,将创建一个新工程asm_1a.Uv2。f呆存在(X):;ml :我杲近的文档桌面我的文档我的电脑网上邻居文件名(N):保存类型(T):asni 1 a. Uv2图1.1新建工程2. 为工程选择CPU新建工程后,要为工程选择CPU,如图1.

8、2所示,在此选择SAMSUNG的S3C2410A:Options for Target asKDevice T:rget Ou切ut Li sting User | C/C+ AsmDatabase: |iVendor:Device:S sin EimgS3C2410Aoolset:s-E-s-E-s-E-s-eH or di c S em i c on due t orNXF (founded by Phili013Or eg:aiu:i Sys tEm sPhilipsR:ani t ronRIlC S em i c onduc t orARM920T based high-perform

9、an.ee 32_bit RISC Microcontroller extensions 16II Instruction. Cache, 1EKB Data Cache MMU, 4: HAITH Flash Boot Loader On-chip FLL with Clock :diui Fewer Ma: Tilterrupt ContirolleiTj EjctefdjiI Memory ContirollmiTj LCD Contir 4ch DMA, 3-ch UAJLT,. Multi Master IIC-BUS Controller, IIS-B1P SH Hgt Inter

10、face VI. 0 &_ Multi-Me di a Card Interface V2.ll: 2port USE Host USB Device 4_ch FWM Timers I-ch Timer Watchdog Timer, 8-ch 10_bit A /D Conver:itl己 Touch Screen : RTC with CalHrui:=Lr, General Ferpose I/O pins.S3C2410AS3C2440AS3C44B0XS3C4510BJU.| 确定 | 取消 | Defaults帮助图 1.2 选择 CPU3. 添加启动代码 在图1.3中点“确定”

11、后,会弹出一个对话框,问是否要添加启动代码。如图1.3所示。图 1.3 添加启动代码由于本实验是简单的汇编实验,因此不需要启动代码,选择否。选择是也能运行该程序4. 选择开发工具要为工程选择开发工具,在 Project - Man age - Comp onen ts,E nvir onment and Books - Folder/Exte nsio ns对话框的Folder/Exte nsio ns页内选择开发工具,如图1.4所示。图1.4 选择开发工具从图中可以看到,有三个开发工具可选,在此选择RealView Compiler。5. 建立源文件点击菜单项File - New,系统弹出一

12、个新的、没有标题的文本编辑窗,输入光标位于窗 口中第一行,编辑输入源文件代码,代码请参考实验程序A。编辑完后,保存文件asm1_a.s。6. 添加源文件单击工程管理窗口中的相应右键菜单命令,选择Add Files to会弹出文件选择对话框, 在工程目录下选择刚才建立的源文件asm1_a.s。如图1.5所示。图 1.5 添加源文件7. 工程配置选择菜单项Project-Option for Target.,将弹出工程设置对话框,如图1.6所示。在此 仅对Target选项页、Linker选项页及Debug选项页进行配置。Target选项页的配置如图1.6; Linker选项页的配置如图1.7; D

13、ebug选项页的配置如图1.8。需要注意,在Debug选项页内 需要一个初始化文件:DebugINRam.ini。此.INI文件用于设置生成的.AXF文件下载到目标中 的位置,以及调试前的寄存器、内存的初始化等配置操作。它是由调试函数及调试命令组成 调试命令脚本文件。图1.6基本配置Target图1.7基本配置一Linker图 1.8 基本配置 Debug8. 生成目标代码选择菜单项Project - Build target或快捷键F7,生成目标代码。在此过程中,若有错误, 则进行修改,直至无错误。若无错误,则可进行下一步的调试。9. 调试选择菜单项Debug - Start/Stop De

14、bug Session或快捷键Ctrl+F5,即可进入调试模式。若没有目标硬件,可以用“Visio4 IDE中的软件仿真器,做如下调试工作: 打开memory窗口,单步执行,观察地址0x30200000中内容的变化;单步执行,观察寄存器的变化;结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令的使用; 理解和掌握实验后,完成实验练习题。10. 实验B实验B用ARM语句编制程序计算1 + 2 + 3N的值,参考程序为实验B。实验B与上述步骤完全相同,只要把对应的asm1_a.s文件改成add.s以及工程名即可。参考程序如下所示。六、实验参考程序1. 实验A汇编程序;/* const

15、ant define */x EQU 45 ; x=45y EQU 64 ; y=64/stack_top EQU 0x30200000 ; define the top address for stacks*/;/* ;/* code */;/*AREA text,CODE,READONLYldr sp, =stack_topmov r0, #x ; put x value into R0str r0, sp ; save the value of R0 into stacksmov r0, #y ; put y value into R0ldr r1, sp ; read the data from stack,and put it into R1 add r0, r0, r1 ; R0=R0+R1str r0, spstopb stop ; end the code cycling end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号