实验一 ADS集成开发环境及汇编语言指令实验
- 格式:pdf
- 大小:133.88 KB
- 文档页数:4
实验1 ADS1.2 开发环境使用1、实验目的熟悉 ADS1.2 开发环境,使用 ADS 编译、调试并跟踪一段已有的程序了解嵌入式开发的基本思想和过程2、实验内容本次实验学习使用ADS集成开发环境。
新建一个简单的工程文件,并编译这个工程文件。
ARM仿真器的使用和开发环境的设置。
学会在程序中设置断点,观察系统内存和变量,为高调试应用程序打下基础。
3、预备知识所需的预备知识为:C语言的基础知识、程序调试的基础知识和方法。
4、实验设备及工具硬件:PC机软件:Windows 操作系统、ADS1.2集成开发环境5、实验原理5.1交叉开发环境概述嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。
目前一般采用的解决办法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台上可以运行的二进制代码格式,最后再下载到目标平台上的特定位置上运行。
需要交叉开发环境(Cross Development Environment)的支持是嵌入式应用软件开发时的一个显著特点,交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式,如图1所示。
图 1 交叉开发环境交叉开发环境的组成要素:宿主机(Host)是一台通用计算机(如 PC 机或者工作站),它通过串口或者以太网接口与目标机通信。
宿主机的软硬件资源比较丰富,不但包括功能强大的操作系统(如Windows和Linux),而且还有各种各样优秀的开发工具(如 WindRiver的Tornado、Microsoft 的Embedded Visual C++等),能够大大提高嵌入式应用软件的开发速度和效率。
目标机(Target)一般在嵌入式应用软件开发期间使用,用来区别与嵌入式系统通信的宿主机,它可以是嵌入式应用软件的实际运行环境,也可以是能够替代实际运行环境的仿真系统,但软硬件资源通常都比较有限。
实验一ADS开发环境实验一、实验目的1、熟悉ADS开发环境中CodeWarrior for ARM Developer Suite组件的应用;2、掌握使用ADS开发环境编译工程项目的方法;3、了解S3C44B0工程基本结构和基础内容。
二、实验内容1、熟悉ADS开发环境及其中的CodeWarrior for ARM Developer Suite组件;2、编译原有工程文件;3、新建工程文件。
三、实验设备1、硬件:JX44B0实验板;PC机;2、软件:PC机操作系统(WINDOWS 2000);ARM Developer Suite v1.2;四、基础知识1、了解ARM体系结构;2、了解ARM汇编语言;3、掌握C、C++语言。
五、实验说明1、ADS简介ADS是一个使用方便的集成开发环境,全称是“ARM Developer Suite v1.2 ”,它是由ARM公司提供的专门用于ARM相关应用开发和调试的综合性软件。
在易用性上比上一代的SDT开发环境有较大提高,是一套功能强大又易于使用的开发环境。
ADS囊括了一系列的应用,并有相关的文档和实例的支持。
使用者可以用它来编写和调试各种基于ARM家族RISC处理器的应用。
你可以使用ADS来开发、编译、调试采用包括C、C++和ARM汇编语言编写的程序。
ADS主要由以下部分构成:——命令行开发工具;——图形界面开发工具;——各种辅助工具;——支持软件。
我们在本实验指导书中用到了“CodeWarrior for ARM Developer Suite”和“AXD Debugger”两个部件。
其中CodeWarrior for ARM Developer Suite用于生成和编译工程,AXD Debugger用于下载和调试工程项目。
本节实验讲解使用CodeWarrior for ARM Developer Suite 编译生成工程项目。
AXD Debugger将在下一节使用。
实验一 ADS1.2开发环境创建(2个学时)一、实验目的熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。
使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。
超级终端设置及BIOS功能使用。
二、实验内容本次实验配置ADS 集成开发环境,新建一个简单的工程文件,并编译这个工程文件。
学习ARM 仿真器的使用和开发环境的设置。
下载已经编译好的文件到嵌入式控制器中运行。
学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。
运行Windows系统下的超级终端,通过超级终端查看BIOS启动情况。
三、预备知识C 语言的基础知识、程序调试的基础知识和方法。
四、实验设备及工具(包括软件调试工具)硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、串口线。
软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。
五、实验步骤1 配置ADS 集成开发环境(1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。
选择File|New…菜单,在对话框中选择Project,如图1-17 所示,新建一个工程文件。
图中示例的工程名为Exp6.mcp。
点set…按钮可为该工程选择路径如图1-18 所示,选中CreatFolder 选项后将以图1-17 中的ProjectName 或图1-18 中的文件名为名创建目录,这样可以将所有与该工程相关的文件放到该工程目录下,便于管理工程。
(2)在图1-17 中工程模板列表中我们选择ARM Executable Image 通用模板。
我们随后将一步一步的把它配置成针对我们ARM3000 开发板的模板44B0 ARM ExecutableImaage,并把它拷贝到ADS1.2 安装目录下的Stationery 目录中(所有的工程模板都在此目录下)。
实验一嵌入式微处理器系统的开发环境一、实验环境PC机一台软件: ADS 1.2集成开发环境一套二、实验目的1.了解嵌入式系统及其特点;2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序三、实验内容1.嵌入式系统的开发环境、基本配置2.使用汇编指令完成简单的加法实验四、实验步骤(1)在D:\新建一个目录,目录名为experiment。
(2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。
启动ADS 1.2 如图1-1所示:图1-1启动ADS1.2(3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮,也可以在“File”菜单中选择“New…”菜单。
这样就会打开一个如图1-2 所示的对话框。
选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。
图1-2 新建文件在这个对话框中为用户提供了7 种可选择的工程类型:1)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库;3)Empty Project:用于创建一个不包含任何库或源文件的工程;4)Make Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件;5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件;6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。
试验一ads开发环境的熟悉及时汇编语言编程试验一、试验目的:1、熟悉ads开发环境;2、掌握ads下编程的步骤(编辑、编译、链接与调试);3、通过ads下的汇编语言编程来进一步熟悉一下易混淆的汇编指令二、相关知识:ADS 俗称ARM Developer Support,是ARM 公司推出的集成编辑、编译、链接和调试工具,当然,在arm上进行程序设计除了ads工具外,还有gnu工具(开源、免费)。
三、试验步骤:基本的编辑、编译、运行调试试验1、建立工程:在目录exp1(自己建立)下新建一个ads工程watchReg:File->new->Project->ARM Excutable Image->Location编辑框内输入工程目录exp1->Project name输入工程名字;打开工程目录exp1,观察其中生成了哪些文件东西?2、设置工程:Edit->DebugRel Settings->Target Settings Panels->LanguageSettings->ARM Assembler->Target(右侧面板)->Architecture or Processor->ARM920T->OK3、新建文件并将文件添加到工程:File->New弹出如下对话框:在File name中输入文件名,注意扩展名必须是“.s”(表示源文件是汇编语言),同时把下面的几个勾勾打上!单击确定出现如下界面:注意:标题为watchReg.mcp的窗口为工程控制窗口,不要关闭!!标题为watchReg.s的窗口为我们要进行汇编语言源程序编辑的窗口;4、输入源代码:点击工程窗口用红线标出的按钮进行编译链接,注意观察弹出窗口中的内容(读懂!)5、调试(本次试验均在模拟器中调试)点击红色标出的“臭虫”按钮,转入调试窗口:先不急于调试!调试设置:选中该菜单项,弹出窗口:选中途中所示(表示在软件仿真调试),选中Configure,弹出窗口:在Processor中选择ARM920T,其余保持不变,OK再OK返回。
实验一 ADS集成开发环境及汇编语言指令实验
1.1 实验目的
1.熟悉ADS1.2 软件开发环境;
2.理解ARM920T 汇编指令的用法,并能编写简单的汇编程序;
3.理解常用的ARM伪指令和伪操作的功能和使用。
1.2 实验内容
1.使用LDR 指令读取0x30003100 上的数据,将数据加1,若结果小于10,则使用STR 指令把结果写回原地址,若结果大于等于10,则把0 写回原地址。
2.使用ADS1.2 软件仿真,单步,全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视R0,R1 的值,打开存储器观察窗口(Memory)监视0x30003100 上的值。
3.使用数据定义伪操作定义两个内存数据块,通过汇编指令将源数据块的内容复制到目的数据块,并对程序运行时相关寄存器、内存中的数据进行跟踪。
1.3 预备知识
1.ARM 指令系统内容;
2.ADS1.2 工程编辑和AXD 调试的内容。
1.4 实验设备
硬件:PC 机一台。
软件:Windows XP系统,ADS1.2 集成开发环境。
1.5 实验步骤
1.启动ADS1.2,使用ARM Executable Image 工程模板建立一个工程arm1.mcp。
2.建立汇编源文件arm1.s,编写实验程序(见1.6实验参考程序1),然后添加到工程中。
3.设置工程连接地址RO Base 为0x30000000,RW Base 为0x30003000,设置options 中的调试口地址Image entry point 为0x30000000。
设置方法:选择Edit->DebugRel Settings,打开下图所示的窗口:
图1.1 DebugRel Settings窗口
在左侧树形目录中选择“ARM Linker”,分别在右侧Output标签页和Option标签页中设置RO Base、RW Base和Image entry point。
4.编译连接工程,选择Project|Debug,启动AXD 进行软件仿真调试。
5.在调试工具AXD中,通过Processor Views菜单中的选项或对应的工具栏按钮,打开寄存器窗口(Processor Registers),选择Current 项监视R0,R1 的值,打开存储器观察窗口(Memory),设置观察地址为0x30003100,显示方式Size 为32Bit,监视0x30003100 地址上的值。
说明:在Memory 窗口中点击鼠标右键,Size 项中选择显示格式为8bit,16bit,32bit,如图1.2 所示。
图1.2 Memory 窗口显示格式
设置寄存器显示格式与之类似。
使用鼠标左键选择某一个寄存器,然后点击鼠标右键,Format 项中选择显示格式Hex,Decimal 等等。
如图1.3 所示。
图1.3 设置寄存器显示格式
6.可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行。
这
时观察寄存器和0x30003100 地址中值的变化情况。
运行结果如图1.4 所示。
图1.3 实验1 结果
7.参照以上步骤,对实验程序2进行编译、调试
1)考察sourceData数据段、destinationData数据段、代码段在内存中的地址分配情况;2)观察destinationData数据段内存区域中值的变化情况,分析程序所实现的功能和运行过程;
3)观察程序中所用到的寄存器的值变化,分析它们在程序中的用途。
1.6 实验参考程序
1、实验程序1清单:
COUNT EQU 0x30003100
AREA Example1,CODE,READONLY
ENTRY
CODE32
START LDR R1,=COUNT
MOV R0,#0
STR R0,[R1]
LOOP LDR R1,=COUNT
LDR R0,[R1]
ADD R0,R0,#1
CMP R0,#10
MOVHS R0,#0
STR R0,[R1]
B LOOP
END
2、实验程序2清单
AREA sourceData,DATA,READONLY
str DCD 1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,21,22,23,24
destinationData,DATA,READWRITE
AREA
dst SPACE 80
blockCopy,CODE,READONLY
AREA
num E QU 20
RegList RLIST {R4-R11} ENTRY
START
LDR
R0,=str
R1,=dst
LDR
R2,#num
MOV
MOVS R3,R2,LSR #3
copyWords BEQ
octCopy
R0!,RegList LDMIA
STMIA
R1!,RegList
R3,R3,#1
SUBS
octCopy
BNE
copyWords
R2,R2,#7
ANDS
stop
BEQ
wordCopy
R3,[R0],#4
LDR
R3,[R1],#4
STR
R2,R2,#1
SUBS
BNE
wordCopy stop
R0,#0x18
MOV
R1,=0x20026 LDR
0x123456
SWI
END。