嵌入式实验指导书(计算机专业适用)08版_第1页
嵌入式实验指导书(计算机专业适用)08版_第2页
嵌入式实验指导书(计算机专业适用)08版_第3页
嵌入式实验指导书(计算机专业适用)08版_第4页
嵌入式实验指导书(计算机专业适用)08版_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机专业适用嵌 入 式 系 统实验指导书信息科学与工程学院2008年4月目 录目 录2第一章 嵌入式系统开发与应用概述31.1 嵌入式系统开发与应用31.2 基于ARM的嵌入式开发环境概述3第二章 Embest ARM实验教学系统52.1 教学系统介绍52.2 教学系统安装102.3 教学系统的硬件电路112.4 集成开发环境使用说明12第三章 嵌入式软件开发基础实验263.1 ARM汇编指令实验一263.2 C语言程序实验一32第四章 基本接口实验364.1 存储器实验364.2 I/O 接口实验464.3 数码管显示实验53第五章 人机接口实验575.1 液晶显示实验575.2 5x4

2、键盘控制实验705.3 触摸屏控制实验74第六章 实时操作系统实验836.1 uC/OS-II应用实验83第一章 嵌入式系统开发与应用概述1.1 嵌入式系统开发与应用以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。就我们周围的日常生活用品而言,各种电子手表、电话、手机、PDA、洗衣机、电视机、电饭锅、微波炉、空调器都有嵌入式系统的存在,如果说我们生活在一个充满嵌入

3、式的世界,是毫不夸张的。据统计,一般家用汽车的嵌入式计算机在24个以上,豪华汽车的在60个以上。ARM系列处理器核是英国先进RISC机器公司(Advanced RISC Machines,ARM)的产品。ARM公司自成立以来,一直以IP(Intelligence Property)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,它提供一些高性能、低功耗、低成本和高可靠性的RISC处理器核、外围部件和系统级芯片的应用解决设计方案。ARM处理器核具有低功耗、低成本等卓越性能和显著优点,越来越多的芯片厂商早已看好ARM的前景。目前非常流行的ARM芯核有ARM7TDMI,AR

4、M720T,ARM9TDMI,ARM920T,XScale等。此外,ARM芯片还获得了许多实时操作系统(Real Time Operating System)供应商的支持,比较知名的有:Windows CE、uCLinux、VxWorks、uC/OS等。ARM公司具有完整的产业链,ARM的全球合作伙伴主要为半导体和系统伙伴、操作系统伙伴、开发工具伙伴、应用伙伴、ARM技术共享计划 (ATAP),ARM的紧密合作伙伴已发展为122家半导体和系统合作伙伴、50家操作系统合作伙伴,35家技术共享合作伙伴, 并在2002年在上海成立中国全资子公司。早在1999年,ARM就已突破1.5亿个,市场份额超过

5、了50%,而在最新的市场调查表明,在2001年度里,ARM占据了整个32、64位嵌入式微处理器市场的75%,在2002年度里,占据了整个32、64位嵌入式微处理器市场的79.5%,全世界已使用了20多亿个ARM核。ARM已经成为业界的龙头老大,“每个人口袋中装着ARM”, 是毫不夸张的。因为几乎所有的手机、移动设备、PDA几乎都是用具有ARM核的系统芯片开发的。1.2 基于ARM的嵌入式开发环境概述1.2.1 交叉开发环境作为嵌入式系统应用的ARM处理器,其应用软件的开发属跨平台开发,因此需要一个交叉开发环境。交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中进行运行调试

6、的开发方式。用来开发的通用计算机可以选用比较常见的PC机、工作站等,运行通用的Windows或Unix操作系统。开发计算机一般称宿主机,嵌入式设备称为目标机,在宿主机上编译好的程序,下载到目标机上运行,交叉开发环境提供调试工具对目标机上运行的程序进行调试。交叉开发环境一般由运行于宿主机上的交叉开发软件(最少必须包含编译调试模块)、宿主机到目标机的调试通道组成。运行于宿主机上的交叉开发软件最少必须包含编译调试模块,其编译器为交叉编译器。作为宿主机的一般为基于x86体系的桌上型计算机,而编译出的代码必须在ARM体系结构的目标机上运行,这就是所谓的交叉编译了。在宿主机上编译好目标代码后,通过宿主机到

7、目标机的调试通道将代码下载到目标机,然后由运行于宿主机的调试软件控制代码在目标机上运行调试。为了方便调试开发,交叉开发软件一般为一个整合编辑、编译汇编链接、调试、工程管理及函数库等功能模块的集成开发环境IDE(Integrated Development Environment)。 1.2.2 模拟开发环境模拟开发环境建立在交叉开发环境基础之上,是对交叉开发环境的补充。这时,除了宿主机和目标机之外,还需要提供一个在宿主机上模拟目标机的环境,使得开发好的程序直接在这个环境里运行调试。软件模拟不可能完全代替真正的硬件环境,这种模拟调试只能作为一种初步调试,主要是用作用户程序的模拟运行,用来检查语法

8、、程序的结构等简单错误,用户最终还必须在真实的硬件环境中实际运行调试,完成整个应用的开发。1.2.3 评估电路板评估电路板,也称作开发板,一般用来作为开发者学习板、实验板,可以作为应用目标板出来之前的软件测试、硬件调试的电路板。尤其是对应用系统的功能没有完全确定、初步进行嵌入式开发且没有相关开发经验的非常重要。开发评估电路板并不是ARM应用开发必须的,对于有经验的工程师完全可以自行独立设计自己的应用电路板和根据开发需要设计实验板。选购合适于自己实际应用的开发板可以加快开发进度,可以减少自行设计开发的工作量。1.2.4 嵌入式操作系统很多初学者认为嵌入式开发必须采用嵌入式操作系统。实际上,一个嵌

9、入式应用是否采用嵌入式操作系统,采用哪种嵌入式操作系统完全由项目的复杂程度、实时性要求、应用软件规模、目标板硬件资源以及产品成本等因素决定。嵌入式操作系统一般可以提供内存管理、多任务管理、外围资源管理,给应用程序设计带来很多好处,但嵌入式操作系统同时也会占用一定的系统资源,并且要在用户自己的目标板上运行起来,并基于操作系统来设计自己的应用程序,也会相应地带来很多新的问题。所以对于不太复杂的应用完全可以不用操作系统,而对于应用软件规模较大的场合,采用操作系统则可以省掉很多麻烦。一般来说一套具备最基本功能的交叉开发环境是ARM嵌入式开发必不可少的,至于嵌入式实时操作系统、评估板等其他开发工具则可以

10、根据应用软件规模和开发计划选用。第二章 Embest ARM实验教学系统2.1 教学系统介绍Embest ARM教学系统包括Embest IDE集成开发环境,Embest JTAG 仿真器,Flash编程器,Embest Arm EduKit II开发板、各种连接线、电源适配器以及实验指导书等。基本实验模型示意图如2-1所示:图 2-1 实验模型示意图2.1.1 Embest IDE集成开发环境1)Embest IDE开发环境界面如图2-2 所示图2-2 Embest IDE开发环境软件界面2)Embest IDE主要特征Embest IDE可在Windows 98、2000、NT及XP等操作

11、系统上运行,主要支持ARM系列处理器。对于ARM系列处理器,Embest IDE目前支持ARM7以及ARM9系列。Embest IDE for ARM主要特性如下:l 支持开发语言:C和汇编。l 界面友好,使用方便:类似MS Visual Studio的用户界面。l 工程管理器:图形化的工程管理工具,负责应用源程序的文件组织和管理,提供编译、链接、库文件的设置窗口,可在一个工作区中同时管理多个应用软件和库工程。l 源码编辑器:标准的文本编辑功能,支持语法关键字、关键字色彩显示等。IDE同时提供了高效的Find in Files引擎,可迅速查找定位指定的字符串信息。l 编译工具:集成著名优秀自由

12、软件GNU的GCC编译器,并经过优化和严格测试,运行在Win32环境;同时兼容ARM SDT2.51编译器,可以方便ARM SDT 及ADS 的用户在Embest IDE下编译工程代码。IDE提供了图形化的编译器开关设置界面,用户可以简单、直观、快捷地完成工程编译选项设置。编译信息的输出,条理清晰,可迅速定位产生语法错误的源文件行。l 调试器:提供对ARM AXD 调试器的支持,可以方便使用Embest JTAG 仿真器调试ARM SDT 及ADS 环境的工程代码。源码级调试,提供了图形和命令行两种调试方式,可进行断点设置、单步执行、异常处理,可查看修改内存、寄存器、变量等,可查看函数栈,可进

13、行反汇编等。支持ARM/Thumb指令调试。l 调试设备:Embest JTAG仿真器,连接到主机的通信接口可以是DB25的LPT口、USB接口或Ethernet接口,另外一端是IDC插头,连接到目标板的JTAG接口。用户可以使用Embest IDE配合Embest JTAG仿真器进行应用软件的开发,Embest IDE同时也支持一些国内外常用的Jtag Cable线。l 脱机调试:Embest IDE for ARM带ARM指令集模拟器,用户可以在PC上模拟调试ARM应用软件。l 丰富的例程:提供ADI、Atmel、Samsung、Cirrus Logic、OKI、Philips、Sharp

14、等多家公司ARM处理器的调试程序示例和使用说明。l 联机帮助:中、英文两种版本的在线帮助文档。在嵌入式软件开发时,完成设计和编码后,即开始调试程序,这是软件开发的第三步。Embest IDE的调试功能包括:l 断点功能:断点设置、断点屏蔽、断点取消、条件断点、查看断点列表。l 程序的单步执行。l 变量监视功能:随程序运行同步更新变量,变量值即时修改。l 寄存器即时查看与修改。l 提供外围寄存器编辑器,可查看编辑ARM处理器的外围寄存器定义l 存储器查看与修改,存储器内容显示格式定制。l 堆栈显示。l 同时提供图形界面操作和命令行操作方式。l 支持被调试代码的多种显示模式,能以源码的形式、汇编的

15、形式、混合的形式来显示程序。l 提供外围寄存器细节属性窗口,调试过程中可动态修改外围寄存器单元的配置l 具有与MS Visual Studio类似的调试菜单功能:Go,Stop,Reset,Step into,Step over,Step out,Run to Cursor等。l 程序的上载和下载。2.1.2 Embest JTAG仿真器JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。JTAG仿真器连接比较方便,通过现有的JTAG边界扫描口与 ARM CPU 核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而

16、这些是驻留监控软件所必需的。另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。Embest JTAG 仿真器如下图所示。 (a)Embest Emulator for ARM (b)Embest PowerICE for ARM(c)Embest UnetICE for ARM图 2-3 Embest JTAG 仿真器图Embest JTAG 仿真器目前分为三种类型,包括标准型(Embest Emulator for

17、 ARM),增强型(Embest PowerICE for ARM)和通用型(Embest UnetICE for ARM),主要区别在于下载调试的速度不同。其中Embest Emulator for ARM,Embest PowerICE for ARM根据采用打印机并口(LPTx)与主机通讯,即仿真器一端是一个DB25的接口,用于连接计算机的并行口,另外一端是20针的IDC插头,用于连接目标板。Embest UnetICE for ARM 则可以使用USB接口或Ethernet RJ45接口与主机通讯,分别使用USB线或交叉网线与主机USB或RJ45接口相连。Embest JTAG 仿真器

18、面板上面都有三只指示灯,对当前的工作状态做出指示。2.1.3 Flash编程器当用户程序编写完之后,需要把程序生成的二进制执行文件烧写到开发板的Flash存储器中观察实际运行结果。英蓓特公司提供了一套完善的Flash编程器,用户可以直接使用该编程器对开发板上的Flash进行读写(使用时需要配合前面提到的Embest JTAG 仿真器)。其运行界面如图2-4所示:图2-4 Flash编程器界面Flash编程器的主要特征:l 支持所有基于ARM7和ARM9核的处理器, 如ATMEL公司AT91系列,SAMSUNG公司S3C系列等。用户也可以通过选择自定义(USER -DEFINE),来定义编程使用

19、的CPU类型。 l 支持大多数厂家生产的FLASH芯片, 如AMD公司AM29系列,INTEL公司28系列,SST公司293949系列。英蓓特公司可免费提供新Flash 芯片型号支持。 l 支持对FLASH进行空白检查、擦除、编程、文件校验、计算校验和、保护、上载。 l 支持8位、16位和32位读写访问宽度。 l 支持Windows 98、2000、NT及XP操作系统。 2.1.4 Embest Arm EduKit II开发板Embest Arm EduKit II开发板是实验系统的主要硬件平台,它是英蓓特公司开发的一款全功能ARM开发板,基于Samsung公司的S3C44B0X处理器(AR

20、M7TDMI),资源丰富。硬件系统包含了嵌入式系统开发应用所需的大部分设备,如串口、以太网口、USB口、音频输出、LCD及TSP触摸屏、4*4的小键盘、固态硬盘、大容量的Flash和SDRAM等等。用户不仅可以在该硬件平台上完成实验系统提供的实验例子,还可以参考该平台设计自己的目标系统。该硬件平台如下图所示:图2-5 实验系统硬件平台Embest Arm EduKit II开发板的基本资源如下:l 电源:外部5V电源供电或者由USB接PC供电,电源指示LED以及500mA保险丝l 1M16bit Flashl 41M16bit SDRAMl 4Kbit IIC BUS的串行EEPROMl 2个

21、串口,其中一个为简单接口,一个为全接线接口,可跳接RS232 MODEMl 复位开关l 两个中断按钮,两个LEDl 外部IDE硬盘接口,LCD及TSP触摸屏接口l 20针JTAG接口l USB连接器,44键盘接口l 4个220PIN CPU扩展接口l 10M 以太网接口,8段数码管l MICROPHONE输入口l IIS音频信号输出口,可接双声道SPEAKERl 固态硬盘16M8bitl 320*240 带触摸功能的显示屏2.1.5 各种连接线与电源适配器实验系统除了提供以上的组件以外,还提供了各种连接时候需要的电缆线。包括直通网线,USB线,串口线,并口线和两根JTAG线(分别是20针和14

22、针接口)。实验系统还提供一个5V电源适配器(Embest Arm EduKit II实验板用)2.2 教学系统安装Embest ARM教学系统包括Embest IDE集成开发环境, Flash编程器,Embest JTAG 仿真器,Embest EduKit II开发板、各种连接线及电源适配器。其中Embest IDE和Flash编程器是属软件平台部分,其余属于硬件平台部分。本章主要介绍如何安装实验系统的软件平台、如何搭建和如何进行软件平台与硬件平台的连接。软件平台的搭建包括两个部分 1) Embest IDE集成开发环境的安装2) Embest Flash编程器的安装软件安装完毕后,请详细阅

23、读相关软件说明及软件使用手册。下面介绍如何进行软件平台和硬件平台的连接。l 实验软件平台和硬件平台的连接如图2-1所示,PC端与仿真器通过实验系统提供的并口线连接,仿真器和开发板通过一根20针的JTAG线连接。其中需要注意:1) 开发板使用5V DC电源供电,建议使用实验系统提供的变压器2) 仿真器侧面的Jtag跳线拨到20位置3) 硬件平台最好预先参照Embest EduKit II用户手册(在Embest ARM教学系统光盘中)进行基本硬件检测2.3 教学系统的硬件电路2.3.1 概述EMBEST ARM EDUKIT 教学试验平台是一款功能强大的32位的嵌入式开发板,里面采用了SAMSU

24、NG公司的以ARM7TDMI-S为内核的处理器S3C44B0X,同时可以兼容S3C2410,具有JTAG调试等功能。板上提供了一些键盘、LED和串口等一些常用的功能模块,并且具有IDE硬件接口,CF存储卡接口、以太网接口和SD卡接口等等,对用户在32位ARM嵌入式领域进行开发试验非常方便。2.3.2 功能特点 使用CPU 扩展接口,可以使用SAMSUNG公司的S3C44B0X和S3C2410; 系统核心板包括SDRAM、CPU、核心电压模块、实时时钟、系统跳线、系统时钟、 核心板接口等; SDRAM用量与CPU有关,2410采用64M,44B0采用8/16M兼容芯片为HY57V或HY57V;

25、完全自主设计的软硬件系统,可以支持JTAG仿真技术,支持ADS、SDT和IDE等集成环境开发; 具有2/4M兼容的 Nor Flash和8/16/32/64/128M兼容的Nand Flash; 两个以太网口,一个为44B0和4510专用,另外一个为MII接口的CPU专用,用到的芯片分别是CS8900A和RTL8201; 具有USB接口电路; 具有串行口2个,可以跟上位机进行通讯; 内部包含采用UDA1341TS芯片的音频电路模块,方便进行音频调试试验; 内部包含IIC器件,采用支持IIC的EEPROM-AT24C08; 显示部分包括STN/TFT兼容接口的彩色LCD、LED指示灯和6个数码管

26、; 采用变阻器形式的ADC数据采集电路; 提供实时时钟控制试验; 提供触摸屏接口电路; 44键盘,可以扩展至64键,使用芯片SD7218; 用PWM控制的蜂鸣器电路,可以发出不同频率的声音; 提供用I/O控制的跑马灯试验; 提供由MAX485控制的RS422和RS485接口电路; 提供CAN接口电路,方便组装现场总线; 具有IDE硬盘接口、CF存储卡接口、SD卡接口和PS2接口; WDT控制电路,提供SPI接口; 包含红外线接口模块; 具有采用扩展子板形式的GPRS模块电路和GPS模块电路;EMBEST ARM EDVKIT 教学试验平台主要功能模块如下:图2-13 ARM开发板功能模块2.3

27、.3 原理说明(略)2.3.4 硬件结构(略)2.4 集成开发环境使用说明2.4.1 Embest IDE主框架窗口在Windows 98/NT/2000/XP环境中运行Embest IDE for ARM(主应用程序为EmbestIDE.exe)后,即进入Embest IDE集成开发环境。Embest IDE集成开发环境主界面见下图。图2-27 Embest IDE主界面图Embest IDE集成开发环境的主框架窗口由标题栏、菜单条、工具条、工程管理窗口、源文件窗口、输出窗口和状态条等组成。标题栏显示当前打开的文件名。工程管理窗口用于显示当前打开工程的有关信息,包括工程的文件组成等内容。源文

28、件窗口用于文本编辑器进行C、汇编等源文件的编辑以及调试时的源代码执行跟踪。输出窗口输出编译信息、调试信息、命令行输入输出和输出一些查询结果信息等。主框架窗口的最底端为状态栏,用于显示关于菜单条、工具条等的简单说明信息以及文本编辑器中当前光标所在的行列号等。用户可以通过鼠标拖动,将菜单条、工具条、工程管理窗口、源文件窗口和输出窗口等随意更换顺序和位置,也可以隐藏其中的某些窗口。在调试过程中,可以根据需要打开和关闭寄存器窗口、函数栈窗口、变量窗口、存储器窗口、数据观察窗口以及反汇编窗。2.4.2 工程管理1. 工程管理介绍在Embest IDE集成开发环境中,工程是一个非常重要的概念,它是用户组织

29、一个应用的所有源文件、设置编译链接选项、生成调试信息文件和最终的目标Bin文件的一个基本结构。一个工程管理一个应用的所有源文件、库文件、其它输入文件,并根据实际情况进行相应的编译链接设置,一个工程须生成一个相对应的目录,以进行文件管理。Embest IDE工程管理提供以下功能:l 将所有源文件组成一个有机整体,实现一个具体的应用。在工程管理窗口中可方便地管理组成工程的所有源文件(见下图)。l 以工程为单位定义设置应用程序的各选项,包括目标处理器和调试设备的选择与设置,调试相关信息的配置,以及编译、汇编、链接等选项的设置等。系统提供一个专门的对话框来设置这些选项。图2-28 工程管理窗及右键菜单

30、l 提供build菜单和工具按钮,让用户轻松进行工程的编译、链接。编译、链接信息输出到输出窗口中的Build标签窗中(见下图),编译链接出现的错误,通过鼠标左键双击错误信息提示行来定位相应的源文件行。图2-29 编译链接输出子窗口l 一个应用工程编译链接后根据编译器的设置生成相应格式的调试信息文件,调试通过的程序转换成二进制格式的可执行文件后最终在目标板上运行。2. 工程的创建工程是置于工作区中管理的,因此在创建一个工程的同时,会创建一个工作区。操作过程:1) 点击菜单项File New Workspace,系统弹出一个对话框,如下图所示。图2-30 创建一个新工程2) 在Project na

31、me框中输入新建工程名,Location框中输入该工程要保存的目录路径,或点击选择要保存的目录路径。3) 点击OK按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程。3. 建立一个新的源文件点击菜单项File New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位于窗口中第一行,用户即可编辑输入源文件代码。 默认情况下,在用户编辑输入时,按C语法来进行颜色加亮显示。编辑完后,保存该文件。4. 工程中文件的加入选择Project菜单中Add To ProjectFiles 命令,或单击工程管理窗口中的相应右键菜单命令,弹出文件选择对话框,在工程目

32、录下使用CTRL键同时选择要加入的源文件:图2-31 加入源文件到工程中5. 设置活动工程在一个工作区中可以存在几个同时打开的工程,但只有一个工程处于活动状态,处于活动状态的工程才可以作为调试工程。在工作区窗口中,处于活动状态的工程,其工程图标将显示为加亮彩色。如图2-32所示。图2-32 彩色图标及右键菜单设置活动工程在工作区窗口中,选中要设置为活动状态的工程,点击鼠标右键,弹出右键菜单,选择Save as Active Project项,可将该工程设置为活动状态,如图2-32所示.2.4.3 工程基本配置选择菜单项Project Settings或快捷键Alt+F7,弹出工程设置对话框。在

33、工程设置对话框中,选择相应的配置页面可对处理器、仿真器、调试器、编译器和汇编器等作配置。如对处理器Processor设置对话框,如图2-33,其它设置类同。图2-33 处理器配置对话框2.4.4 工程的编译链接图2-54 工程build菜单和工具条完成工程的设置后,就可以对工程进行编译链接了。用户可以通过选择主窗口Build菜单项或Build工具条按钮,编译相应的文件或工程,同时将在输出窗的Build子窗口中输出有关信息。如果在编译链接过程中,出现任何错误,包括源文件语法错误和其它错误时,编译链接操作立刻终止,并在输出窗的Build子窗口中提示错误,如果是语法错误,用户可以通过鼠标左键双击错误

34、提示行,来定位引起错误的源文件行。2.4.5 加载调试Embest IDE for ARM包含ARM模拟器,支持脱离目标板的ARM应用模拟调试,是开发人员进行在线调试前的开发辅助工具。在线调试时,首先将集成环境与JTAG仿真器连接,点击Debug Remote Connect菜单项可激活连接,然后点击Download菜单将目标文件下载到目标系统的指定存储区中。如果在工程设置对话框调试选项中设置了自动下载选项,Embest IDE中的调试器会在与仿真器连接后自动进行下载,文件下载后即可进行在线仿真调试。1. 断点和单步调试器可以控制目标程序的运行和停止,并反汇编正在调试的二进制代码,同时可通过设

35、置断点来控制程序的运行,辅助用户更快的调试目标程序。Embest IDE的调试器可以在源程序、反汇编程序、以及源程序汇编程序混合模式窗口中设置和删除断点。设置断点的有以下几种方法:1. 将鼠标指向源程序行左边需设定断点处,鼠标形状会变成手形指针,然后单击鼠标左键,这时,程序行左边会出现红色圆形含黄色条的断点标志。2. 将光标设置在需要设置断点的代码行处,按F9快捷键。3. 将光标设置在需要设置断点的代码行处,点击Debug菜单,选取Toggle Breakpoint菜单项。第一次设置的断点均为有效断点,设置了有效断点的源程序界面如图2-55所示,青色圈处为有效断点标志:图2-55 有效断点标志

36、在源程序窗,若在一条非执行语句设断点,Embest IDE不会做出任何响应。断点状态分为有效和无效状态,程序不会在无效状态的断点停止。无效断点的源程序界面如图2-56所示,青色圈处为无效断点标志:图2-56 无效断点标志当程序运行到有效断点处时,会停止在有效断点处,其界面如图2-57所示:图2-57 停止在断点处的程序界面用户可使用断点列表来查询所有断点信息和状态。点击Debug菜单,选取“Breakpoint”菜单项,即可弹出断点列表对话框,断点列表对话框如图2-58所示:图2-58 断点列表对话框界面在断点列表对话框点击Delete按钮将会删除当前选择的断点,点击Delete ALL按钮将

37、删除当前列表中所有断点,点击View Code按钮将显示当前所选择断点对应的源文件,如果是汇编断点并且不对应任何源文件,点击View Code按钮将没有任何反应,双击某一断点行或者点击Modify按钮,将可修改断点信息,修改界面如图2-59所示:图2-59 断点信息修改界面若要设置断点条件属性,点击断点信息修改窗口的Advanced按钮,将下拉出另一附加窗口,界面如图2-60所示,“When”输入栏用于输入断点条件表达式,“Command”输入栏用于输入程序到达断点时候系统自动执行的命令。图2-60 条件断点信息修改界面2. 反汇编窗反汇编窗用于显示反汇编二进制代码后得到的汇编级代码,可以混合

38、源代码显示,也可以混合二进制代码显示。反汇编窗可以设置和清除汇编级别断点。图2-61 源文件与反汇编指令交叉显示窗口界面3. 寄存器窗点击菜单项Viewdebug windowsVariables可以打开和关闭寄存器窗口。 寄存器窗用于显示和修改目标系统中处理器内核寄存器及其外围接口寄存器值。寄存器名称和数目依赖于目标系统处理器类型,当调试不同目标系统的时候,显示的内容会不一样。寄存器值可以按照十进制、十六进制或者二进制格式显示,并可自动刷新或者根据需要由用户手动刷新显示。寄存器显示按照寄存器组方式,每组寄存器都可以分别设置不同的显示格式。注:如果在工程配置的Processor设置对话框没有选

39、择相应的处理器厂家及芯片型号,Peripheral窗口将显示空白寄存器窗的界面如图2-62所示:图2-62 寄存器窗界面点击某一个寄存器,该寄存器的名字和值会显示在寄存器窗上部的输入栏中,在输入栏可以改变该寄存器的值,输入栏如图2-63所示:图2-63 寄存器值修改输入栏当寄存器的值被修改后会以红色显示该值,如图2-64所示:图2-64 寄存器值被修改的寄存器窗界面4. 存储区窗存储区窗用于显示和修改目标系统中存储区的内容。存储区窗显示从输入的起始地址开始存储的存储区内容,显示长度根据存储区窗大小而自动匹配。存储区内容可以按照字节、半字或字长度显示,并同时以十六进制数和对应的ASCII字符显示

40、存储区内容。当存储区窗显示范围内的存储区数据有变化的时候,会以红色显示这些数据。IDE 同时提供了两个内存显示窗口Memory1窗和Memory2窗(功能同Memory1窗)。按照字节长度显示的存储区窗的界面如图2-65所示:图2-65 存储区窗界面用户可以在窗口上部的存储区起始地址栏修改显示起始地址,修改后存储区窗会自动从新的地址开始显示存储区内容;地址输入栏可以记录用户最近查看的10个起始地址值,用户可从下拉菜单中选择想要查看的起始地址。存储区起始地址栏如图2-66所示:图2-66 存储区起始地址输入栏若要修改存储区内容,可在十六进制数据栏或者ASCII字符数据栏直接修改,修改的数据会立刻

41、写到对应的存储区中,并以红色显示改变了的数据。5. watch窗点击菜单项View Debug Windows Watch可以打开和关闭数据观察窗(watch)。数据观察窗用于显示用户想要观察的变量或表达式值,用户可以随时增加或删除观察数据。观察数据值可以按照十进制或者十六进制格式显示。观察数据值会跟随用户的每一步操作而自动重新计算和显示。数据观察窗有两个页面:“Watch 1”和“Watch 2”,每个页面可以单独输入不同的数据。观察数据名会跟随工程自动存储,当下一次打开同一个工程的时候,会自动调入原先存在的观察数据名。数据观察窗缺省显示为十六进制,其界面如图2-67所示:图2-67 数据观

42、察窗界面用户可以使用以下两种方法增加观察数据:1. 双击数据观察窗最后的空行的名字栏,数据观察会在此处出现一个输入框,输入数据回车或者点击其它行,调试器将计算数据值,并显示在对应的值栏目。2. 在数据观察窗在点击鼠标右键,在数据观察窗菜单中选取”Add”菜单项,将弹出输入对话框,在其中输入想要观察的数据或者表达式。6. 变量窗点击菜单项View Debug Windows Variables可以打开和关闭变量窗。变量窗用于显示全局以及局部变量信息,并可修改变量值。变量窗有两个页面:“Global”和“Local”,分别用于显示全局变量和函数局部变量。变量值以及局部变量名会跟随用户的每一步操作而

43、自动重新计算和显示。当变量窗中变量值有变化的时候,变量窗会变红显示这些数据值。变量窗缺省显示为十六进制,其界面如图2-68所示:图2-68 变量窗界面用户可以察看变量的属性,其中包括变量名字、变量值和变量类型。用户可以修改变量值,方法是双击要修改的变量值栏,在显示的输入框中输入新值。当输入的数据为合法数据时候,调试器会修改目标系统中对应变量的值,并变红显示修改后的数据。7. 函数栈窗点击菜单项View Debug Windows Call Stack可以打开和关闭函数栈窗。函数栈窗用于显示函数运行调用关系,函数参数值可以按照十六进制或者十进制格式显示。最后调用的函数(即当前运行函数)在窗口最上

44、部的第一行,按照调用关系依次往下排列,起始函数在窗口末的最后一行。函数栈窗的界面如图2-69所示(设置所有函数参数属性显示):图2-69 函数栈窗界面函数参数的名字、类型或值都可以单独设置是否显示。如果关闭所有函数参数显示,将只显示函数名字和返回类型。双击函数栈窗的某一函数所在行,源文件窗会显示出该函数调用函数栈中上一函数返回后将要执行的下一句代码,并在该源代码行前面放置一蓝色向右箭头标志(见下图的青色圆圈包围处),函数栈窗同时会高亮显示该函数栈函数信息行。双击后调试器界面变化如图2-70所示:图2-70 双击函数行后的调试器界面2.4.6 Flash编程工具Embest IDE for AR

45、M提供了Flash编程工具,可以在板(on board)檫除Falsh或将文件烧写到Flash中。软件界面如图2-71所示。Flash Programmer其他特点:l 编程配置数据的保存和载入。l 编程前的寄存器读取功能和目标测试功能。l FLASH扇区地址指示功能。l 简单直接的处理器寄存器设置界面。图2-71 Flash Programmer软件界面第三章 嵌入式软件开发基础实验3.1 ARM汇编指令实验一3.1.1 实验目的 l 初步学会使用Embest IDE for ARM 开发环境及ARM软件模拟器;l 通过实验掌握简单ARM汇编指令的使用方法。3.1.2 实验设备l 硬件:PC

46、机l 软件:Embest IDE Pro ARM集成开发环境,Windows 98/2000/NT/XP。3.1.3 实验内容l 熟悉开发环境的使用并使用ldr/str,mov等指令访问寄存器或存储单元。l 使用add/sub/lsl/lsr/and/orr等指令,完成基本数学/逻辑运算。3.1.4 实验原理1. 存储器格式ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。1) 大端格式在这种格式中,字数据的高位字节存储在低地址中,而字数据的低位字节则存放在高地址中,如下图所示。2) 小端格式在这种格式中,字数据的高位字节存储在高地址中,而字数据的低位字节则存放在低地址中,如

47、下图所示。3. GNU基础知识Embest IDE集成了GNU 汇编器as,编译器gcc,链接器ld。因此,我们写程序要符合GNU的语法和规则。关于as、gcc和ld的具体使用,请参照Embest IDE所带的电子文档ProgRef.chm,在此不再赘述。这里简单介绍几点基本知识:1) 程序默认入口点为“_start”,代码段默认起始地址为0x80002) as常用伪操作符.equ.equ伪操作为数字常量、基于寄存器的值和程序中的标号定义一个字符名称。语法格式.equ symbol, expr其中,expr为基于寄存器的地址值、程序中的标号,32位的地址常量或者32位的常量。Symbol为.e

48、qu伪操作为expr定义的字符名称。示例 .equ Version, 0.1.global及.globl.global声明一个符号可以被其他文件引用。相当于声明了一个全局变量,.globl与.global相同。语法格式.global symbol其中,symbol为声明的符号的名称。它是区分大小写的。示例.global MyAsmFunc.text.text伪操作将操作符开始的代码编译到代码段或代码段子段(subsection)语法格式.text subsection示例.text.end标记汇编文件的结束行,即标号后的代码不作处理。语法格式.end3.1.5 实验操作步骤1) 新建工程:运行

49、Embest IDE集成开发环境,选择菜单项File New Workspace,系统弹出一个对话框,按照图3-1所示输入相关内容。图3-1 新建工作区点击OK按钮,将创建一个新工程,并同时创建一个与工程名相同的工作区。此时在工作区窗口将打开该工作区和工程。2) 建立源文件:点击菜单项File New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。编辑完后,保存文件asm1_a.s。3) 添加源文件:选择Project Add To Project Files 命令,或单击工程管理窗口中的相应右键菜单命令,弹出文件选择对话框,在工程目录下

50、选择刚才建立的源文件asm1_a.s。4) 基本配置:选择菜单项Project Settings或快捷键Alt+F7,弹出工程设置对话框。在工程设置对话框中,选择Processor设置对话框,按照图3-2所示,进行目标板所用处理器的配置。图3-2 新的工作区处理器配置5) 生成目标代码:选择菜单项Build Build asm1_a或快捷键F7,生成目标代码。图3-3 Embest IDE编译按钮面板6) 调试设置:选择菜单项Project Settings或快捷键Alt+F7,弹出工程设置对话框。在工程设置对话框中,选择Remote设置对话框,按照图3-4所示对调试设备模块进行设置。图3-4

51、 新工作区仿真器配置选择Debug设置对话框,按照下面各图进行调试模块配置。(a)连接相关配置(b)下载相关配置图3-5 新工作区调试器配置注意: Symbol file与Download file设置应该相同,用户可以从Linker页面拷贝系统默认的输出文件配置;且该实验输入下载地址为0x8000,即为AS默认的代码段起始地址。由于汇编和链接选项在本实验中没有进行配置,完全使用其默认选项,所以,代码段是从0x8000开始的,下载地址应该与它保持一致。7) 选择Debug菜单Remote Connect 进行连接软件仿真器,执行Download命令下载程序,并打开寄存器窗口。打开memory窗

52、口,观察地址0x80000x801f的内容,与地址0xff00xfff的内容。8) 单步执行程序并观察和记录寄存器与memory的值变化。9) 结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令的使用。10)理解和掌握实验后,完成实验练习题。3.1.6 实验参考程序 实验A参考程序:/*# NAME:asm1_a.s *# Author: Embest *# Desc:ARM instruction examples *# History: shw.He 2005.02.22 */*/*-*/* constant define */*-*/.equx, 45/* x=45 */.

53、equy, 64/* y=64 */.equstack_top, 0x1000/* define the top address for stacks */.global _start/*-*/* code */*-*/.text_start:/* code start */movsp, #stack_topmovr0, #x/* put x value into R0 */strr0, sp/* save the value of R0 into stacks */movr0, #y/* put y value into R0 */ldrr1, sp/* read the data from stack,a

温馨提示

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

评论

0/150

提交评论