ARM应用技术实验指导书13秋.docx

上传人:b****7 文档编号:16255316 上传时间:2023-07-12 格式:DOCX 页数:32 大小:511.18KB
下载 相关 举报
ARM应用技术实验指导书13秋.docx_第1页
第1页 / 共32页
ARM应用技术实验指导书13秋.docx_第2页
第2页 / 共32页
ARM应用技术实验指导书13秋.docx_第3页
第3页 / 共32页
ARM应用技术实验指导书13秋.docx_第4页
第4页 / 共32页
ARM应用技术实验指导书13秋.docx_第5页
第5页 / 共32页
ARM应用技术实验指导书13秋.docx_第6页
第6页 / 共32页
ARM应用技术实验指导书13秋.docx_第7页
第7页 / 共32页
ARM应用技术实验指导书13秋.docx_第8页
第8页 / 共32页
ARM应用技术实验指导书13秋.docx_第9页
第9页 / 共32页
ARM应用技术实验指导书13秋.docx_第10页
第10页 / 共32页
ARM应用技术实验指导书13秋.docx_第11页
第11页 / 共32页
ARM应用技术实验指导书13秋.docx_第12页
第12页 / 共32页
ARM应用技术实验指导书13秋.docx_第13页
第13页 / 共32页
ARM应用技术实验指导书13秋.docx_第14页
第14页 / 共32页
ARM应用技术实验指导书13秋.docx_第15页
第15页 / 共32页
ARM应用技术实验指导书13秋.docx_第16页
第16页 / 共32页
ARM应用技术实验指导书13秋.docx_第17页
第17页 / 共32页
ARM应用技术实验指导书13秋.docx_第18页
第18页 / 共32页
ARM应用技术实验指导书13秋.docx_第19页
第19页 / 共32页
ARM应用技术实验指导书13秋.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ARM应用技术实验指导书13秋.docx

《ARM应用技术实验指导书13秋.docx》由会员分享,可在线阅读,更多相关《ARM应用技术实验指导书13秋.docx(32页珍藏版)》请在冰点文库上搜索。

ARM应用技术实验指导书13秋.docx

ARM应用技术实验指导书13秋

 

《嵌入式系统设计》

 

实验指导书

 

哈尔滨理工大学

自动化学院

电子信息科学与技术

20012-10

realviewMDK开发环境简介

一、RealViewMDK软件开发环境简介

RealViewMDK源自德国Keil公司,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的对各种嵌入式处理器的软件开发工具。

RealViewMDK集成了业内最领先的技术,包括µVision3集成开发环境与RealView编译器,支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。

1、RealViewMDK的突出特性

—启动代码生成向导,自动引导,一日千里

—软件模拟器,完全脱离硬件的软件开发过程

—性能分析器,看得更远、看得更细、看得更清 

—Cortex-M3支持

—业界最优秀的编译器RealView编译器,代码更小,性能更高,配备ULINK2仿真器,无需安装驱动

—Flash编程模块轻松实现Flash烧写

2、产品模块介绍

µVision3IDE

启动代码生成向导

设备模拟器

性能分析器

RealView编译器

MircoLib

 RL-ARM(可选) 

ULINK2仿真器

صVision3IDE

µVisionIDE在全球拥有庞大的用户群,超过10万开发工程师在使用Keil开发工具。

不管以前是用8位、16位MCU,还是现在改用ARM32位处理器,µVisionIDE简单易用,能让您立马上手。

صVision3IDE主要特性:

●功能强大的源代码编辑器;

●可根据开发工具配置的设备数据库;

●用于创建和维护工程的工程管理器;

●集汇编、编译和链接过程于一体的编译工具;

●用于设置开发工具配置的对话框;

●真正集成高速CPU及片上外设模拟器的源码级调试器;

●高级GDI接口,可用于目标硬件的软件调试和ULINK2仿真器的连接;

●用于下载应用程序到FlashROM中的Flash编程器;

●完善的开发工具手册、设备数据手册和用户向导。

图1.1µVision3IDE

Ø启动代码配置向导

µVision3IDE的启动代码配置向导将各个所需配置的功能模块以对话框方式展示,附加的提示说明,帮助你快速轻松的做出选择,生成完善的启动代码,免除手工写几百行汇编程序的痛苦。

صVision3设备模拟器

µVision3设备模拟器的功能强大,能模拟整个MCU的行为。

使你在没有硬件或对目标MCU没有更深的了解的情况下,仍然可以立即开始开发软件。

Ø性能分析器

性能分析器可给所有的MCU实现如程序运行时间统计、被调用次数统计、代码覆盖率统计等高端功能,而这些功能对于快速定位死区代码,帮助优化分析等起了关键的作用。

ØRealView编译器(RVCT)

RealViewMDK集成的RealView编译器(跟RVDS使用一样的编译器),是业界最优秀的编译器,它能使代码容量更小、执行效率更高;使应用程序运行更快、系统成本更低。

ØMicroLib

为进一步改进基于ARM处理器的应用代码密度,RealViewMDK采用了新型microlibC库(用于C的ISO标准运行时库的一个子集),并将其代码镜像降低最小以满足微控制器应用的需求。

MicrolibC库可将运行时库代码大大降低。

ØRealView实时库RL-ARM(可选)

ØULINK2仿真器 

ULINKUSB-JTAG仿真器

JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。

JTAG仿真器连接比较方便,通过现有的JTAG边界扫描口与ARMCPU核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。

另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。

使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。

ULINKUSB-JTAG仿真器支持众多Philips、Samsung、Atmel、AnalogDevices、Sharp、ST等众多厂商ARM7及ARM9内核的ARM微控制器,其将PC机的USB端口与用户的目标硬件相连(通过JTAG或OCD),使用户可在目标硬件上调试代码。

通过使用KeiluVisionIDE/调试器和ULINKUSB-JTAG仿真器,用户可以方便地编辑、下载和在实际的目标硬件上测试嵌入式的程序,并且具有三个LED灯分别显示RUN,COM,和USB状态。

使用ULINKUSB-JTAG仿真器可以实现以下功能:

􀁺USB通讯接口高速下载用户代码

􀁺存储区域/寄存器查看

􀁺快速单步程序运行

􀁺添加多个程序断点

􀁺运行实时程序

􀁺片内Flash编程

􀁺运行实时程序

ULINK2USB-JTAG仿真器

ULINK2通过JTAG,SWD,或OCDS将目标硬件与您电脑的USB端口连接起来,使用ULINK2您

可以调试在目标硬件上运行的嵌入式程序。

ULINK2不仅包含了ULINKUSB-JTAG适配器具有的所有功能,而且具有如下新的特点:

􀁺标准WindowsUSB驱动支持ULINK2即插即用

􀁺支持基于ARMCortex-M3的串行线调试

􀁺支持程序运行期间的存储器读写、终端仿真和串行调试输出

􀁺既支持20针引脚,同时也支持10针引脚

􀁺ULINK2仿真器图如图1.2所示。

图1.2ULINK2USB-JTAG仿真器图

二、RealView使用

1、创建一个工程

µVision是一个标准的窗口应用程序,可以点击程序按钮开始运行。

为了创建一个新的µVision工程必须作如下处理:

选择工具集

创建工程文件

选择设备

1)选择工具集

µVision可以使用ARMRealView编译工具、ARMADS编译器、GNUGCC编译器和KeilCARM编译器。

当使用GNUGCC编译器或ARMADS编译器时必须另外安装它们编译集。

实际使用的工具集可以在µVisionIDE的Project–Manage-Components,Environment,andBooks对话框的Folders/Extensions页(见下图)中选择。

图1.3选择工具集

∙UseRealViewCompiler复选框表示本工程使用ARM开发工具。

RealViewFolder文本框指定开发工具的路径。

∙下面的例子显示了各种版本的ARMADS/RealView开发工具的路径:

a)µVision的RealView编译器:

BIN31\

b)ADSV1.2:

C:

\ProgramFiles\ARM\ADSv1_2\Bin

c)RealView评估版2.1:

C:

\ProgramFiles\ARM\RVCT\Programs\2.1\350\eval2-sc\win_32-pentium

∙UseKeilCARMCompiler复选框表示本工程使用KeilCARM编译器、KeilAARM汇编器和KeilLARM链接器/装载器。

∙UseGNUCompiler复选框表示本工程使用GNU开发工具。

CygnusFolder文本框指定GNU的安装路径。

∙Keil根目录的设置是基于µVision/ARM开发工具的安装目录的。

对于KeilARM工具来说,工具组件的路径是在开发工具目录中配置的。

2)创建工程文件

单击Project->New...->µVisionProject菜单项,µVision3将打开一个标准对话框,输入希望新建工程的名字即可创建一个新的工程,建议对每个新建工程使用独立的文件夹。

例如,这里先建立一个新的文件夹,然后选择这个文件夹作为新建工程的目录,输入新建工程的名字Project1,µVision将会创建一个以Project1.UV2为名字的新工程文件,它包含了一个缺省的目标(target)和文件组名。

这些内容在ProjectWorkspace->Files中可以看到。

3)选择设备

在创建一个新的工程时,µVision要求为这个工程选择一款CPU。

选择设备对话框显示了µVision的设备数据库,只需要选择用户所需的微控制器即可。

例如,选择PhilipsLPC2106微控制器,这个选择设置了LPC2106设备的必要工具选项、简化了工具的配置。

图1.4选择设备

注意:

 

∙当创建一个新的工程时,µVision会自动为所选择的CPU添加合适的启动代码。

∙对于一些设备而言,µVision需要用户手动地输入额外的参数。

请仔细阅读这个对话框右边的信息,因为它可能包含所选设备的额外配置要求。

创建源文件以后,就可以将这个文件添加到工程中。

µVision提供了几种方法将源文件添加到工程中。

例如,在ProjectWorkspace->Files页的文件组上点击鼠标右键,然后在弹出的菜单中选择AddFiles菜单项,这时将打开标准的文件对话框,选择我们创建的asm或c文件即完成源文件的添加。

2.建立一个新的源文件

创建一个工程之后,就应开始编写源程序。

选择菜单项File-New可创建新的源文件,μVisionIDE将会打开一个空的编辑窗口用以输入源程序。

在输入完源程序后,选择File-SaveAs…菜单项保存源程序,汇编语言源文件以*.S为扩展名,C语言源文件以*.C为扩展名。

3.工程中文件的加入

创建完源文件后便可以在工程里加入此源文件,μVision提供了多种方法加入源文件到工程中。

例如,在ProjectWorkspace–Files菜单项中选择文件组,右击将会弹出如图1.5所示快捷菜单,单击选项AddFilestoGroup…打开一个标准文件对话框,将已创建好的源文件加入到工程中。

图1.5加入源文件到工程中

4.编译、链接工程

1)设置目标硬件的工具选项

µVision可以设置目标硬件的选项。

通过工具栏按钮或Project-OptionsforTarget菜单项打开OptionsforTarget对话框,在Target页中设置目标硬件及所选CPU片上组件的参数。

图1.6设置目标硬件

下表描述了Target对话框的选项:

对话框项

描述

Xtal

设备的晶振(XTAL)频率。

大多数基于ARM的微控制器都使用片上PLL产生CPU时钟。

所以,一般情况下CPU的时钟与XTAL的频率是不同的。

Read/OnlyMemoryArea

配置片内、片外的ROM区地址以及大小

Read/WriteMemoryAreas

指定目标硬件的片内和片外的RAM区地址以及大小

CodeGeneration

选择产生ARMcode还是Thumbcode

2)、增加连接控制文件

对于GNU和ARMADS/RealView工具链来说,链接器的配置是通过链接器控制文件实现的。

这个文件指定了ARM目标硬件的存储配置。

预配置的链接器控制文件在文件夹..\ARM\GNU或..\ARM\ADS中。

 为了与目标硬件相匹配,用户可能会修改链接器控制文件,所以工程中的那个文件是预配置的连接控制文件的一个副本。

这个文件可以通过Project-OptionsforTarget对话框的Linker页添加到工程中。

图1.7设置linker选项

对于复杂的memorylayout分配方式,应该采用scatterfile,对于简单的工程,直接指定R/O和R/W的基地址即可。

3)编译链接

完成工程的设置后,就可以对工程进行编译链接了。

用户可以通过选择主窗口Project菜单的Buildtarget项或工具条

按钮,编译相应的文件或工程,同时将在输出窗的Build子窗口中输出有关信息。

如果在编译链接过程中,出现任何错误,包括源文件语法错误和其它错误时,编译链接操作立刻终止,并在输出窗的Build子窗口中提示错误,如果是语法错误,用户可以通过鼠标左键双击错误提示行,来定位引起错误的源文件行。

如图1.8

图1.8编译选项

5.程序调试

源文件编译成功产生应用程序以后就可开始调试了,点击Debug->Start/Stopdebugsession(CtrlF5)即进入调试模式。

进入调试模式之后,可以选择单步、全速运行。

可以设置断点等常规的调试。

所有有关调试的操作都可以在Debug菜单下找到。

如下图所示为进入调试模式下时的界面。

常用的调试手段:

▪单步、全速运行程序。

F10单步运行,F5全速运行。

▪对于各种模式下的寄存器,可以在左边的窗口查看。

对于ARM的7种模式下的寄存器,都可以查看。

当处理器处于任何一种模式时,可以查看Current中所有的寄存器的值,处理器从一种状态改变到另外一种状态时,该模式下物理上独立的寄存器将会被用到。

▪设置断点。

选中需要设置断点的行,然后F9即在改行设置断点,程序运行到此处就停止运行。

▪查看变量的实时值。

对于local的变量,打开View->Watch&CallStackWindow,在此Window中,选择Localstab就可以查看所有的local变量。

对于全局变量,选择Watchwindow中的Watch#1,加入你需要查看的变量就可以查看实时的全局变量的值。

▪外设模块仿真。

因为我们选择的是Simulator,所以可以通过RealViewMDK强大的仿真功能来调试程序。

打开Peripheral->GPIO可以看到每一个GPIOpin的实时状态信息。

全速运行程序后,GPIO的状态就开始按照程序的控制开始变化。

图1.9simulator调试

实验一汇编指令实验

一、实验目的

1、熟悉使用realviewMDKIDE开发环境及ARM软件模拟器;

2、通过实验掌握简单ARM汇编指令的使用方法。

二、实验设备

1、硬件:

PC机

2、软件:

realviewMDK集成开发环境,Windows98/2000/NT/XP。

三、实验内容

1、熟悉开发环境的使用并使用LDR/STR,MOV等指令访问寄存器或存储单元。

2、使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。

四、实验步骤

1.实验A

1)新建工程

首先在\Keil\ARM\Examples\目录下建立文件夹命名为Asm1_a,运行μVision3IDE集成开发环境,选择菜单项Project–New…–μVisionProject,系统弹出一个对话框,输入相关内容。

点击“保存”按钮,将创建一个新工程asm_1a.Uv2。

2)为工程选择CPU

新建工程后,要为工程选择CPU,在此选择SAMSUNG的S3C44B0X。

然后会弹出一个对话框,问是否要添加启动代码。

由于本实验是简单的汇编实验,因此不需要启动代码,选择否。

3)建立源文件

点击菜单项File-New,系统弹出一个新的文本编辑窗,按照实验参考程序编辑输入源文件代码。

编辑完后,保存文件asm1_a.s。

4)添加源文件

单击工程管理窗口中的相应右键菜单命令,选择AddFilesto…,会弹出文件选择对话框,在工程目录下选择刚才建立的源文件asm1_a.s。

5)工程配置

选择菜单项Project->OptionforTarget…,将弹出工程设置对话框,如图

(1)所示。

Target选项页的配置如图

(1),Linker选项页的配置如图2,Debug选项页的配置如图3。

需要注意,在Debug选项页内需要一个初始化文件:

DebugINRam.ini。

此.INI文件用于设置生成的.AXF文件下载到目标中的位置,以及调试前的寄存器、内存的初始化等配置操作。

它是由调试函数及调试命令组成调试命令脚本文件。

图1基本配置—Targe

图2基本配置—Linker

图3基本配置—Debug

6)生成目标代码

选择菜单项Project-Buildtarget或快捷键F7,生成目标代码。

在此过程中,若有错误,则进行修改,直至无错误。

若无错误,则可进行下一步的调试。

7)调试

选择菜单项Debug-Start/StopDebugSession或快捷键Ctrl+F5,即可进入调试模式。

若没有目标硬件,可以用μVision3IDE中的软件仿真器。

做如下调试工作:

􀂋打开memory窗口,单步执行,观察地址0x8000~0x801f的内容与地址0xff0~0xfff的内容;

􀂋单步执行,观察寄存器的变化;

􀂋结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令的使用;

􀂋理解和掌握实验后,完成实验练习题。

2、实验B

实验B与上述步骤完全相同,只要把对应的asm1_a.s文件改成asm1_b.s以及工程名即可。

五、实验参考程序

实验A汇编程序

;asm1_a.s

xEQU45;x=45

yEQU64;y=64/

stack_topEQU0x30200000;definethetopaddressforstacksexportReset_Handler

AREAtext,CODE,READONLY

exportReset_Handler;codestart

ldrsp,=stack_top

movr0,#x;putxvalueintoR0

strr0,[sp];savethevalueofR0intostacks

movr0,#y;putyvalueintoR0

ldrr1,[sp];readthedatafromstack,andputitintor1

addr0,r0,r1;R0=R0+R1

strr0,[sp]

stop

bstop;endthecode£¬cycling

end

调试命令脚本DebugINRam.ini:

/***<<

disalbe!

WizardinContextMenu>>>***/

/*Name:

DebugINRam.ini*/

FUNCvoidSetup(void)

{

//ProgramEntryPoint,.AXFFiledownloadAddress

PC=0x030000000;

}

map0x00000000,0x00200000readwriteexec

map0x30000000,0x34000000readwriteexec

Setup();//SetupforRunning

//g,main

实验B汇编程序

;asm1_b.s

xEQU45;/*x=45*/

yEQU64;/*y=64*/

zEQU87;/*z=87*/

stack_topEQU0x30200000;/*definethetopaddressforstacks*/

exportReset_Handler

AREAtext,CODE,READONLY

Reset_Handler;/*codestart*/

movr0,#x;/*putxvalueintoR0*/

movr0,r0,lsl#8;/*R0=R0<<8*/

movr1,#y;/*putyvalueintoR1*/

addr2,r0,r1,lsr#1;/*R2=(R1>>1)+R0*/

ldrsp,=stack_top

strr2,[sp]

movr0,#z;/*putzvalueintoR0*/

andr0,r0,#0xFF;/*getlow8bitfromR0*/

movr1,#y;/*putyvalueintoR1*/

addr2,r0,r1,lsr#1;/*R2=(R1>>1)+R0*/

ldrr0,[sp];/*putyvalueintoR1*/

movr1,#0x01

orrr0,r0,r1

movr1,R2;/*putyvalueintoR1*/

addr2,r0,r1,lsr#1;/*R2=(R1>>1)+R0*/

stop

bstop;/*endthecode£¬cycling*/

END

调试命令脚本文件与实验A相同。

六、练习题

1.编写程序循环对R4~R11进行累加8次赋值,R4~R11起始值为1~8,每次加操作后把R4~R11的内容放入SP栈中,SP初始设置为0x800。

最后把R4~R11用LDMFD指令清空赋值为0。

2.更改实验A中X、Y的值,观察执行结果。

 

实验二I/O接口实验

一、实验目的

1、掌握S3C44B0X芯片的I/O口控制寄存器的配置。

2、通过实验掌握ARM芯片使用I/O口控制LED显示。

3、了解ARM芯片中复用I/O口的使用方法。

二、实验设备

1、硬件:

EmbestEduKit-III实验平台,,ULINKUSB-JTAG仿真器套件,PC机。

2、软件:

μVisionIDEforARM集成开发环境,Windows98/2000/NT/XP。

三、实验内容

编写程序,控制实验平台的发光二极管LED1206和LED1207,使它们有规律地点亮和熄灭:

LED1206亮->LED1206关闭->LED1207亮->LED1206和LED1207全亮->LED1207关闭->LED1206关闭

四、实验原理

S3C44B0X芯片上共有71个多功能的输入输出管脚,它们分为7组I/O端口,每组端口都可以通过软件配置寄存器来满足不同系统和设计的需要。

在运行主程序之前,必须先对每一个用到的管脚的功能进行设置,如果某些管脚的复用功能没有使用,可以先将该管脚设置为I/O口。

该EmbestEduKit-III实验板上端口B的管脚PB9和PB10被设置为输出口,并且分别和LED1206、LED1207连接,参照电路设计。

如图,发光二极管LED1和LED2的正极与芯片

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2