ADS集成开发环境.ppt
1,ARM集成开发环境ADS1.2,北京微芯力科技有限公司,2,主要内容,ARM开发工具概述 ARM开发系统的安装 ARM JTAG 仿真器配置 新建工程项目 编译工程项目 AXD调试器的使用方法,3,ARM开发工具概述(一),基于ARM的开发,需要借助硬件工具和软件工具。硬件工具主要是ARM在线仿真器、评估板等,软件工具包括编辑汇编、编译链接、调试软件、嵌入式操作系统和函数库。目前世界上有诸多公司提供以上不同类别的软硬件产品。开发者选用ARM处理器开发嵌入式系统时,选择合适的开发工具可以加快进度,节省开发成本。因此一套运行于PC机上,含有编辑软件、汇编软件、连接软件、调试软件、项目管理以及函数库的集成开发环境(IDE)是必不可少的。集成开发环境用于开发ARM的应用和驱动程序,而调试工作需要借助于ARM实时仿真器和评估板方可完成。实际上,多数嵌入式开发者都借助Windows平台的IDE环境和ARM实时仿真器来开发驱动和应用程序,再将其移植到其它嵌入式操作系统上。常用的集成开发环境(IDE)有ARM SDT,ARM ADS,MULTI2000,Hitool for ARM等,较为流行的仿真器如Multi-ICE,ARM JTAG等。这里主要介绍ARM ADS集成开发环境和ARM Multi-ICE JTAG仿真器。,4,ARM开发工具概述(二),软件工具 ARM ADS(ARM Developer Suite)是ARM公司推出的新一代ARM集成开发软件环境,用以取代ARM公司以前推出的ARM SDT开发软件,目前用户使用的ARM ADS新版本为ADS1.2。ARM ADS对ARM SDT的模块进行了增强,替换了部分SDT的部件。用户感受到的最强烈的变化是:ADS使用Code Warrior IDE替代了SDT 的APM,使用AXD替代了ADW,现代集成开发环境的一些基本特征在ADS中才得以体现。ADS由命令行开发工具,ARM时实库,GUI环境(Code Warrior和AXD),实用程序和支持软件组成。有这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的应用程序。ADS支持所有的ARM体系处理器,包括ARM7、ARM9、ARM9E、ARM10、ARM10E和Intel Xscale系列,除支持Windows平台操作系统外,还支持在 RedHat Linux操作系统上的运行。这里介绍基于Windows平台的ARM开发,让您快捷掌握Code Warrior和AXD的使用,致力于ARM的开发。,5,ARM开发工具概述(三),硬件工具 ARM Multi-ICE JTAG仿真器是SoC应用开发的强大调试工具,是进行硬件开发、驱动程序调试、应用软件开发的必备工具。它用于ARM处理器内核软件调试,符合IEEE 1149.1规范,可以满足更多用户对ARM处理器内核软件的开发、调试需求。ARM Multi-ICE JTAG仿真器支持所有内含embedded-ICETMlogic的基于ARM内核的芯片,同时也支持所有新的尚在开发中的ARM内核SoC芯片。通过JTAG仿真器,用户可以轻松修改寄存器、存储器、设置断点、观察窗口、程序下载及RealMonitorTM 实时调试。ARM Multi-ICE JTAG仿真器配备ARM ADS软件集成开发调试环境,编译、链接、可视化调试一应俱全,软件模拟、项目管理方便快捷,快速提高代码开发效率。,6,ARM开发工具概述(四),ARM JTAG主要特征如下:支持所有内建Embedded-ICE逻辑单元的ARM处理器 支持多个内核系统 支持ARM ADS1.2开发环境 连接简便,兼容不同电压的目标系统 用户可通过JTAG修改寄存器、存储器内容等 除JTAG扫描链外,不占用目标板上的其它任何资源 支持实时硬件断点 支持程序下载及实时调试 通信速度快,高速数据下载可达130KB/S JTAG速度可配置,以满足不同调试对象的需求 支持所有符合RDI 1.50或RDI 1.51规范的调试工具软件 支持多目标平台,如ATMEL、SamSung、Intel、Philips、Sharp等 提 供丰富的例程和使用说明 体积轻巧,性能稳定,7,ARM开发工具概述(五),ARM Multi-ICE JTAG实时仿真器支持的ARM内核:ARM7TDMIARM710TARM7TDMI-SARM7DMIARM720TARM740TARM7TDI-SARM7EJ-SARM926EJ-SARM9TDMIARM9E-SARM940TARM946E-SARM920TARM966E-SARM1020EARM922TARM966E-SIntel XScalePXA210PXA25080200 支持的操作系统:Windows 98/NT/2000/ME/XP X86 RedHat Linux 6.2/7.2/8.0,8,ARM开发系统的安装(一),硬件连接 ARM Multi-ICE JTAG使用标准的25pin并口插座和20pin的JTAG插座作为接口。有的目标板可能使用14pin的JTAG插座,它的信号定义和20pin的JTAG接口的信号排列顺序如下图1。对于这两类接口,它们相同信号的电气特性一样,因此可以把对应的信号直接相连进行转换。20pin和14pinJTAG接口信号定义,9,ARM开发系统的安装(二),ARM开发系统的硬件连接如下图所示:,10,ARM开发系统的安装(三),软件安装开发PC主机系统需求:Pentium IBM兼容PC,带有可用的并口CD-ROM驱动器200MHz以上CPU300MB以上空闲硬盘空间32MB(Win98)或64MB(Win2000)以上内存空间建议Microsoft Windows 98或2000操作系统ARM开发系统软件的安装过程分为两步:1、安装ARM Multi-ICE,这是仿真器驱动程序。2、安装ARM Developer Suite(ADS),这是ARM的集成开发环境。插入安装光盘后,按照默认的设置进行安装即可。,11,ARM JTAG仿真器配置(一),1.按照硬件连接图所示,做好仿真器、目标板和PC机的硬件连接。需要 注意的是:要先给仿真器加电,然后再给目标板加电。2.打开“开始程序ARM Multi-ICE v2.2”运行Multi-ICE server,启动 仿真器驱动。,12,ARM JTAG仿真器配置(二),3.点击FileAutoconfigure或相应快捷键,自动连接仿真器,如下图所示。仿真器能够检测ARM目标板的CPU型号或者ARM内核级别,这就表明 仿真器已经连接并能够仿真目标板。,13,ARM JTAG仿真器配置(三),对于某些ARM内核的CPU来说,在点击FileAutoconfigure自动配置时可能会出现“UNKNOWN”的情况,这属于正常现象。这时,用户需要根据自己的内核级别,进行手动配置。这里以ARM920T内核为例,简要介绍。,14,ARM JTAG仿真器配置(四),A:首先要建立相应ARM内核的配置文件。新建一文本格式的文件,以 cfg 为扩展名,比如:AT91RM9200DK.cfg,最好保存到ADS的安装 目录 C:Program FilesARMMulti-ICE路径下。文件的内容如下:TitleATMEL AT91RM9200 Demonstration Kit;-THUNDER part-TAP 0 ARM920T;Tell the Server to interrogate the device to gather IDCODE details;For manual configuration the default is NO if not specifiedTAPINFOYESTimingLow=0;this equates to 10MHz TCK frequencyHigh=0Adaptive=OFF;do not use adaptive clocking,15,ARM JTAG仿真器配置(五),B:打开“开始程序ARM Multi-ICE v2.2”运行Multi-ICE server,启动 仿 真器驱动。点击FileAutoconfigure自动配置,等待出现“Unknow”提示。然后打开FileLoad-Configuration选项。,在弹出的对话框中查找并加载在上面建立的文件AT91RM9200DK.cfg。,16,ARM JTAG仿真器配置(六),调入该文件后,Multi-ICE Server能够检测ARM内核,说明手动配置成功。,图7,如果仿真器连接到PC机,刚打开Multi-ICE Server时出现警告,或者该窗口右下角的两个绿灯不亮,应该检查仿真器、电源及其连接是否有故障。,17,新建工程项目(一),1打开“开始程序ARM Developer Suite v1.2Codewarrior for ARM Developer Suite”,进入ADS集成开发环境。2从FilesNew菜单新建一个工程项目,如下图所示。,18,新建工程项目(二),3在New对话框的Project选项卡中创建新工程项目。如图所示:ProjectARM Executable image,用于生成一个可执行的ELF格式的映像文件。在Project Name文本框中填写将要建立的工程项目的名称,在Location文本框中设置工程项目的路径。,19,新建工程项目(三),4单击“确定”,这样根据工程项目模板就生成一个新工程项目,如下图所示。可以查看在“Location”所指定的文件夹下,生成了一个XXX文件夹,它又包括XXX_Data文件夹和一个XXX.mcp文件。,20,新建工程项目(四),5新建一个源文件:FilesNewfileText file,如图所示:,21,新建工程项目(五),在File Name 填写源文件名称(如init.s),在Location设置源文件的路径。建议新建文件路径和项目路径一致。这里,可以选中“Add to project”项,在Project下拉列表中选择想要加入的工程项目的名称(即上面所建立的XXX.mcp),并选中Target目标栏中“Debug”、“DebugRel”和“Release”选项。6在新建的文本文件中编写程序代码,如下图所示:,22,新建工程项目(六),编辑完成后,保存该项目文件。如果该项目包括多个文件,继续新建文件直至完成。,23,新建工程项目(七),7添加所有源文件到项目工程。如果在第5步中没有选中“Add to project”项,在项目文件下的空白处单击右键,选择“Add files”,在弹出的对话框中选择刚才新建的文件,全部加载到该项目中。,加载完成后,一个完整的项目工程就建立成功!,24,编译工程项目(一),1设置编译环境。可以看到TargetS中有三个目标:DebugRel、Debug、Release,默认的目标为DebugRel(带有基本调试信息),用于调试时可以选择Debug(带有全部调试信息)。通过DebugRel Settings对话框设置的各种选项对于其它两个目标无效,Targets页面如图所示。,25,编译工程项目(二),2打开Target Settings。值得注意的是Post-Linker,用于选择对连接器输出的文件的处理方式,经常使用的是:ARM fromELF,它可以将ELF格式的文件转换成各种二进制文件格式供下载使用。同时确定“Output Directory”中的路径,在“Access Paths”下设置你所建的项目下的XXX.axf文件的路径,下图为Target Settings设置页面。,26,编译工程项目(三),3编译器的选项设置。首先打开Language Settings项下的ARM Assembler,这是ARM汇编编译器的选项。这里根据目标系统的实际情况,将ARM Assembler中的处理器类型(Architecture or Processor)设置为ARM920T。,27,编译工程项目(四),打开Language Settings项下的ARM C Compiler选项,这是armcc编译器的选项。将ARM C Compiler中的处理器类型也设置为ARM920T。如果需要使用 C+和Thumb指令集,则应将ARM C+Compiler,Thumb C Compiler和Thumb C+Compiler也作同样的设置。,28,编译工程项目(五),其它各个选项一般按默认设置即可:ARM920T,Pure-endian softfp,litter endian,ANSI/ISO Standard C。4连接器的选项设置。选择Linker下的ARM Linker选项。打开Output选项卡,需要注意的是RO Base,它是用来设置映象文件中RO属性输出段的加载时地址和运行时地址,该地址值必须是字对齐的。它应该在RAM区,如果没有指定地址值,使用默认地址0 x8000。在AT91RM9200实验箱中,当系统上电或复位时,固化在Flash中Boot程序首先运行,将SDRAM映射在0 x2000,00000 x2200,0000-1(32MB)的地址空间。因此,该RO值只要设置在上述地址范围即可,当然也可以设置在内部RAM区域,即0 x200000。下图为ARM Linker设置页面。RW Base设置映像文件中包含RW属性和ZI属性的输出段的运行时域的起始地址,该地址必须字对齐。如果它与-split一起使用,会将映像文件中RW/ZI属性输出段的加载时地址和运行时地址都设置为文本框中的值。,29,编译工程项目(六),如果没有选择RW Base选项,映像文件中只包含一个加载时域和一个运行时域。此时,RO属性的输出段、RW属性的输出段以及ZI属性的输出段都包含在同一时域中。当设置RW Base选项时,映像文件包括两个运行时域,一个包含RO属性的输出段,另一个包含RW/ZI属性的输出段。同样,指定-split选项后,映像文件包括两个加载时域。,30,编译工程项目(七),Layout选项卡,在连接方式为Simple时有效,它安排一些输入段在映像文件中的位置。Place at the beginning of image选项组,用于指定将某个输入段放置在它所在的运行时域的开头。比如将复位异常中断处理程序的输入段放置在运行时域的开头。有以下两种方式指定输入段:在Object/Symbol文本框中指定符号名称,则定义该符号的输入段被指定。在Object/Symbol文本框中指定目标文件名称,在Section文本框中指定一个输入段名称,从而确定一个输入段作为指定的输入段。,Place at the end of image选项组,用于指定将某个输入段放置在它所在运行时域的结尾。比如包含校验和数据的输入段通常放置在运行时域的结尾。指定一个输入段的方法与Place at the beginning of image选项组相同,通常可以不予设置。,31,编译工程项目(八),这里采用方法二,将Object/Symbol设置为init.o,Section设置为Init,这些选项保证初始化代码在所有其它代码之前被执行。init.o目标文件是由汇编文件init.s生成的,Init是输入段名称,在init.s的AREA伪代码语句处定义。组合框Place at the end of image中的输入段设置可以忽略。,32,编译工程项目(九),5fromELF工具选项。打开Linker项下的ARM fromELF选项,将其中的output format设置为Plain binary,该选项设置输出目标文件的格式,有多种类型供选择。,为ARM fromELF中的Output file name指定文件名。此设置可以省略,使用缺省文件名即工程名.bin,默认存放在DebugRel/Debug下。,33,编译工程项目(十),6项目编译。设置好编译连接的参数后,选中图中红圈所示的编译按钮,对整个工程编译。当然选中一个.s文件或.c文件,单击鼠标右键可以对单个文件进行编译。直到弹出的错误和警告信息为“0 error,x warnings”时,整个项目的编译成功,方能进入调试环境。也可以通过单击Project菜单下的Make命令或者快捷键F7来进行编译连接和输出目标文件。,34,AXD调试器的使用(一),AXD Debugger是用户用来调试应用程序的开发环境,支持软件仿真和带目标系统的硬件仿真两种方式。其中,软件仿真方式无需用户硬件系统的支持,使用宿主机的CPU模拟ARM微处理器的运行,可进行与硬件无关的应用程序的调试和运行。当需要进行带目标系统的硬件仿真,调试和运行与硬件相关的应用程序时,必须建立AXD Debugger与目标系统的连接。在此之前,应先对AXD Debugger进行如下配置,步骤如下:a.配置ARM Multi-ICE V2.2 做好仿真器和目标系统的硬件连接,先后给仿真器和目标系统上电。运行Multi-ICE Server,进行自动配置或者手动配置,确保ARM实时仿真器能够检测到ARM内核。,35,AXD调试器的使用(二),b.配置调试环境 打开AXD Debugger窗口,打开OptionsConfigure Target选项,出现目 标选择的对话框。用户安装后第一次使用AXD时,需要添加仿真器的目 标环境。,点击“Add”按钮,在出现的浏览框中查找Multi-ICE.dll文件。,36,AXD调试器的使用(三),根据Multi-ICE的安装路径(默认安装的路径是C:Program FilesARMMulti-ICE)选定Multi-ICE.dll文件,然后点击“确定”按钮。出现以下画面:,37,AXD调试器的使用(四),点击“OK”按钮,进入Multi-ICE的设置对话框。,38,AXD调试器的使用(五),单击“This Computer.”按钮后,选择处理器如“TAP0:ARM920T”。,单击“确定”后完成仿真器的配置,返回到目标选择对话框。,39,AXD调试器的使用(六),每次点击OptionsConfigure Target选项配置时,都会出现如下界面。用户只要选择Multi-ICE,然后点击右边的“Configure”就可以进入如下图的画面进行配置。,关于Multi-ICE的详细配置,请参考ARM JTAG 仿真器的用户手册。,40,AXD调试器的使用(七),配置成功,会在AXD左边Target栏显示处理器的内核型号,并在下方System Output Monitor中的RDI log项提示仿真器和AXD成功连接的信息。,41,AXD调试器的使用(八),c.下载调试运行程序 从AXD窗口的“FileLoad image”查找加载xxx项目 xxx_DataDebugrel或者Debug路径下的xxx.axf文件。也可以如下所示,点击“Debug”按钮直接从.mcp文件进入调试环境。,42,AXD调试器的使用(九),调试者可以执行系统配置,设置程序断点、单步、全速运行。查看寄存器、存储器与函数变量的当前运行值,修改内、外RAM数据,进行反汇编操作等。,43,AXD调试器的使用(十),特别说明“FileLoad Memory from File”,该项用于将PC上的某个文件的内容,直接加载到目标系统的某个存储区域。需要注意的是,以Address文本框首地址开始的存储区域必须是可以写入数据的。利用该功能,用户可以编程将可执行的二进制文件如bootloader,烧写到目标系统的flash芯片中,让其在目标板上电或者复位后自动运行。,“FileSave Memory to File”,可以将目标系统中某个存储区域的二进制数据,作为文件保存到PC机。,44,