ARM开发工具使用_第1页
ARM开发工具使用_第2页
ARM开发工具使用_第3页
ARM开发工具使用_第4页
ARM开发工具使用_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

ARM开发工具使用第一页,共82页。第二页,共82页。124第三页,共82页。第6讲目录6.1开发工具的选择6.2ADS开发工具简介6.3ADS的命令行工具6.4ADS的集成开发环境6.5用ADS开发应用程序第四页,共82页。6.1开发工具的选择开发过程第五页,共82页。集成开发环境含有编辑软件、编译软件、汇编软件、链接软件、调试软件、工程管理及函数库的集成开发环境(IDE,类似VC、KeilC51等)第六页,共82页。调试方法嵌入式调试系统应含调试主机、仿真器和目标板3个部分。调试方法一般有如下4种:1指令集模拟器(软调试)2驻留监控软件3JTAG仿真器4在线仿真器(仿真头)

第七页,共82页。调试方法1指令集模拟器(软调试)

指令集模拟器可方便用户在PC机上完成一部分简单的软件调试工作,它只是将源代码在PC机上的开发环境中模拟运行,通过集成开发环境提供的寄存器查看、存储器查看、断点执行、单步执行等功能,能检测用户开发的软件在语法和功能上是否正确,它无法在电路板上运行。由于指令集模拟器与真实的硬件环境相差很大,因此即使用户使用指令集模拟器调试通过的程序也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用的开发。第八页,共82页。调试方法2驻留监控软件(ResidentMonitors:交互式硬件调试)

驻留监控软件是一段运行在目标板(用户所开发的硬件电路板)上的程序,集成开发环境中的调试软件通过以太网口、并行端口、串行端口等通讯端口与驻留监控软件进行交互,由调试软件发布命令通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。ARM公司所提供的Angel调试软件属于该类工具。它占用目标板上的一部分资源,而且不能对程序的全速运行进行完全仿真,所以对一些要求严格的情况不是很适合。第九页,共82页。调试方法3JTAG仿真器

JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。JTAG仿真器在价格上比较便宜,与PC机相连接比较方便,通过现有的JTAG边界扫描口与ARMCPU内核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标板上存储器资源,不占用目标系统的任何端口。另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此许多接口问题,如程序的实时性限制等被最小化了。使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。用户所购买的嵌入式系统开发套件一般都附带有JTAG仿真器。第十页,共82页。基于JTAG的调试方法—简易JTAG接口第十一页,共82页。调试方法4在线仿真器在线仿真器使用仿真头完全取代目标板上的CPU,可以完全仿真ARM芯片的功能,提供更加深入的调试功能。但这类仿真器为了能够全速仿真时钟速度高于100MHz的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较昂贵。在线仿真器通常用在ARM的硬件开发中,在软件的开发中较少使用,其价格高昂也是在线仿真器难以普及的因素。

第十二页,共82页。集成开发工具简介1

SDTSDT的英文全称是SoftwareDevelopmentKit,是ARM公司为方便用户在ARM芯片上进行应用软件开发而推出的一整套集成开发工具。SDT经过ARM公司逐年的维护和更新,目前的最新版本是6.5.2,但从版本6.5.1开始,ARM公司宣布推出一套新的集成开发工具ARMADS取而代之,今后将不会再看到ARMSDT的新版本。

第十三页,共82页。集成开发工具简介2

ADSADS的英文全称为ARMDeveloperSuite,是ARM公司推出的新一代ARM集成开发工具,用来取代ARM公司以前推出的开发工具SDT,目前ARMADS的最新版本为1.2。ADS起源于ARMSDT,对一些SDT的模块进行了增强并替换了一些SDT的组成部分,用户可以感受到的最强烈的变化是ADS使用CodeWarriorIDE集成开发环境替代了SDT的APM,使用AXD替换了ADW,现代集成开发环境的一些基本特性如源文件编辑器语法高亮度显示,窗口驻留程序执行等功能在ADS中得以体现。

ADS支持所有ARM系列处理器包括ARM9E和ARM11等,除了SDT支持的运行操作系统外,还可以在Windows以及RedHatLinux上运行。第十四页,共82页。集成开发工具简介3Multi2000Multi2000是美国GreenHills软件公司开发的集成开发环境,支持C/C++/EmbeddedC++/Ada95/Fortran编程语言的开发和调试,可运行于Windows平台和Unix平台,并支持各类设备的远程调试。Multi2000支持GreenHills公司的各类编译器以及其它遵循EABI标准的编译器,同时Multi2000支持众多流行的16位、32位和64位处理器和DSP,如PowerPC、ARM、MIPS、x86、Sparc、TriCore、SH-DSP等,并支持多处理器调试。Multi2000包含完成一个软件工程所需要的所有工具,这些工具可以单独使用,也可集成第三方系统工具。

第十五页,共82页。集成开发工具简介4EmbestIDEEmbestIDE英文全称是EmbestIntegratedDevelopmentEnvironment,是深圳市英蓓特信息技术有限公司推出的一套应用于嵌入式软件开发的新一代集成开发环境。EmbestIDE是一个高度集成的图形界面操作环境,包含编辑器、编译器、汇编器、链接器、调试器等工具,其界面同MicrosoftVisualStudio类似。EmbestIDE支持ARM、Motorola等多家公司不同系列的处理器,对于ARM系列处理器,目前支持到ARM9系列,包括ARM7、ARM5等低系列芯片。EmbestIDE运行的主机环境为Windows95/98/NT/Me/2000,支持的开发语言包括标准C、EmbeddedC和汇编语言。EmbestIDE包括编辑器、编译器、连接器、调试器、工程管理器等功能模块,用户同时可选配EmbestJTAG仿真器。

第十六页,共82页。集成开发工具简介5HitoolforARMHitool是一种较新的arm嵌入式应用软件开发系统,主要包括hitool/ARMDebugger、GNUCompiler(内建)、JTAGcable、评估板以及嵌入式实时操作系统ThreadX等模块。其中编译器模块可以替换成ARMADSCompiler或ARMSDTCompiler。

第十七页,共82页。集成开发工具简介6JEENI仿真器

JEENI仿真器是美国EPI公司生产的专门用于调试ARM7系列的开发工具。它与PC之间通过以太网口或串口连接,与ARM7目标板之间通过JTAG口连接。该仿真器使用独立电源。JEENI仿真器支持ARM/THUMB指令,支持汇编/高级语言调试。

第十八页,共82页。集成开发工具简介7Multi-ICEMulti-ICE是ARM公司自己的JTAG在线仿真器,目前的最新版本是6.1版。Multi-ICE的JTAG链时钟可以设置为5kHz到10MHz,实现JTAG操作的一些简单逻辑由FPGA实现,使得并行口的通信量最小,以提高系统的性能。Multi-ICE硬件支持低至1V的电压。Multi-ICE6.1还可以外部供电,不需要消耗目标系统的电源,这对调试类似手机等便携式、电池供电设备是很重要的。Multi-ICE6.x支持该公司的实时调试工具MultiTrace,MultiTrace包含一个处理器,因此可以跟踪触发点前后的轨迹,并且可以在不终止后台任务的同时对前台任务进行调试,在微处理器运行时改变存储器的内容,所有这些特性使延时降到最低。Multi-ICE6.x支持ARM7、ARM9、ARM9E、ARM10和IntelXscale微结构系列。

第十九页,共82页。第6讲目录6.1开发工具的选择6.2ADS开发工具简介6.3ADS的命令行工具6.4ADS的集成开发环境6.5用ADS开发应用程序第二十页,共82页。6.2ADS开发工具简介ARMADS的英文全称为ARMDeveloperSuite,是ARM公司推出的新一代ARM集成开发工具,用来取代ARM公司以前推出的开发工具ARMSDT,目前ARMADS的最新版本为1.2,它取代了早期的ADS1.1和ADS1.0。ADS1.2除了可以安装在WindowsNT4,Windows2000,Windows98和Windows95操作系统下,还支持WindowsXP和WindowsMe操作系统。第二十一页,共82页。6.2ADS开发工具简介名称描述功能代码生成工具ARM汇编器,ARM的C、C++编译器,Thumb的C、C++编译器,ARM连接器由CodeWarriorIDE调用把C语言或汇编语言编写的源代码编译成目标文件、然后链接成一个可执行的(或可调试运行的)文件集成开发环境CodeWarriorIDE工程管理源代码编辑(输入、修改)、编译、链接指令模拟器ARMulator由AXD调用,对源代码进行纯软件的调试(语法和非实时功能上)调试器由AXD、ADW/ADU和armsd等组成由CodeWarriorIDE调用,进行在线硬件、软件的仿真调试ARM开发包一些底层的例程和实用程序(如fromELF)由CodeWarriorIDE调用,用户可参考这些例子和源代码,以方便在此基础上进行开发ARM应用库C、C++函数库以及一些头文件等在用户的程序中使用第二十二页,共82页。6.2ADS开发工具简介第二十三页,共82页。第6讲目录6.1开发工具的选择6.2ADS开发工具简介6.3ADS的命令行工具6.4ADS的集成开发环境6.5用ADS开发应用程序第二十四页,共82页。6.3命令行工具介绍

所谓命令行工具,就是ADS提供的DOS操作系统下运行的软件,ADS集成开发环境中所有的汇编、编译、链接以及调试等功能,都可以通过这些命令行工具在DOS环境下实现,而不必在ADS集成开发环境中的菜单、工具栏、对话框等方式下实现。ADS12提供了armcc、armcpp、tcc、tcpp、armasm、armlink和armsd等命令行开发工具,在安装完成后,这些命令行工具位于安装文件夹的Bin子目录下。

第二十五页,共82页。第二十六页,共82页。6.3命令行工具介绍第二十七页,共82页。第二十八页,共82页。第二十九页,共82页。第6讲目录6.1开发工具的选择6.2ADS开发工具简介6.3ADS的命令行工具6.4ADS的集成开发环境6.5用ADS开发应用程序第三十页,共82页。6.4.1新建一个工程

第三十一页,共82页。ARMExecutableImage:用于由ARM指令的代码生成一个ELF格式的可执行映象文件第三十二页,共82页。第三十三页,共82页。第三十四页,共82页。第三十五页,共82页。第三十六页,共82页。

项目Led.mcp中,在Initial文件夹下是一些44B0的初始化文件,其中44binit.s是一个ARM7类型的汇编语言源代码文件,在这里程序对外围进行初始化,定义了44B0芯片的一部分寄存器地址、44B0的工作模式、内存配置、初始化各种异常向量(包括了IRQ和FIQ中断向量)和堆栈以及一些C语言的变量,并提供系统上电、复位及异常处理的入口点。44B0芯片可外接8个Bank的存储器(ROM和RAM),Memcfg.s源代码文件对外部存储空间进行配置。OPTION.S汇编语言源代码文件对定义了一些宏,包括RAM的起始地址,中断入口表地址、RAM类型、系统主频、PLL控制字等。44BLIB_A.S汇编语言源代码文件中定义了一个ChangeMemCon函数(虽然没有使用)。44blib.c是一个C语言源代码文件,里面定义了其他各个文件所要调用的函数,如延时、I/O初始化、串口初始化、输入输出、PLL设置、波特率设置等的函数,该文件由用户自行编写。Bspinit.c是用户自己编写的一个C语言文件,里面用Bsp_Init函数封装了项目所有初始化需要调用的函数,这样在Main函数中只需要调用Bsp_Init函数即进行了所有的初始化。一些头文件,如44B.H文件中定义了44B0芯片的寄存器地址宏定义,OPTION.h文件中定义了C程序使用的一些反映系统工作方式的基本宏定义,Def.h文件中定义了一些数据类型的缩写。在进行44B0的项目的时候,最重要的是包含44binit.S与44blib_a.S这两个文件,如果需要串口输出等辅助功能,就包含进44blib.c文件,然后再加入自己的文件。44binit.S、44blib_a.S这些启动文件都由三星公司提供,建议用户不要进行修改。

第三十七页,共82页。

另外,在Initial文件夹下存在的一些头文件如44b.h、44blib.h、def.h和option.h等,对基于S3C44B0微处理器的嵌入式系统而言,这些头文件都基本是一样的,用户可以直接从别的项目拷贝过来使用。

第三十八页,共82页。第三十九页,共82页。图中,首先包含了3个头文件,这3个头文件在前面的章节已经进行了介绍。在Main()函数中,首先调用的是Bsp_Init()函数,Bsp_Init()函数封装了项目所有初始化需要调用的函数,包括S3C44B0芯片的各个端口的初始化和PLL锁相环的初始化。我们知道,S3C44B0芯片要正常工作,首先需要对其时钟进行初始化。S3C44B0X有71个多功能输入\输出管脚,构成了7个I/O接口,包括两个9位的输入/输出接口(E和F)、两个8位的输入/输出接口(D和G)、一个16位的输入/输出接口(C)、一个10位的输出接口(A)和一个11位的输出接口(B)。由于每个I/O接口管脚是多路复用的,比如对E口而言,它的第1位PE1有3个功能,一个功能是输入I/O,一个功能是输出I/O,一个功能是串行口0的TxD功能引脚。所以在使用S3C44B0芯片的端口前,首先需要确定每个管脚的功能。Bsp_Init()函数就起这个作用。在我们的项目程序中,需要用E端口去输出高、低电平控制LED灯的闪烁,因此需要将E端口初始化为I/O输出功能。第四十页,共82页。查看函数Bsp_Init()里面的代码第四十一页,共82页。6.4.2工程设置第四十二页,共82页。在Post-linker子项中选择ARMfromELF,使得工程在链接后可以直接调用fromELF产生以.bin结尾的可执行的二进制代码文件(这步非常重要)第四十三页,共82页。Language

Settings里选择对应处理器内核型号。默认是ARM7内核。第四十四页,共82页。内存起始地址注意在调试时,RO-Base的设置应当大于0xc000000第四十五页,共82页。Object/symbol项中,填入44binit.o(44binit.s汇编语言源代码文件编译后的目标文件),在Section项中填入Init,表示当程序开始执行时,从44binit文件的Init段开始执行第四十六页,共82页。第四十七页,共82页。第四十八页,共82页。6.4.3工程编译第四十九页,共82页。第五十页,共82页。第五十一页,共82页。第五十二页,共82页。6.4.4工程调试1纯软件调试

在ADS软件中的AXDDebugger的纯软件仿真调试使用的是ARMulate模块。ARMulate模块可以模拟ARM芯片和一些外围器件的资源,然后将加载进来的image(在本项目工程中是Led.axf)载入ARMulate运行调试。ARMulate以DLL文件形式存在,在安装目录下bin/ARMulate.dll。AXDDebugger启动后,用户可以将ARMulate.dll加载进来运行。回到ADS主界面,执行Project菜单下的Debug子菜单命令,或者用鼠标单击工具栏上的图标,对工程进行调试,这时将打开如下图所示的AXD调试窗口。在该窗口中,执行Options菜单下的ConfigureTarget…命令,对纯软件调试进行设置。此时会弹出一个ChooseTarget窗口,用鼠标选择ARMUL(第2项),表示对项目进行纯软件的调试,其他设置保持默认值即可。

第五十三页,共82页。第五十四页,共82页。第五十五页,共82页。第五十六页,共82页。第五十七页,共82页。第五十八页,共82页。第五十九页,共82页。第六十页,共82页。第六十一页,共82页。2带目标板调试(1)通过串口打印信息调试在进行带有目标板的项目调试时,建议用户购买一套开发套件,在购买的嵌入式开发套件中,一般都带有与开发板对应的BootLoader,BootLoader中提供了启动、引导、下载、烧写、串口通信、网络通信、设置日期、时间、设置工作频率等多种功能。BootLoader启动后随即进入shell模式。用户要启动任何功能都必须输入特定的命令行。该shell模式类似DOS操作环境,用户可以通过各种命令与目标板进行交互。第六十二页,共82页。首先利用串口连接线将目标板的串口与PC机上的COM1口连接起来,使用Windows操作系统自带的串口通信终端与目标板进行交互。打开PC机上的超级终端的步骤如下:在计算机上用鼠标点击[开始][程序][附件][通讯]

[超级终端]

第六十三页,共82页。第六十四页,共82页。第六十五页,共82页。第六十六页,共82页。第六十七页,共82页。系统上电后BootLoader开始运行,通过PC上的串口超级终端可以看到:第六十八页,共82页。在提示符下输入help,可以显示BootLoader所支持的命令第六十九页,共82页。将项目工程编译(MAKE)后,按照如下的步骤将产生的以.bin结尾的目标文件通过串口传输到目标板:(1)在提示符下输入loadb0x0C000000,显示Readyforbinary(kermit)downloadto0x0C000000at115200bps...即为准备好通过串口下载程序(2)点击超级终端的菜单“传送-发送文件”,选择前面编写并编译生成的二进制文件,同时协议选择Kermit点击发送第七十页,共82页。

温馨提示

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

评论

0/150

提交评论