《第六章 ADS的使用.ppt》由会员分享,可在线阅读,更多相关《第六章 ADS的使用.ppt(43页珍藏版)》请在三一办公上搜索。
1、1,ADS的使用,广嵌教育,2,第六章 ADS的使用,6.1 ADS概述6.2 ADS的配置 6.3 简单项目工程的使用6.4 复杂项目工程的使用,3,6.1ADS概述,ARM ADS的英文全称为 ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具,用来取代ARM公司以前推出的开发工具ARM SDT,目前ARM ADS的最新版本为1.2。Multi-ICE 是ARM 仿真器,支持ARM 公司的ARM7、ARM9、ARM10、StrongARM、Xscale 等ARM 内核。ADS 主要由三个部分组成:Multi-ice Server(连接工具,用于识别ARM 内
2、核),Code warrior(集成编辑、编译和链接工具)和AXD(调试工具)。,4,6.1ADS概述,ARM ADS由六部分组成:代码生成工具(Code Generation Tools)集成开发环境(CodeWarrior IDE from Metrowerks)调试器(Debuggers)指令集模拟器(Instruction Set Simulators)ARM 开发包(ARM Firmware Suite)ARM应用库(ARM Applications Library),5,6.1ADS概述,ADS1.2-主要模块:ANSI C 编译器 armcc and tccISO/Embedde
3、d C+编译器 armcpp and tcppARM/Thumb 汇编器 armasmLinker armlink Windows 集成开发环境 CodeWarriorDebugger AXD armsd 可向前兼容格式转换器 fromelf C and C+库指令级仿真器-ARMulator,6,6.1ADS概述,支持数据类型:char8 bit byteshort16 bit half-wordint32 bit wordlong32 bit integerfloat32 bit IEEE single-precisiondouble64 bit IEEE double-precision
4、pointers32 bitslong long64 bit integer,7,Multi-ICE的特点,Multi-ICE是ARM公司自己的JTAG在线仿真器,目前的最新版本是2.1版。Multi-ICE的JTAG链时钟可以设置为5 kHz到10 MHz,实现JTAG操作的一些简单逻辑由FPGA实现,使得并行口的通信量最小,以提高系统的性能。Multi-ICE 2.x支持ARM7、ARM9、ARM9E、ARM 10和Intel Xscale微结构系列。Multi-ICE主要优点:快速的下载和单步速度。用户控制的输入/输出位。可编程的JTAG位传送速率。开放的接口,允许调试非ARM的核或DS
5、P。网络连接到多个调试器。目标板供电,或外接电源。,8,ARM交叉开发环境的模型,9,开发环境的作用,10,命令行开发工具,完成将源代码编译,链接成可执行代码。命令行开发工具需要记忆较多的命令参数,但效率高;通常用集成开发环境(IDE)代替。ADS提供下面的命令行开发工具:Armcc:ARM C编译器 Armcpp:ARM C+编译器 Armasm:ARM汇编编译器Armlink:ARM连接器,11,ARM运行时库,运行时库就是 C run-time library。当用户对汇编程序,C程序或C+程序进行链接的时候,链接器会根据在建立时所指定的选项,选择适当的C或C+运行时库的类型。ADS提供
6、以下的运行时库来支持被编译的C和C+代码:ANSI C库函数C+库函数,12,CodeWarrior for ARM,CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面。用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C,C+,或ARM汇编语言的程序代码。全面的项目管理功能。CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了ARM RISC 的优势。在整个开发周期中,开发人员无需离开CodeWarrior开发环境,提高了效率。,13,CodeWarrior for ARM,功能特色源代码编辑器集成
7、在CodeWarrior IDE的浏览器中,能够根据语法格式,使用不同的颜色显示代码;源代码浏览器保存了在源码中定义的所有符号,能够使用户在源码中快速方便的跳转;查找和替换功能用户可以在多个文件中,利用字符串通配符,进行字符串的搜索和替换;,14,CodeWarrior for ARM,创建工程项目ADS通过工程项目来组织用户的源文件、库文件、头文件、以及其他的输入文件。生成映象文件:Debug:生成的映象文件包含所有的调试信息;Release:生成的映象文件不包含调试信息;DebugRel:生成的映象文件包含了基本的调试信息。,15,CodeWarrior for ARM,工程项目窗口Fil
8、e视图:包含工程项目中的所有文件的列表,选择文件是否要编译,显示生成可执行文件的大小和数据段大小。Link Order视图:包含当前生成目标中的所有输入文件。Target视图:显示了工程项目中的生成目标映象。,16,CodeWarrior for ARM,配置生成目标汇编器编译器链接器调试器编译链接后生成:*.axf:含有调试信息的可执行ELF格式文件;*.bin可烧写的二进制映像文件;*.hex:可烧写的十六进制映像文件。,17,AXD调试工具,在软件开发的最初阶段,可能还没有具体的硬件设备。如果要测试所开发的软件是否达到了预期的效果,这可以由软件仿真来完成。可以搭建一个PCB板,这个板上可
9、以包含一个或多个处理器,在这个板上可以运行和调试应用软件。只有当通过硬件或者是软件仿真所得到的结果达到了预期的效果,才算是完成了应用程序的编写工作。,18,AXD调试工具,调试器能够发送以下指令:装载映像文件到目标内存;启动或停止程序的执行;显示内存,寄存器或变量的值;允许用户改变存储的变量值。,19,6.2 ADS的配置,建立工程在磁盘里新建一个目录“D:arm”打开ADS软件点击工具栏“File”,下拉点击“New”,20,CodeWarrior配置及使用,创建一个可执行ARM映象工程,21,CodeWarrior配置及使用,对话框中为用户提供了7种可选择的工程类型:ARM Executa
10、ble Image:用于由ARM指令的代码生成一个ELF格式的可执行映像文件。ARM Object Library:用于由ARM指令的代码生成一个armar格式的目标文件库。Empty Project:用于创建一个不包含任何库或源文件的工程。Makefile Importer Wizard:用于将Visual C的nmake或GNU make文件转入到CodeWarrior IDE 工程文件。Thumb ARM Interworking Image:用于由ARM指令和Thumb指令的混和代码生成一个可执行的ELF格式的映像文件。Thumb Executable image:用于由Thumb指令
11、创建一个可执行的ELF格式的映像文件。Thumb Object Library:用于由Thumb指令的代码生成一个armar格式的目标文件库。,22,CodeWarrior配置及使用,选择ARM Executable Image工程,在Project name文本框中输入工程文件名如2410UART,单击Set按钮,可更改该工程保存的路径,将这些设置好后,单击“确定”即可建立一个新的名为2410UART.mcp的ADS工程。*.mcp文件是ARM 的工程文件,当建立一个工程文件后,可以通过打开该工程的*.mcp文件在CodeWarrior中打开该工程。这时会出现2410UART.mcp的窗口。
12、可以看到它默认的目标调试环境是DebugRel,单击旁边的下三角按钮,可以看到还有另外两个可用的目标调试环境,分别为Release和Debug。,23,6.2 ADS的配置,工程界面,24,6.2 ADS的配置,工程界面,25,6.2 ADS的配置,创建源文件,26,6.2 ADS的配置,添加源文件,27,CodeWarrior配置及使用,创建工程2410UART的窗口,28,CodeWarrior配置及使用,生成目标的配置:选择Edit|DebugRel Settings命令或直接单击工具栏上的DebugRel Settings图标,可以对生成的目标文件进行配置。这个选项会因创建工程时选择目
13、标调试系统不同而不同。,29,Target设置选项,Target Name文本框显示了当前的目标设置。Linker下拉列表框供用户选择要使用的链接器。这里默认的是ARM Linker,使用该链接器,将使用ARM Linker链接编译器和汇编器生成的工程文件作为相应目标文件。另外两个可选项,None表示不用任何链接器即工程中的所有文件都不会被编译器或汇编器处理。ARM Librarian表示将编译或汇编得到的目标文件转换为ARM库文件。这里使用默认的链接器ARM Linker。Post-Linker下拉列表框表示链接后,对输出文件进行怎样的操作。选择ARM fromELF,30,Target设置
14、选项,Target设置选项,31,Language Settings,ARM ADS的汇编器是armasm。如图所示,这里可以进行很多设置,包括运行的目标处理器的内核系列,可根据运行的目标板处理器类型进行选择。,32,Linker设置,选中ARM Linker,打开对话框。对话框的主要标签选项对最终生成的文件有着直接的影响。在选项卡Output中,Linktype选项中提供了3种链接方式。Partial方式表示链接器只进行部分链接,经过部分链接生成的目标文件,可以作为以后进一步链接时的输入文件。Simple方式是默认的链接方式,它链接生成简单的ELF格式的目标文件,使用的是链接器选项中指定的地
15、址映射方式。Scattered方式使链接器根据scatter格式文件指定地址映射,生成复杂的ELF格式的映像文件。这里选择常用默认的Simple方式。,33,Linker设置,在选中Simple方式后,就会出现Simple image,其各项含义:RO Base:即Read-Only段。RO Base设置为包含RO输出段的加载和执行地址,地址值必须字对齐。(注:RO Base的设置与硬件地址及生成的映象程序是相关的)。RW Base:即Read-write段。这个文本框设置了包含RW和ZI(zero-initialized)输出段的运行域地址。如果选中split选项,链接器生成的映像文件将包含
16、两个加载域和两个运行域。此时,在RW Base中所输入的地址为包含RW和ZI输出段的域设置了加载域和运行域地址。(注:RW Base须设置成SDRAM内的地址)Ropi:选中这个复选框将告诉链接器使包含有RO输出段的运行域位置无关。使用这个选项,链接器将保证:首先检查各段之间的重地址是否有效,其次确保任何由ARM链接器armlink自身生成的代码是只读位置无关的。,34,Linker设置,Rwpi:选中该复选框将会告诉链接器使包含RW和ZI输出段的运行域位置无关。如果它没有被选中,域就标识为绝对。每一个可写的输入段必须是读写位置无关的。如果被选中,链接器检查可读/可写属性的运行域的输入段是否设
17、置了位置无关属性,检查在各段之间的重地址是否有效。Split Image:选中这个复选框把包含RO和RW输出段的加载域分成两个加载域:一个是包含RO输出段的域,一个是包含RW输出段的域。Relocatable:选中这个复选框保留了映像文件的重地址偏移量。这些偏移量为程序加载器提供了有用信息。Options选项卡,用于指明存储器的替换方法、调试信息的设置和映像文件的初始入口地址等信息。,35,Linker设置,36,Linker设置,Image entry point:映象的入口点是可执行程序的入口地址。,37,Linker设置,38,ARM fromELF设置,ARM fromELF:代码格式转换器(可烧写映象文件生成工具)的设置。生成*.bin映象文件,39,ARM fromELF设置,ARM fromELF:代码格式转换器(可烧写映象文件生成工具)的设置。生成*.hex映象文件,40,编译连接后显示的信息,41,复杂项目工程的创建,42,生成文件,43,The endThank you,