计算机软件及应用嵌入式实验指导书

上传人:无*** 文档编号:62318727 上传时间:2022-03-14 格式:DOC 页数:52 大小:1.65MB
收藏 版权申诉 举报 下载
计算机软件及应用嵌入式实验指导书_第1页
第1页 / 共52页
计算机软件及应用嵌入式实验指导书_第2页
第2页 / 共52页
计算机软件及应用嵌入式实验指导书_第3页
第3页 / 共52页
资源描述:

《计算机软件及应用嵌入式实验指导书》由会员分享,可在线阅读,更多相关《计算机软件及应用嵌入式实验指导书(52页珍藏版)》请在装配图网上搜索。

1、评分: ARM嵌入式体系结构与接口技术实 验 报 告 班 级: 电 气07 - 1 班 学 号: 姓 名: 指导教师: 廖京盛 实验日期:2010年10月 日 月 日ARM 汇编指令实验实验目的初步学会使用 Vision IDE for ARM 开发环境及 ARM 软件模拟器;通过实验掌握简单 ARM 汇编指令的使用方法。实验设备硬件:PC 机一台;软件:Vision IDE for ARM 集成开发环境,Windows 98/2000/NT/XP。实验内容熟悉开发环境的使用并使用 ldr/str,mov 等指令访问寄存器或存储单元;使用 add/sub/lsl/lsr/and/orr 等指令

2、,完成基本算术/逻辑运算。实验原理ARM 处理器共有 37 个寄存器:l31 个通用寄存器,包括程序计数器(PC)。这些寄存器都是 32 位的;l6 个状态寄存器。这些寄存器也是 32 位的,但是只是使用了其中的 12 位。 这里简要介绍通用寄存器,关于状态寄存器的介绍,请参照下一节。1. ARM 通用寄存器通用寄存器(R0-R15)可分为三类:l不分组寄存器 R0R7;l分组寄存器 R8R14;l程序计数器 PC。(1)不分组寄存器 R0R7不分组寄存器 R0R7 在所有处理器模式下,它们每一个都访问一样的 32 位寄存器。它们是真 正的通用寄存器,没有体系结构所隐含的特殊用途。(2)分组寄

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

4、数器(PC)。在本实验中,ARM 核工作在用户模式,R0R15 可用。2. 存储器格式ARM 体系结构将存储器看作是从零地址开始的字节的线性组合。字节零到字节三放置第一个字(WORD),字节四到字节七存储第二个字,以此类推。ARM 体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。l大端格式 在这种格式中,字数据的高位字节存储在低地址中,而字数据的低位字节则存放在高地址中,如图 4-1-1 所示。图 4-1-1大端格式l小端格式 在这种格式中,字数据的高位字节存储在高地址中,而字数据的低位字节则存放在低地址中,如图 4-1-2 所示。图 4-1-2小端格式3. REALVIEW 基

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

6、ression其中,expression 可以是一个寄存器的名字,也可是由程序标号、常量或者 32 位的地址常量 组成的表达式。symbol 是 EQU 伪操作所定义的字符名称。示例:COUNT EQU 0X1FFFlEXTERN/IMPORTIMPORT(EXTERN 功能完全相同)用于声明在其他模块中定义但需要在本文件中使用的符号。EXTRN 声明的变量必须是在其他模块中用 EXPORT 或 GLOBAL 声明过的。语法格式:52lIMPORT class (symbol, symbol .)其中,class 为变量的类型,可以为 ARM、CODE16、CODE32、DATA、CONST、

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

8、name 为所定义段的类型名称,可以为系统类 型(CODE, CONST, DATA, ERAM)或用户定义类型;attributes 为段的属性。lENDEND 用于标记汇编文件的结束行,即标号后的代码不作处理。实验步骤1. 新建工程首先在KeilARMExamplesMini2410-IV4.1_asm1 目录下建立文件夹命名为 Asm1_a,运行Vision3 IDE 集成开发环境,选择菜单项“Project - New- Vision Project”,系统弹出一个对 话框,按照图 4-1-3 所示,输入相关内容。点击“保存”按钮,将创建一个新工程 asm_1a.Uv2。图 4-1-3

9、 新建工程2. 为工程选择 CPU新建工程后,要为工程选择 CPU,如图 4-1-4 所示,在此选择 SAMSUNG 的 S3C2410A:图 4-1-4 选择 CPU3. 添加启动代码 在图 4-1-5 中点“确定”后,会弹出一个对话框,问是否要添加启动代码。如图 4-1-5 所示。由于本实验是简单的汇编实验,因此不需要启动代码,选择否。图 4-1-5 添加启动代码4. 选择开发工具要为工程选择开发工具,在 Project - Manage - Components,Environment and Books - Folder/Extensions 对话框的 Folder/Extension

10、s 页内选择开发工具,如图 4-1-6 所示。图 4-1-6 选择开发工具从图中可以看到,有三个开发工具可选,在此选择 RealView Compiler。5. 建立源文件点击菜单项 File - New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位于窗口中第一 行,按照实验参考程序编辑输入源文件代码。编辑完后,保存文件 asm1_a.s。(源代码可以参考DISK3_S3C241003-Codes01-MDKMini2410-IV4.1_asm1 中的 asm1_a.s 文件)6. 添加源文 单击工程管理窗口中的相应右键菜单命令,选择 Add Files to,会弹出文件选择对话框,在工

11、程目录下选择刚才建立的源文件 asm1_a.s。如图 4-1-7 所示。图 4-1-7 添加源文件7. 工程配置把 光 盘 DISK3_S3C241003-Codes01-MDKMini2410-IV4.1_asm1Asm1_a目 录 中 的 DebugINRam.ini 文件拷贝到KeilARMExamplesMini2410-IV4.1_asm1Asm1_a 目录下。选择菜 单项 Project-Option for Target,将弹出工程设置对话框,如图 4-1-8 所示。对话框会因所选开发 工具的不同而不同,在此仅对 Target 选项页、Linker 选项页及 Debug 选项页进

12、行配置。Target 选项 页的配置如图 4-1-8;Linker 选项页的配置如图 4-1-9;Debug 选项页的配置如图 4-1-10。需要注意, 在 Debug 选项页内需要一个初始化文件:DebugINRam.ini。此.INI 文件用于设置生成的.AXF 文件 下载到目标中的位置,以及调试前的寄存器、内存的初始化等配置操作。它是由调试函数及调试命 令组成调试命令脚本文件。图 4-1-8 基本配置Target图 4-1-9 基本配置Linker图 4-1-10 基本配置Debug8. 生成目标代码选择菜单项 Project - Build target 或快捷键 F7,生成目标代码。

13、在此过程中,若有错误,则进 行修改,直至无错误。若无错误,则可进行下一步的调试。9. 调试选择菜单项 Debug - Start/Stop Debug Session 或快捷键 Ctrl+F5,即可进入调试模式。若没 有目标硬件,可以用 Vision 3 IDE 中的软件仿真器,做如下调试工作:l打开 memory 窗口,单步执行,观察地址 0x30200000 中内容的变化;l单步执行,观察寄存器的变化;l结合实验内容和相关资料,观察程序运行,通过实验加深理解 ARM 指令的使用;l理解和掌握实验后,完成实验练习题。实验 B 与上述步骤完全相同,只要把对应的 asm1_a.s 文件改成 as

14、m1_b.s 以及工程名即可。实验参考程序1. 实验 A汇编程序:;*; NAME:asm1_a.s; Author:TYW /WUHAN R&D Center,Embest; Desc:ARM instruction examples; History:2007.5.1;*;/*- */;/*constant define*/;/*- -*/xEQU 45; x=45yEQU 64; y=64/stack_topEQU 0x30200000; define the top address for stacksexport Reset_Handler;/*- -*/;/*code*/;/*-*

15、/ AREA text,CODE,READONLYexportReset_Handler; code start */ldrsp, =stack_topmovr0, #x; put x value into R0strr0, sp; save the value of R0 into stacks movr0, #y; put y value into R0ldrr1, sp; read the data from stack,and put it into R1 addr0, r0, r1; R0=R0+R1strr0, spstopbstop; end the code cycling e

16、nd注意:语句 export Reset_Handler 前面必须有空格,具体原因请参考 ARM 指令格式文档。调试命令脚本文件:/* */*Name: DebugINRam.ini*/FUNC void Setup (void)/ Program Entry Point, .AXF File download AddressPC = 0x30000000;map 0x00000000,0x00200000 read write exec/ Map this memory to be read、write and execmap 0x30000000,0x34000000 read write

17、 exec/ Map this memeory to be read,write and execSetup();/ Setup for Running/g, main2. 实验 B汇编程序;#*;# NAME:asm1_b.s;# Author:WUHAN R&D Center, Embest;# Desc:ARM instruction examples;# History:TianYunFang 2007.05.12;#*;/*- */;/*constant define*/;/*- */xEQU 45;/* x=45 */ yEQU 64;/* y=64 */ zEQU 87;/* z

18、=87 */stack_topEQU 0x30200000;/* define the top address for stacks*/exportReset_Handler;/*- */;/*code*/;/*- */ AREA text,CODE,READONLYReset_Handler ;/* code start */ movr0, #x ;/* put x value into R0*/ movr0, r0, lsl #8 ;/* R0 = R0 1) + R0*/ ldrsp, =stack_topstrr2, spmovr0, #z;/* put z value into R0

19、 */ andr0, r0, #0xFF;/* get low 8 bit from R0 */ movr1, #y;/* put y value into R1 */addr2, r0, r1, lsr #1;/* R2 = (R11) + R0*/ldrr0, sp;/* put y value into R1 */movr1, #0x01 orrr0, r0, r1movr1, R2;/* put y value into R1 */addr2, r0, r1, lsr #1;/* R2 = (R11) + R0 */stopbstop;/* end the code cycling*/

20、 END调试命令脚本文件与实验 A 相同。练习题1编写程序循环对 R4R11 进行累加 8 次赋值,R4R11 起始值为 18,每次加操作后把R4R11 的内容放入 SP 栈中,SP 初始设置为 0x800。最后把 R4R11 用 LDMFD 指令清空赋值为0。2更改实验 A 中 X、Y 的值,观察执行结果。ARM 处理器工作模式实验实验目的通过实验掌握学会使用 msr/mrs 指令实现 ARM 处理器工作模式的切换,观察不同模式下的 寄存器,加深对 CPU 结构的理解;通过实验进一步熟悉 ARM 汇编指令。实验设备硬件:Embest ARM 教学实验教学系统,PC 机;软件:MDK 集成开发

21、环境,Windows 98/2000/NT/XP。实验内容通过 ARM 汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别;掌握 ARM 不同模式的进入与退出。实验原理1. ARM 处理器模式ARM 体系结构支持下表 4-4-1 所列的 7 种处理器模式。表 4-4-1 处理器模式处理器模式说明用户 usr正常程序执行模式FIQfiq支持高速数据传送或通IRQirq用于通用中断处理管理svc操作系统保护模式中止abt实现虚拟存储器和/或存储器未定义 und支持硬件协处理器的软件仿真系统sys运行特权操作系统任务在软件控制下可以改变模式,外部中断或异常处理也可以引起模式发生改变。 大多

22、数应用程序在用户模式下执行。当处理器工作在用户模式时,正在执行的程序不能访问某些被保护的系统资源,也不能改变模式,除非异常(exception)发生。这允许通过合适地编写操作系 统来控制系统资源的使用。除用户模式外的其他模式称为特权模式。它们可以自由的访问系统资源和改变模式。其中的 5种称为异常模式,即:nFIQ(Fast Interrupt request);nIRQ(Interrupt ReQuest);n管理(Supervisor);n中止(Abort);n未定义(Undefined)。 当特定的异常出现时,进入相应的模式。每种模式都有某些附加的寄存器,以避免异常出现时用户模式的状态不可

23、靠。剩下的模式是系统模式。仅 ARM 体系结构 V4 及其以上的版本有该模式。不能由任何异常进入该模式。它与用户模式有完全相同的寄存器,然而它是特权模式,不受用户模式的限制。它供需要 访问系统资源的操作系统任务使用,但希望避免使用与异常模式有关的附加寄存器。避免使用附加 寄存器保证了当任何异常出现时,都不会使任务的状态不可靠。2. 程序状态寄存器前一节提到的程序状态寄存器 CPSR 和 SPSR 包含了条件码标志,中断禁止位,当前处理器模式 以及其他状态和控制信息。每种异常模式都有一个程序状态保存寄存器 SPSR。当异常出现时,SPSR 用于保留 CPSR 的状态。CPSR 和 SPSR 的格

24、式如表格 4-4-2 所示:表 4-4-2 CPSR 和 SPSR 的格式313029282726876543210NZCVQDNM ( RAZ )IFTMMMMM条件码标志:N,Z,C,V 大多数指令可以检测这些条件码标志以决定程序指令如何执行2)控制位:最低 8 位 I,F,T 和 M 位用作控制位。当异常出现时改变控制位。当处理器在特权模式下也可 以由软件改变。n中断禁止位:I 置 1 则禁止 IRQ 中断;F 置 1 则禁止 FIQ 中断。nT 位:T=0 指示 ARM 执行;T=1 指示 Thumb 执行。在这些体系结构的系统中,可自由的使 用能在 ARM 和 Thumb 状态之间切

25、换的指令。n模式位:M0,M1,M2,M3 和 M4(M4:0)是模式位.这些位决定处理器的工作模式.如表 4-4-3 所示。表 4-4-3 ARM 工作模式 M4:0M4:0模式可访问的寄存器0b10000用户PC,R14R0,CPSR0b10001FIQPC,R14_fiqR8_fiq,R7R0,CPSR,SPSR_fiq0b10010IRQPC,R14_irqR8_fiq,R12R0,CPSR,SPSR_irq0b10011管理PC,R14_svcR8_svc,R12R0,CPSR,SPSR_svc0b10111中止PC,R14_abtR8_abt,R12R0,CPSR,SPSR_abt

26、0b11011未定义PC,R14_undR8_und,R12R0,CPSR,SPSR_und0b11111系统PC,R14R0,CPSR3)其他位: 程序状态寄存器的其他位保留,用作后的扩展。实验步骤1)参考 4.1.5 小节实验 A 的步骤建立一个新的工程,命名为 ARMMode,处理器选择 S3C2410A;2)参考 4.1.5 小节实验 A 的步骤和本节实验参考程序编辑输入源代码,编辑完毕后,保存文件 为 ARMMode.s;3)单击工具栏的图标,或单击工程管理窗口中的相应右键菜单 Manage Components 命令,弹出 Componets,Environment and Boo

27、ks 对话框,在该对话框中为相应的文件组添加刚才新 建的源文件 ARMMode.s;4)参考 4.1.5 小节实验 A 的步骤进行相应设置、生成目标代码和下载目标代码调试;5)打开寄存器窗,单步执行,观察并记录寄存器 R0 和 CPSR 的值的变化和每次变化后执行寄 存器赋值后的 36 个寄存器的值的变化情况,尤其注意各个模式下 R13 和 R14 的值;6)结合实验内容和相关资料,观察程序运行,通过实验加深理解 ARM 各种状态下寄存器的使 用;7)理解和掌握实验后,完成实验练习题。实验参考程序;*; NAME:ARMmode.s*; Author:Wuhan R&D Center, Emb

28、est*; Desc:ARM instruction examples*;Example for ARM mode*; History:JianYing, Wang 2007.05.15*; *;/*-*/;/*constant define*/;/*-*/ EXPORT start;/*-*/;/*code*/;/*-*/ AREA|.text|, CODE, READONLYstart;/*-*/;/* Setup interrupt / exception vectors*/;/*-*/bReset_HandlerUndefined_HandlerbUndefined_Handler b

29、SWI_HandlerPrefetch_HandlerbPrefetch_HandlerAbort_HandlerbAbort_Handlernop;/* Reserved vector */ IRQ_HandlerbIRQ_HandlerFIQ_HandlerbFIQ_HandlerSWI_Handler bx lrReset_Handler visitmen;/*-*/;/*into System mode*/;/*-*/ mrs r0,cpsr;/* read CPSR value */ bic r0,r0,#0x1f;/* clear low 5 bit*/ orr r0,r0,#0x

30、1f;/* set the mode as System mode */msr cpsr_cxfs,r0mov r0, #1;/* initialization the register in System mode */mov r1, #2mov r2, #3 mov r3, #4 mov r4, #5 mov r5, #6 mov r6, #7 mov r7, #8 mov r8, #9 mov r9, #10 mov r10, #11 mov r11, #12 mov r12, #13 mov r13, #14mov r14, #15;/*-*/;/*into FIQ mode*/;/*

31、-*/ mrs r0,cpsr;/* read CPSR value */ bic r0,r0,#0x1f;/* clear low 5 bit */ orr r0,r0,#0x11;/* set the mode as FIQ mode*/msr cpsr_cxfs,r0mov r8, #16;/* initialization the register in FIQ mode */mov r9, #17 mov r10, #18 mov r11, #19 mov r12, #20 mov r13, #21mov r14, #22;/*-*/;/*into SVC mode*/;/*-*/

32、mrs r0,cpsr;/* read CPSR value */ bic r0,r0,#0x1f;/* clear low 5 bit*/ orr r0,r0,#0x13;/* set the mode as SVC mode */msr cpsr_cxfs,r0mov r13, #23;/* initialization the register in SVC mode */mov r14, #24;/*-*/;/*into Abort mode*/;/*-*/ mrs r0,cpsr;/* read CPSR value */ bic r0,r0,#0x1f;/* clear low 5

33、 bit */ orr r0,r0,#0x17;/* set the mode as Abort mode*/msr cpsr_cxfs,r0mov r13, #25;/* initialization the register in Abort mode */mov r14, #26;/*-*/;/*into IRQ mode*/;/*-*/ mrs r0,cpsr;/* read CPSR value */ bic r0,r0,#0x1f;/* clear low 5 bit */ orr r0,r0,#0x12;/* set the mode as IRQ mode*/msr cpsr_

34、cxfs,r0mov r13, #27;/* initialization the register in IRQ mode */mov r14, #28;/*-*/;/*into UNDEF mode*/;/*-*/ mrs r0,cpsr;/* read CPSR value */ bic r0,r0,#0x1f;/* clear low 5 bit*/ orr r0,r0,#0x1b;/* set the mode as UNDEF mode */msr cpsr_cxfs,r0mov r13, #29;/* initialization the register in UNDEF mo

35、de */mov r14, #30b Reset_Handler;/* jump back to Reset_Handler */END本节可使用上节的调试脚本文件。练习题参考第一个例子,把其中系统模式程序更改为用户模式程序,编译调试,观察运行结果,检查 是否正确,如果有错误,分析其原因;(提示:不能从用户模式直接切换到其他模式,可以先使用 SWI 指令切换到管理模式)。LED 控制实验实验目的掌握利用 S3C2410X 芯片地址总线扩展的 I/O 来驱动 LED 显示;了解 ARM 芯片中利用总线扩展 I/O 口的使用方法。实验设备硬件:Embest EduKit-IV 平台,ULINK2

36、仿真器套件,PC 机;软件:Vision IDE for ARM 集成开发环境,Windows 98/2000/NT/XP。实验内容编写程序,控制实验平台的发光二极管 LED1,LED2,LED3,LED4,使它们有规律的点亮和熄灭, 具体顺序如下:LED1 亮-LED2 亮-LED3 亮-LED4 亮-LED1 灭-LED2 灭-LED3 灭-LED4 灭-全亮-全灭,如此反复。实验原理在开发 LED 驱动之前,首先了解本实验的原理图:EduKit-IV 设计了 5 个 LED(D1D5)用于 指示和控制系统的状态,其中 D2 指示电源的状态,其他 4 个的状态是用户可编程的(SYSLED1

37、 SYSLED4),在 EduKit-IV 中,这 4 个 LED 的状态通过扩展 I/O 接口进行控制。EduKit-IV LED 所用到的扩展 I/O 如图 5-2-1 所示:图 5-2-1 片选信号的产生利用 3/8 译码器将 A18-A20 扩展了 7 个外设片选信号 CS1-CS7。CS1 和 CS2 引出到外部扩展接口 EXCON_B3,CS3 和 CS4 为总线扩展输入的芯片 74HC541 的片选。CS5,CS6,和 CS7 为总线扩展输出的芯片 74HC573 的片选。片选信号在接入 74HC573 前经过了如下处理:图 5-2-2OLE 信号的产生其中 CS5,CS6,CS

38、7 3 个片选信号和写使能信号通过 74HC32 或门输出一个选通信号 LE 为低 电平。图 5-2-3 LE 信号的产生前面或门输出的 LE 选通信号经过 74HC04 反相得到高电平后再连接到扩展输出芯片 74HC573。EduKit-IV LED 接口电路如图 5-2-4 和图 5-2-5 所示。在本实验平台上,如图 5-2-4,芯片74VHC573DT 的选通物理地址为 0x21180000,当访问这个物理地址的时候,就可以访问其上的硬 件资源了。这里可以把其理解为一个寄存器,寄存器地址是 0x21180000,它的低 4 位控制了 4 个 LED 灯,通过访问地址为 0x211800

39、00 的寄存器,往其低 4 位置高/低电平,从而控制相应的 4 个 LED 灯 的亮/灭。(注意:寄存器 0x21180000 是只写的,在软件编程时只能往里写数据,不能从里读数据)图 5-2-4 向 LED 写入数据图 5-2-5 LED1-4 连接图如图 5-2-5 所示,LED1-4 这 4 个 LED 采用了共阳极的接法,分别与 SYSLED1-4 相连,通过 SYSLED1-4 引脚的高低电平来控制发光二极管的亮与灭。当这几个管脚输出高电平的时候发光二极 管熄灭,反之,发光二极管点亮。实验步骤1. 准备实验环境使用 ULINK2 仿真器连接 Embest EduKit-IV 实验平台

40、的主板 JTAG 接口;使用 Embest EduKit-IV 实验平台附带的交叉串口线,连接实验平台主板上的 COM2 和 PC 机的串口(一般 PC 只有一个串口, 如果有多个请自行选择,笔记本没有串口设备的可购买 USB 转串口适配器扩充);使用 Embest EduKit-IV 实验平台附带的电源适配器,连接实验平台主板上的电源接口。2. 串口接收设置在 PC 机上运行 windows 自带的超级终端串口通信程序,或者使用实验平台附带光盘内设置好 了的超级终端,设置超级终端:波特率 115200、1 位停止位、无校验位、无硬件流控制,或者使用 其它串口通信程序。(注:超级终端串口的选择

41、根据用户的 PC 串口硬件不同,请自行选择,如果 PC机只有一个串口,一般是 COM1)3. 打开实验例程1)拷贝实验平台附带光盘 DISK3_S3C241003-Codes01-MDKMini2410-IV 文件夹到 MDK 的 安装路径:KeilARMBoardsEmbest(如果本实验之前已经拷贝,可以跳过这一步)。(注:用户也 可拷贝工程到任意目录,本实验为了便于教学,故统一实验路径);2)运行 Vision IDE for ARM 软件,点击菜单栏“Project”,选择“Open Project”,在弹出的 对话框选择实验例程目录 LED_Test 子目录下的 LED_Test.U

42、v2 工程。3)默认打开的工程在源码编辑窗口会显示实验例程的说明文件 readme.txt,详细阅读并理解实 验内容。4)工程提供了两种运行方式:一是下载到 SDRAM 中调试运行,二是固化到 Nor Flash 中运行。 用户可以在工具栏 Select Target 下拉框中选择在 RAM 中调试运行还是固化 Flash 中运行。如下图所 示:图 5-2-6 选择运行方式下面实验将介绍下载到 SDRAM 中调试运行,所以我们在 Select Target 下拉框中选择 LED_TestIN RAM。5)接下来开始编译链接工程,在菜单栏“Projiet”选择“Build target”或者“R

43、ebuild all target files”编译整个工程,用户也可以在工具栏单击“”或者“”进行编译。6)编译完成后,在输出窗口可以看到编译提示信息,比如“.SDRAMLED_Test.axf - 0 Error(s),1 Warning(s).”,如果显示“0 Error(s)”即表示编译成功。7)拨动实验平台电源开关,给实验平台上电,单击菜单栏 Debug-Start/Stop Debug Session项将编译出来的映像文件下载到 SDRAM 中,或者单击工具栏“”按钮来下载。8)下载完成后,单击菜单栏 Debug-Run 项运行程序,或者单击工具栏“”按钮来全速运 行程序。用户也可

44、以使用进行单步调试程序。9)全速运行后,用户可以在超级终端看到程序运行的信息。10)用户可以 Stop 程序运行,使用 Vision IDE for ARM 的一些调试窗口跟踪查看程序运行的 信息。注:如果在第 4)步用户选择在 Flash 中运行,则编译链接成功后,单击菜单栏 Flash-Download 项将程序固化到 NorFlash 中,或者单击工具栏按钮“”固化程序,从实验平台的主板拔出 JTAG 线,给实验平台重新上电,程序将自动运行。4. 观察实验结果执行到第 8)步时,可以看到超级终端上输出如下字符。观察发光二极管的亮灭情况,可以观察到的现象与前面实验内容中的相符,说明实验成功

45、的实现了利用总线扩展 I/0 对 LED 的驱动。*英蓓特 EduKit 系列嵌入式教学系统平台*Embest EduKit Series Embedded Teaching Platform*Expand I/O (Diode Led) Test ExamplePlease Look At The LEDSend.5. 完成实验练习题理解和掌握实验后,完成实验练习题。实验参考程序* File:led_test.c* Author:embest* Desc: Led_Test* History:*/*-*/*include files*/*-*/#include 2410lib.h/*-*/*

46、constant define*/*-*/#define LEDADDR (*(volatile unsigned char*)0x21180000)/ LED Address/* name:led_on* func:turn on the leds one by one* para:none* ret: none* modify:* comment:*/void led_on(void)int i,nOut;nOut = 0xFF;LEDADDR = nOut & 0xFE; for(i = 0; i 100000; i+); LEDADDR = nOut & 0xFC; for(i = 0; i 100000; i+); LEDADDR = nOut & 0xF8; for(i = 0; i 100000; i+); LEDADDR = nOut & 0

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!