JX44B0 ARM嵌入式教学实验系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章J X44B0A R M嵌入式教学实验系统
3.1JX44B0 ARM嵌入式教学实验系统介绍
JX44B0教学实验系统是一套硬件、软件集成的,基于ARM的完整的教学实验系统,系统包含丰富的硬件资源、完善而优越的调试手段和详尽的教学实验教程。

JX44B0目标处理器采用三星的S3C44B0X处理器,开发平台采用武汉创维特信息技术有限公司的ADT集成开发环境(以下简称ADT IDE),嵌入式开发的所有过程都可以在该环境下完成。

1. 使用方便:ADT IDE采用了一个通用的界面,可以非常方便的进行工程管理、编辑、编译、链接和调试,使得我们可以很快地进入到具体的实验中;
2. 接口丰富:含多种外设接口:LED输出、7段码输出、LCD输出、触摸屏、4×4键盘输入、外部中断输入、串行接口、A/D转换接口、步进电机接口、网络接口、USB接口、标准计算机打印口(并口)、I2C总线接口、IIS数字音频接口、IDE接口、CF卡接口、GPRS 模块和GPS模块等;
3. 扩充性好:采用模块化设计,便于硬件升级换代,并提供丰富的扩展槽以便扩充外部接口;
4. 实验丰富:本系统专门为嵌入式系统教学进行了定制,精心设计了多个实验,包括嵌入式软件开发基础实验、基本接口实验、Bootloader及操作系统实验和高级接口实验,内容由浅入深,涵盖面广,适合不同学习层次人员的学习和教学,并可以方便地进行实验扩展。

3.2JX44B0教学实验系统组成
1. ADT IDE集成开发环境;
2. ADT Emulator for ARM JTAG仿真器;
3. JX44B0系列教学实验箱:JX44B0-1B、JX44B0-1、JX44B0-2、JX44B0-3;
4. 各种连接线、电源适配器以及实验指导书等;
5. 教学实验系统配套光盘。

JX44B0 ARM教学实验系统基本实验模型如图3-1所示。

图3-1实验模型示意图
3.2.1 ADT IDE集成开发环境
1. ADT IDE简介
ADT IDE是一套应用于嵌入式软件开发的新一代集成开发环境,它提供高效、清晰、可视化的嵌入式软件开发平台,包括一整套完备的面向嵌入式系统的开发和调试工具:编辑器、编译器、链接器、工程管理器以及调试器等。

ADT IDE运行于Windows NT、98、2000及XP,采用类Visual Stdio界面风格,其界面如图3-2所示。

图3-2 ADT IDE集成开发环境软件界面图
2. ADT IDE主要特性
◆中文、英文版本支持
◆操作系统支持
★支持Vxworks,uCLinux,Linux,Nucleus等操作系统的开发和调试。

◆可视化的源码编辑和工程管理功能:
★界面友好,使用方便:类似MS Visual Studio的用户界面,支持打印功能,支持文件内查找功能和Find in Files功能。

★工程管理器:ADT IDE提供图形化的工程管理工具,以project为单位为用户提供应用源程序的文件组织和管理,管理用户的应用程序,编译链接选项以及调试参数等。

★源码编辑器:支持标准的文本编辑功能,支持C语言、汇编语言语法高亮显示。

★辅助编辑工具:提供多剪贴板工具、代码模板工具、头文件和源文件切换工具、注释工具、符号配对书写工具等多种辅助编辑工具。

◆交叉编译功能:
★支持开发语言:ANSI C、Embedded C++、汇编语言。

★编译工具:使用著名优秀自由软件GNU的GCC交叉编译工具,并经过优化和严格测试,支持C语言、汇编语言等。

★编译参数设置:完全图形界面方式的编译参数设置,提供可视化的设置功能。

支持工程级/文件目录级/文件级编译参数设置。

◆强大的源代码级调试功能:
★图形和命令行两种调试方式。

★断点功能。

支持软件断点和硬件断点,实现断点设置、断点屏蔽、断点取消、断点列表。

★程序的单步执行。

★变量监视功能。

随程序运行同步更新变量,即时修改变量值,可设置自动刷新方式、十进制/十六进制显示。

★ARM各种模式的寄存器即时查看与修改。

当前模式显示,寄存器值修改时红色突显。

★存储器查看与修改。

可设置自动刷新方式、字节/双字节/四字节显示、大/小端方式显示,存储器值修改时红色突显。

★函数堆栈显示。

可设置自动刷新方式、十进制/十六进制显示、参数值显示,参数类型显示。

★支持源程序、反汇编程序和混合窗口显示,支持ARM/THUMB方式显示。

★具有与MS Visual Studio类似的调试菜单功能:Go、Stop、Reset、Step into、Step over、Step out、Run to Cursor等。

★支持程序下载。

★板上寄存器(On Board Register)的查看和修改。

可以查看支持CPU的所有板上寄存器的具体意义、当前值、各个位的意义;可设置自动刷新方式、二进制/十进制/十六进制显示、大/小端方式显示,支持十进制/十六进制方式修改寄存器值,寄存器值修改时红色突显。

★存储区下载和上载功能。

★ 工程级调试参数的保存。

★ 提供Simulator 模拟器,支持脱机模拟调试。

★ 集成elf to bin 及反汇编常用工具。

★ 丰富的例程程序。

◆ FLASH Memory 在线编程。

★ 支持对多种FLASH 芯片的实时检查、擦除、编程、校验等操作。

★ 支持8/16/32位Flash 访问宽度,支持多片Flash 同时编程,无需劈分文件。

★ 高速编程,编程速度约为80Kbytes/S.
★ 提供统一的Flash 编程接口,用户可灵活地添加配置Flash 编程方案。

3.2.2 ADT Emulator for ARM JTAG 仿真器
1. 支持ADT IDE For ARM 集成开发环境;完全兼容ADS 集成开发环境;
2. 支持GDB 调试(Linux/windows/uC-OS 等操作系统下);
3. 支持ARM 系列CPU 内核:
ARM7、ARM7DI 、ARM7TDMI 、ARM7TDMI-S 、ARM710T 、ARM720T 、ARM726FZ 、ARM9、 ARM9TDMI 、ARM940T 、ARM920T 、ARM922T 、ARM9E-S 、ARM966E-S 、Intel Xscale 、Securcore ……
4. 支持Windows 98/NT/2000/XP ;
5. 支持外接电源供电,2.5V/3V/5V 兼容电平接口;
6. 支持标准的14/20针JTAG 接口;
7. 支持汇编级调试,支持ARM 、THUMB 及指令集交叉调试;
8. 下载速度大于120Kbytes/S ; 9. 支持标准C 语言程序调试;
10. 非插入式调试,不占用板上任何资源; 11. 支持Flash 在线编程;
12. 采用标准并口技术,无须选择ECP 、EPP ; 13. LED 指示运行状态;
14. 通过软件升级方式支持更高版本的ARM 核处理器。

15. 支持硬件断点与不限个数的软件断点。

3.2.3 JX44B0系列教学实验箱
JX44B0系列教学实验箱是实验系统的主要硬件平台,它包含一系列嵌入式教学实验方案:
1. JX44B0-1B
教学实验箱:硬件系统包含了嵌入式
图3-4 JX44B0-1B 教学实验箱
图3-3 ADT Emulator for ARM JTAG 仿真器
系统开发应用所需的大部分接口,如:以太网、USB口、音频接口、LCD以及触摸屏、键盘。

是一款经济型的ARM教学实验平台。

2. JX44B0-1/JX44B0-2/JX44B0-3教学实验箱:除了包含JX44B0-1B的所有硬件接口以外,JX44B0-1另外添加了多个高级接口:如CF卡接口、IDE接口、标准计算机打印口等;JX44B0-2在JX44B0-1的基础上添加GPRS无线通讯模块,可以进行通话和短信等高级实验;JX44B0-3在JX44B0-2的基础上又添加了GPS全球定位模块。


JX44B0-1/JX44B0-2/JX44B0-3采用模块化设计,可任意选配和升级高级模块(ARM核心板、GPRS模块和GPS模块)。

JX44B0-3所包含的接口如下图所示:
图3-5 JX44B0-3教学实验箱
3.3 JX44B0教学实验系统硬件资源
3.3.1 JX44B0教学实验系统硬件模块
JX44B0教学实验系统的硬件部分包括:基本模块、调试模块、通讯模块、人机交互模块、A/D模块、步进电机驱动模块、IDE/CF接口模块、GPRS模块、GPS模块。

1. 基本模块:
✧SDRAM存储器。

主板包含8MB SDRAM。

由一片16位数据宽度的SDRAM存储器组成,地址从0x0c000000~0x0c800000。

S3C44B0X微处理器内部集成了8KB RAM,它既可作为RAM 用,也可以作为高速缓存即cache使用,我们通常将它配置为Cache以提高系统性能;
✧FLASH存储器:主板包含4MB FLASH存储器,内部存放启动代码Bootloader、uCLinux 内核映象、uC/OS-II演示程序代码、IIS测试声音文件等。

其数据宽度为16位,地址从:0x00000000~0x00400000;
✧串行通讯口:主板包含2个UART接口:UART0和UART1,UART0在Bootloader、演示程序、uCLinux和多个实验中用于人机交互(通过超级终端)以及文件传输;
✧IIS录放音接口:主板有一个可以基于DMA操作的IIS总线接口,可进行立体声录放音;
✧I2C总线接口:与24C08芯片接口,可以存放一些固定的配置数据;
✧4个LED跑马灯:可独立软件编程;
✧6个七段数码管:6个共阳七段数码管;
✧外部中断测试:一个按键用于外部中断0的测试;
✧复位按键:按键用于CPU复位;
✧两通道通用DMA,两通道具有外部请求引脚的外设DMA;
✧五个PWM定时器和一个内部定时器;
✧看门狗定时器;
✧71个通用I/O端口,8个外部中断源;
✧8通道10-bit ADC。

2. 调试模块:
✧标准JTAG接口:14针标准JTAG接口,该接口用于高速仿真调试;
✧简易JTAG调试接口:直连标准计算机并口,调试接口,该接口用于简易仿真调试。

3. 通讯模块:
✧以太网通讯接口:10M以太网卡;
✧USB接口:遵循USB1.1标准;
✧标准计算机打印口(并口)。

4. 人机交互模块:
✧显示器/触摸屏:5.7英寸,STN 256色LCD显示器,320×240的分辨率;
✧按键:4X4按键。

5. A/D模块:
✧8通道10bit A/D模块。

6. 步进电机驱动模块:
✧两相步进电机驱动。

7. IDE/CF接口模块:
✧标准IDE硬盘接口;
✧标准CF卡接口。

8. GPRS模块:
✧GPRS无线通讯模块。

9. GPS模块:
✧GPS全球定位系统模块。

3.3.2 JX44B0教学实验系统硬件资源分配
1. 地址空间分配以及片选信号定义
表3-1 JX44B0地址空间分配表
2. 外部中断分配
表3-2 JX44B0外部中断分配表
3. A/D端口分配
表3-3 JX44B0 A/D端口分配表
存储空间的定制是嵌入式系统开发的一个特色,我们可以根据自己的需要自行规定内存的使用。

在本教学实验系统中,SDRAM地址范围从0x0c000000–0x0c800000共8Mbytes。


不同的程序中,SDRAM空间范围被分配成不同的区域用于不同的用途,下表是实验测试程序所用的一个默认分配方式,它的代码空间和数据空间分配如下:
表3-4 BOOTLOADER程序SDRAM空间分配表
表3-5 用户程序SDRAM空间分配表
FLASH地址范围从0x00000000–0x00400000共4Mbytes。

其空间组织如下表:
表3-6 FLASH空间分配表
3.4 JX44B0教学实验系统的软件安装
运行ADT IDE安装光盘中的setup程序,该程序位于光盘setup目录下。

按照提示操作即可。

安装序列号位于ADT1000仿真器的背面。

注意事项:
1. 安装路径可以任意指定。

由于GNU编译器不识别包含空格的路径,所以设定安装路
径时不能指定包含空格的路径,如:“C:\Program Files\adt1000”就是一个非法路径;
同时在以后建立的工程,或者文件,以及需要链接的库,所在的完整路径中都不能包含空格,否则将会导致编译失败;
2. 安装完毕后,需要重新启动计算机,使一些默认的设置以及环境生效;
3. 如果是WinNT、Win2000或WinXP操作系统,安装软件时需要以管理员
(Administrator)的身份进行操作,调试时也需要使用者有管理员权限。

3.5 JX44B0教学实验系统编程实例
下面通过一个简单的例子来介绍ADT IDE的使用方法,关于ADT IDE的更加详细的使用说明请参考“附录B ANSI C和GCC库文件的使用及设置”以及“ADT IDE用户手册”。

3.5.1 工程文件的建立
1)安装完ADT IDE并重新启动计算机后,就可以开始创建工程。

运行ADT IDE,出现如下的界面:
图3-6 ADT IDE运行界面
2)创建一个新工程;
选择File菜单的New,出现一个新建对话框,如图3-7。

我们可以通过该对话框建立新文件,建立新工程,以及新的工作区,分别对应于该对话框的第1、2、3子框。

此时我们选择第二个页面创建新工程。

在该页面中“Target Device”指出了可选的目标连接设备:SoftSim、ARM7LPT、ARM9LPT,分别表示使用软件仿真模拟、使用并口调试基于ARM7核的目标系统、使用并口调试基于ARM9核的目标系统。

该目标平台使用的CPU是S3C44B0X,它使用ARM7内核,所以此处选择ARM7LPT。

图3-7 ADT IDE创建工程的对话框
如上图所示,在“Projcet Name”位置输入工程的名称,在“Location”中修改该工程的位置,最后在“Projcet Type”中选择“EXEC”,表示该工程要生成一个可执行代码。

点击“OK”,按照上图的输入,将在“F:\Examples\LedDemo”下建立一个叫LedDemo的工程。

注意事项:
1. 可以创建一个工程来生成库,以便其他工程可以调用。

要建立一个库可以通过在“Project Type”
中选择“LIB”实现;
2. 在创建工程前已经打开了工作区,最下面的选项“Add to current workspace”将会变成使能状
态;如果选择该选项,创建的工程将被加入到当前已经打开的工作区中;
3. 与软件安装一样,工程的保存路径不能包含空格。

3)建立一个新的代码文件,输入实验代码并存盘;
选择File菜单的New,并选择第一个子页面,如图3-8。

在右边显示了4种常见的
图3-8 ADT IDE创建文件对话框
文件类型:C源代码、C头文件、汇编代码、文本文件。

如果创建前三种类型的文件,IDE 会在输入的文件名“Filename”后分别添加后缀“.c”、“.s”、“.h”,可以在创建文件时加入到工程中,即在“Add to project”选项前打“√”,如上图;点击“OK”,并在编辑窗口输入实验代码。

实验代码如下:
void Main(void) {
int i;
for(;;) {
*((unsigned char*)0x02000000) = 0xFF; /* 关闭LED */
for(i = 100000; i !=0; i--); /* 延时 */
*((unsigned char*)0x02000000) = 0x0F; /* 打开LED */
for(i = 100000; i !=0; i--); /* 延时 */
}
}
注意事项:
1. GNU编译工具根据文件名的后缀来选择编译器,并且后缀有大小写区分,对于汇编和C代码的后
缀分别是:“.s”和“.c”;
2. 在“Filename”输入栏,无需输入后缀,IDE会根据不同的文件类型自动添加后缀;
3. 在创建新文件前,如果已经打开工作区,且工作区中包含多个工程,则可以在“Add to project”
下拉列表框中选择需要加入的工程;
4. 在上述实例代码中,只简单的实现了对发光二极管的控制,实际上在具体的嵌入式系统中,应用
程序执行前还有一个初始化过程,用于进行硬件初始化和软件环境的配置,本实验系统的初始化工作已经由Bootloader完成,有关Bootloader的细节请参见“Bootloader编写实验”部分。

4)将输入的文件添加到工程中;
如果在上一步创建文件时选中了“Add to project”,可以跳过该步骤,如果当时没有选择该选项,则需要将文件手工添加到工程中,方法如下:
选择菜单“Project”的“Add to project”,可以看到两个子菜单,选择“Add files to LedDemo”(此处的LedDemo为当前的工程名),并通过文件选择对话框将刚才输入的文件加入到工程中即可。

3.5.2 工程环境配置
由于嵌入式系统的可定制性,使得嵌入式系统软件的设置变得比较复杂,通过设置我们可以明确地定义软件的代码组织、数据组织、规定程序入口等。

选择菜单“Project”的“Setting”子菜单,如图3-9。

这是一个包含多页的对话框,我们可以对工程的各个部分进行相应的设置,操作步骤如下:
图3-9 ADT IDE工程设置对话框
1)General 设置
General页包括调试器的选择以及恢复缺省配置参数功能,如图3-9所示。

在Debugger device下拉式列表中选择调试设备。

目前提供三个版本的调试设备,软件仿真版本(SoftSim)、并口ARM7调试设备ARM7LPT以及并口ARM9调试设备ARM9LPT。

对于具体硬件调试设备还需要进一步选择通讯端口。

通过按钮Reset config可以将当前选择的配置方案复位到缺省配置。

如果在创建工程时,在“Target devices”中选择的是“ARM7LPT”并且使用LPT1则可以跳过该步骤。

如果没有选择“ARM7LPT”或者使用的不是LPT1都可以在此进行设置。

本次
实验中我们使用ADT1000仿真器来进行调试通讯,需要选择“ARM7LPT”。

在“General”页的“Debugger device”的下拉列表框中选择“ARM7LPT”,同时选择使用的并口号,通常我们使用“LPT1”。

2)Debug 设置
A.“Download case”选项为用户提供了两种下载调试文件的途径。

“Build Case/编译设置方案”和“Customized Case/客户配置方案”。

在前一种方案中,集成调试环境将选择当前工程的输出文件(.elf文件)为程序下载文件和调试信息文件,此时,“Customized case”以及“Endian”中的选项均不可设置。

如果选择客户配置方案,则以上选项均可以由用户执行设置,而与当前工程无关。

图3-10 ADT IDE工程设置Debug页对话框
B.“Download verify”选项用于设置程序下载到目标板后是否进行校验
C.“Downloaded file”选项用于设置下载到目标板的程序文件名。

它只有在
“Download case”设置为“Customized Case/客户配置方案”时可编辑
D.“To address”选项用于设置程序下载到的目标板地址,支持十进制和十六进制编辑,如“123456”或“0x02000000”。

它只有在“Download case”设置为Customized Case/客户配置方案时可以编辑。

E.“Endian”用于设置处理器当前所支持的存储区字节排列方式是Big Endian还是Little Endian。

它只有在“Download case”设置为“Customized Case/客户配置方案”时可以编辑。

F.“Action after target connected”选项组用于设置系统连接目标板后的动作,我们支持三种方式的动作(本次实验可以选择“None”):
✧“None”选项表示连接目标板后系统无任何行为。

✧设置“Auto download/自动下载”选项将在连接目标板后自动下载设定的下载
文件。

✧“Command script/命令脚本”选项用于选取在系统连接目标板后将根据命令
脚本文件自动完成一系列命令。

注意事项:
1. “Downloaded file”中设置的文件路径可设置为绝对路径和相对路径,当设置为相对路径时,
它是相对于当前工程文件所在的路径;
2. “Downloaded file”中支持$(TargetName)宏,$(TargetName)缺省由工程名称加上扩展名.elf(可
执行工程)或者.o(库工程)组成;
3. 在设置时可以选择使用命令脚本文件,该文件由一系列调试命令组成,可以使用该文件来读写一
些必须配置的寄存器(如配置RAM的寄存器、清除中断、关闭中断等),用来完成目标平台的初始化,该命令脚本使用纯文本的方式,下面是该硬件实验平台的一个脚本例子:
mem.write -l 0x01e00000 0x07000000 # INTCON
mem.write -l 0x01E0000C 0xffffff07 # INTMSK
mem.write -l 0x01D30000 0x0 # WTCON
#****************************************************
#* Set memory control registers (every CS control) *
#****************************************************
#Bank0=OM[1:0], Bank1-5=8bit, Bank6-7,16BITS
mem.write -l 0x01C80000 0x02000011
mem.write -l 0x01C80004 0x700 #GCS0 ; BOOT ROM
mem.write -l 0x01C80008 0x700 #GCS1
mem.write -l 0x01C8000C 0x700 #GCS2
mem.write -l 0x01C80010 0x700 #GCS3
mem.write -l 0x01C80014 0x700 #GCS4
mem.write -l 0x01C80018 0x700 #GCS5 ;
mem.write -l 0x01C8001C 0x08800100 #GCS6 ;
mem.write -l 0x01C80020 0x00800100 #GCS7 ; NONE
#REFRESH RFEN=1, TREFMD=0, trp=3.5clk, trc=7clk, tchr=1clk,count=1579
#refcount = 2048+1-MCLK*ref_period ==2049-66*16= 993 =0x3e1
mem.write -l 0x01C80024 0xe103ac00
mem.write -l 0x01C80028 0x16000000 #SCLK power mode, BANKSIZE 8M/8M
mem.write -l 0x01C8002C 0x20000000 #MRSR6 CL=2clk
mem.write -l 0x01C80030 0x20000000 #MRSR7
脚本中可用的命令及其格式如下:
表3-7 脚本命令选项说明表
3)Compile设置
图3-11 ADT IDE工程设置Compile页对话框
编译器的参数可以通过工程配置对话框的Compile页进行修改,如图3-11所示。

该页中的命令行参数用于GNU C编译器和C++编译器,所有设置显示在Compile Options的编辑框中,工程在初始创建时,系统提供缺省设置参数。

在Compile页中,Category组合框中又包含几类编译器选项,通过选择该组合框可以切换到各类选项。

一般情况下我们只需要在General子页中设置头文件的包含路径,本次实验无需修改默认的配置。

4)Assemble设置
GNU Tools for ARM编译器的Assemble属性页如图3-12所示,该属性页中的命令行开关选项用于汇编器,用户的所有设置显示在Assemble Options的编辑框中,工程在初始创建时,系统提供缺省设置参数。

在Assemble页中,Category组合框中又包含几类汇编器选
图3-12 ADT IDE工程设置Assemble页对话框
项,通过选择该组合框可以切换到各类选项。

同样在一般情况下我们只需要在General子页中设置头文件的包含路径,本次实验没有汇编代码,所以也无需修改默认的配置。

注意事项:
1. 可以手工输入、修改开关选项,但必须注意保留每个Option之间的空格,并且不得改变和删除
$(SrcFile)和$(ObjFile)宏,它们分别代表源文件和目标文件名称。

系统在执行编译命令行时,将自
动替换这两个宏。

2. 命令行开关选项中所涉及的所有相对目录,都是相对工程文件(apj文件)所在的目录。

5)Link设置
链接器的参数可以通过工程配置对话框的Link页进行修改,如图3-13所示。

该页中的命令行参数用于GNU链接器,用户的所有设置显示在Link Options的编辑框中,工程在初始创建时,系统提供缺省设置参数。

在Link页中,Category组合框中又包含几类链接器选项,通过选择该组合框可以切换到各类选项。

这一项设置中的Image Entry子页以及库文件的包含路径都需要仔细设置,下面将具体说明。

图3-13 ADT IDE工程设置Link页对话框
注意事项:
1. 用户可以手工输入、修改开关选项,但必须注意保留每个Option之间的空格,并且不得改变和删
除$(ObjFiles)宏,它分别代表目标文件。

系统在执行编译命令行时,将自动替换这个宏。

2. 命令行开关选项中所涉及的所有相对目录,都是相对工程文件(apj文件)所在的目录。

3. $(TargetName)缺省由工程名称加上扩展名.elf(可执行工程)或者.o(库工程)组成。

A)General子选项:General类选项如下图所示。

图3-14 ADT IDE工程设置Link页General类对话框
下表中列出了该类包含的选项及其说明:
表3-8 general类选项说明表
链接定位信息描述脚本文件在嵌入式系统中非常重要,它用于规定代码的组织,有关链接定位信息描述脚本文件的详细描述请参见“附录A 链接定位脚本”。

本次实验的脚本文件如下,将该文件保存在工程所在的目录下,取名为ldscript,并在“Link Script”中输入“.\ldscript”如上图(可以将脚本文件以其他名称保存在其他位置,但“Link Script”中的输入要与之保持一致)。

SECTIONS
{
. = 0x0c000008;
.text : { *(.text) }
.data : { *(.data) }
.rodata : { *(.rodata) }
.bss : { *(.bss) }
__EH_FRAME_BEGIN__ = .;
__EH_FRAME_END__ = .;
PROVIDE (__stack = .);
.debug_info 0 : { *(.debug_info) }
.debug_line 0 : { *(.debug_line) }
.debug_abbrev 0 : { *(.debug_abbrev)}
.debug_frame 0 : { *(.debug_frame) }
}
注意事项:
1. Output选项可以使用$(TargetName)宏,它缺省由工程名称加上扩展名.elf(可执行工程)或者.o(库工程)组成;
2. 当前工程文件(apj文件)所在目录被默认为是当前路径。

B)Image entry options类选项:Image entry options类选项如下图所示。

图3-15 ADT IDE工程设置Link页Image Entry类对话框
下表中列出了该类包含的选项及其说明:
表3-9 Image entry options类选项说明表
本次实验只需要Select entry file列表框中点击“LedDemo”选中它即可。

注意事项:
1. Image Entry Options 选项,只在可执行工程中需要设置,库工程时不需设置;
2. 在链接器链接目标文件时,如果没有设置入口点参数(-e参数),目标文件集合中的第一个目标文件的第一个执行指令,被链接器认为是可执行文件的入口点。

通常,用户需要通过select entry file指定第一个目标文件。

C)Included library and library modules类选项:Included library and library modules类选项如下图所示。

图3-16 ADT IDE工程设置Link页Library类对话框
下表中列出了该类包含的选项及其说明:
表3-10 Included library and library modules类选项说明表
D)Library search path类选项:Library search path类选项如下图所示。

图3-17 ADT IDE工程设置Link页Library Search Path类对话框
下表中列出了该类包含的选项及其说明:
表3-11 Library search path类选项说明表
注意事项:
1. 库文件的搜索路径包括当前工程路径,以及由Library search path类选项设置的路径。

6) Directory”设置
Directory页可以添加补充的源文件目录,在调试程序时,如果在本工程中没有找到对应源代码,则会继续查找在此处设置的路径。

如下图所示。

图3-18 ADT IDE工程设置Directory页对话框
3.5.3 工程编译
编译、汇编和链接操作可以通过以下三种方式完成:
1. 通过点击主菜单的Build子菜单完成;
2. 通过编译(Build)工具栏完成;
3. 通过在工作区窗口的工程节点和文件节点的右键菜单完成。

3.5.4 工程调试
1. 首先需要连接调试器, 连接调试器包括调试器的硬件和软件连接,调试器连接成功后自动进入调试状态。

通过菜单“Debug”->“Remote connect”实现。

2. 下载程序
正确连接目标系统后,就可以下载可执行目标文件到目标系统存储器中。

通过菜单“Debug”->“Download”实现。

3. 调试和执行程序
ADT IDE有许多控制程序执行的功能,下面将分别予以说明:
图3-19 ADT IDE调试界面
1) 运行程序。

运行程序必须在调试状态的停止子状态进行,通过点击“Debug/调试 > Go/运行”菜单,或点击“调试(Debug)工具栏”的Go按钮。

2) 停止运行程序。

在运行时,通过点击“Debug/调试 > Stop/停止”菜单项,或“调试(Debug)工具栏”的Stop按钮。

3)复位目标板。

不管是在停止子状态还是运行子状态,都可以通过点击“Debug/调试 > Reset/复位”菜单项或调试工具栏的Reset按钮,复位目标板。

复位后目标板程序计数器(PC)指向0地址,但是系统并没有进行初始化,只是改变了程序运行的指针。

4) 重置目标板。

不管是在停止子状态还是运行子状态,都可以通过点击“Debug/调试 > Restart/重置”菜单项,或调试工具栏的Restart按钮,重置目标板。

重置后目标板程序计数器(PC)将指向当前程序下载地址。

5) 单步执行程序。

包括Step into、Step over和Step out三种方式。

6) 运行到光标。

将光标设置在有效代码行处(源代码编辑窗口或者反汇编窗口均可),然后点击“Debug/调试 > Run To Cursor/运行到光标”,或者按快捷键Ctrl+F10,或者点击调试(Debug)工具栏的Run To Cursor按钮,系统将运行直到PC指针到达光标所指地址处停止,如果不能运行到光标处,程序将一直运行,直到有断点出现或者用户停止运行程序(复位目标板和重置目标板也将停止运行程序)。

7) 断点
ADT IDE的调试器可以在源程序、反汇编程序、以及源程序/汇编程序混合模式窗口中
设置、删除和使能断点。

相关文档
最新文档