第6章ADS集成开发环境的使用_第1页
第6章ADS集成开发环境的使用_第2页
第6章ADS集成开发环境的使用_第3页
第6章ADS集成开发环境的使用_第4页
第6章ADS集成开发环境的使用_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章ADS集成开发环境的使用吉林大学珠海学院文全刚教学目的 掌握ADS集成开发环境的使用 :嵌入式系统开发流程Code Warrior IDE的使用AXD调试器的使用教学内容 6.1 嵌入式系统开发基础 6.2 ADS 1.2 集成开发环境介绍 6.3 程序的编辑 6.4 程序的编译 6.5 程序的连接 6.6 程序的调试6.1 嵌入式系统开发基础 6.1.1嵌入式系统开发流程 6.1.2嵌入式软件开发 6.1.3 ARM Developer Suite(ADS)的安装6.1.1嵌入式系统开发流程嵌入式系统开发的基本流程为: 1 系统定义与需求分析。 2 系统设计方案的初步确立。 3 初步设

2、计方案性价比评估与方案评审论证。 4 完善初步方案、初步方案实施。 5 软硬件集成测试。 6 系统功能性能测试及可靠性测试。嵌入式系统的开发必然有其自身的许多特点:软硬件可配置、功能可 靠、成本低、体积小、功耗低、实时性强。嵌入式系统受 功能和具体应用环境的约束,其开发流程就就不同于一般 的通用计算机系统。嵌入式系统设计是使用一组物理硬件和软件来完成所需功能的过程, 系统是指任何由硬件、软件或者两者的结合而构成的功能设备。 由于嵌入式系统是一个专用系统,所以在嵌入式产品的设计过程 中, 软件设计和硬件设计是紧密结合、相互协调的。这就产生了一种 全新的设计理论软硬件协同设计。如图6-1所示。 图

3、6-1 软硬件协同设计这种方法的特点是,在设计时从系统功能的实现考虑,把实现时的软 硬件同时考虑进去,硬件设计包括芯片级“功能定制”设计。既可最大 限度地利用有效资源,缩短开发周期,又能取得更好的设计效果。系统协同设计的整个流程从确定系统要求开始 ,包含系统要求的功 能、性能、功耗、成本、可靠性和开发时间等。这些要求形成了由项 目开发小组和市场专家共同制定的初步说明文档。系统设计首先确定所需的功能。复杂系统设计最常用的方法是将整个 系统划分为较简单的子系统及这些子系统的模块组合,然后以一种选 定的语言对各个对象子系统加以描述,产生设计说明文档。其次,是把系统功能转换成组织结构,将抽象的功能描述

4、模型转换成 组织结构模型。由于针对一个系统可建立多种模型,因此应根据系统 的仿真和先前的经验来选择模型。6.1.2嵌入式软件开发不同于通用计算机和工作站上的软件开发工程,一个嵌入式软件的开 发过程具有很多特点和不确定性。其中最重要的一点是软件跟硬件的 紧密耦合特性。 由于嵌入式系统的灵活性和多样性,这样就给软件设计人员带来了极 大地困难。 第一,在软件设计过程中过多地考虑硬件,给开发和调试都带来了很多不便; 第二,如果所有的软件工作都需要在硬件平台就绪之后进行, 自然就延长了整个的系统开发周期。为了解决这个问题,我们可以在特定的EDA工具环境下面进行开发, 通过后再进行移植到硬件平台的工作。这

5、样既可以保证程序逻辑设计 的正确性,同时使得软件开发可平行甚至超前于硬件开发进程。 我们把脱离于硬件的嵌入式软件开发阶段称之为“PC 软件”的开发, 图6-2说明了一个嵌入式系统软件的开发模式。 图6-2 嵌入式软件开发方法 在“PC 软件”开发阶段,可以用软件仿真,即指令集模拟的方法,来对用 户程序进行验证。 在模拟环境下,用户可以设置ARM 处理器的型号、时钟频率等, 同时还可以配置存储器访问接口的时序参数。程序在模拟环境下运 行,不但能够进行程序的运行流程和逻辑测试,还能够统计系统运行 的时钟周期数、存储器访问周期数、处理器运行时的流水线状态(有 效周期、等待周期、连续和非连续访问周期)

6、等信息。这些宝贵的信 息是在硬件调试阶段都无法取得的,对于程序的性能评估非常有价 值。为了更加完整和真实地模拟一个目标系统,ARMulator 和ISS 还 提供了一个开放的API 编程环境。用户可以用标准C 来描述各种各样 的硬件模块,连同工具提供的内核模块一起,组成一个完整的“软”硬 件环境。在这个环境下面开发的软件,可以更大程度地接近最终的目 标。利用这种先进的EDA 工具环境,极大地方便了程序开发人员进行 嵌入式开发的工作。当完成一个“PC 软件”的开发之后,只要进行正确 的移植,一个真正的嵌入式软件就开发成功了。 由上可知,嵌入式软件开发是基于一个交叉开发环境,其开发流 程如下:开发

7、环境的建立、源代码编辑阶段、交叉编译和链接、重定 位和下载、联机调试,如图6-3所示。图6-3嵌入式软件开发流程图6.1.3 ARM Developer Suite(ADS)的安装在安装新版本的ADS之前,要删除其它版本,从而使安装的版本更完 美地工作。下面介绍ADS 1.2 的安装步骤。在ADS 1.2 安装目录下, 找到SETUP.EXE。图6-4 ADS安装步骤一 在图6-4所示的界面中,双击执行SETUP.EXE,进入安装界面。点击Browse,确定安装目录,或者按照默认目录安装。并点击Next,如图6-5所示。图6-5 ADS安装步骤二在图6-6所示的界面中选择安装类型,选Full

8、类型安装。并点击Next。图6-6 ADS安装步骤三安装完毕,如图6-7所示。图6-7 ADS安装步骤四安装License。选择要执行的动作为Install License,点击Next,如 图6-8所示。图6-8 ADS安装步骤五点击Browse,选择license.dat或license.txt所在的路径,然后打开,如图6-9所示。图6-9 ADS安装步骤六 安装license完毕,点击完成,如图6-10所示。图6-10 ADS安装步骤七 ADS 1.2 全部安装完毕,点击Finished。以上是ADS 1.2 的安装 全过程。在“开始”菜单中可以找到安装的程序。如图6-11所示。图6-1

9、1 ADS的启动 可以看到我们安装的东西。其中,CodeWarrior for ARM Developer Suite 是代码的编译连接开发环境;AXD Debugger 是调试的开发环境,它能配合Multi-icesever 和硬件Multi-ice 调试器,完成板级调试。下面几节将详细地介绍本开发系统的使用方法。6.2 ADS 1.2 集成开发环境介绍 6.2.1 Code Warrior IDE 简介 6.2.2 AXD调试器简介 6.2.3 ADS开发系统的系统资源 6.2.4系统软件开发步骤6.2 ADS 1.2 集成开发环境介绍 ARM ADS全称为ARM Developer Su

10、ite。是ARM公司推出的新 一代ARM集成开发工具。ADS由命令行开发工具,ARM时实库,GUI 开发环境(Code Warrior和AXD),实用程序和支持软件组成,如表6-1 所列。有了这些部件,用户就可以为ARM系列的RISC处理器编写和调 试自己的开发应用程序了。6.2.1 Code Warrior IDE 简介 CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了 ARM RISC 的优势, 使产品开发人员能够很好的应用尖端的片上系统 技术。 该工具是专为基于ARM RISC的处理器而设计的, 它可加速并简 化嵌入式开发过程中的每一个环节,使得开发人员只需通过

11、一个集成 软件开发环境就能研制出ARM产品,在整个开发周期中,开发人员无 需离开CodeWarrior开发环境, 因此节省了在操作工具上花的时间,使 得开发人员有更多的精力投入到代码编写上来,Code Warrior IDE 主 窗口如图6-12所示。图6-12 ADS集成开发环境界面 ADS的CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面。针对ARM的配置面板为用户提供了在CodeWarrior IDE集成环境下配置各种ARM开发工具的能力。用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C,C+或ARM汇编语言的

12、程序代码。CodeWarrior IDE为用户提供下面的功能: 源代码编辑器:它集成在CodeWarrior IDE的浏览器中,能够根据语 法格式,使用不同的颜色显示代码; 源代码浏览器:它保存了源码中定义的所有符号,能够使用户在源码 中快速方便的跳转; 查找和替换功能:用户可以在多个文件中,利用字符串通配符,进行 字符串搜索和替换; 文件比较功能:可以使用户比较路径中的不同文本文件的内容。 由于ARM调试器(AXD)没有集成在CodeWarrior IDE中,这就意 味着,用户不能在CodeWarrior IDE中进行断点调试和查看变量。在 CodeWarrior IDE for ARM中有

13、很多的菜单或子菜单是不能使用的。 下面列出了这些选项: 1 . View菜单下不能使用的菜单选项有: Processes,Expressions,Global Variable,Breakpoints, Registers。 2 . Project菜单不能使用的菜单选项: Precompile子菜单。因为ARM编译器不支持预编译的头文件。 3 . Debug菜单: 该菜单中没有一个子菜单是可以使用的。 4 . Browser菜单中不能使用的菜单选项: New Property,New Method和New Event Set。 5 . Help menu中不能用于ADS的菜单选项有: Code

14、Warrior Help,Index,Search和Online Manuals。6.2.2 AXD调试器简介AXD 调试器为ARM扩展调试器(即ARM eXtended Debugger),包 括ADW/ADU的所有特性,支持硬件仿真和软件仿真(ARMulator)。 AXD能够装载映像文件到目标内存,具有单步、全速和断点等调试功 能,可以观察变量、寄存器和内存的数据等等。AXD调试器主窗口如 图6-13所示。图6-13AXD调试器界面6.2.3 ADS开发系统的系统资源1ADS系统包含的文件 ADS系统包含下列可选文件: (1)系统文件 Executables类文件:系统所有可执行的二进制

15、文件,包括编译文 件,命令行工具和GUI组件; C libraries,big endian : 用于大端系统的C语言连接库文件; C libraries,little endian : 用于小端系统的C语言连接库文件; C+ + libraries,big endian : 用于大端系统的C+ +连接库文件; C+ + libraries,little endian : 用于小端系统的C+ +连接文件; Include files : 包含用户源程序的所有C和C+ +头文件; Help Files : 这些文件包括用于GUI程序的在线帮助信息,是否安装 这些程序都不影响运行。 (2)其它文件

16、 Example Files : 一组程序举例,包含源代码和Code Warrior工程文 件,可以在ADS中使用; HTML documents : 适用于Rogue Wave C+库的文档,可以适用网 络阅览器阅读; Dyna Text documents : ADS的连机在线格式的文档,为适用Dyna Tex阅览器而设计; PDF-ONLY DOCUMENTS : PDF格式文件,ARM体系结构手册,适 用Adobe Acrobat阅览器; ARMulator extension kit : 扩展的ARM仿真工具包; ARM FPA sources : ARM中FPA源文件; Sourc

17、e : ARM应用软件库源文件; Documentation : PDF格式ARM应用软件库文件,适用于Adobe Acrobat Reader阅览器。以上这些都是基本的ADS系统文件。 2 ADS环境中的文件类型 ADS开发环境中包含很多种文件,主要列举如下。 (1)程序员通过编辑环境建立的文件 C source file : C语言源文件,扩展名是c。这种文件是程序员 输入的C语言源文件。 C+ source file : C+语言源文件,扩展名cpp。这种文件是程 序员输入的C+语言源文件。 Assemble source file : 汇编语言源文件,扩展名是s。这种文 件是程序员输入

18、的ARM汇编语言源文件,包 含ARM指令和Thumb指令。 CodeWarrior projeket file : Code Warrior的工程项目管理文 件,扩展名是mcp。这种文件是程序员在建 立工程项目时生成的文件,包含工程项目内 的所有源文件,也包含这些源文件的调试信 息。 (2)通过编译器和连接器生成的文件 filename.h : 头文件。 filename.o : 编译器输出的ELF格式的目标文件。 filename.lst : 编译器输出的包含错误信息的列表文件。 filename.axf : 连接器生成的可执行的映象文件。 symdefs : 格式文件,时连接器生成的全局符

19、号表文件。 (3)经常使用的工具文件 armcc : ARM C语言编译器,把 C语言源程序(扩展名c)编译成32 位ARM代码。 tcc :ARM C语言编译器,把C语言源程序(扩展名c)编译成16位 Thumb代码。 armcpp :ARM C+语言编译器,把C+语言源程序(扩展名cpp) 编译成32位ARM代码。 tcpp :ARM C+语言编译器,把C+语言源程序(扩展名cpp)编 译成16位Thumb代码。 armasm : ARM汇编语言编译器 ,把ARM指令和Thumb指令的汇 编语言源文件编译成相应的代码。 armlink : ARM连接器,把编译输出的ELF格式的目标文件以及

20、相关 的C和C运行时库连接在一起,生成可执行的映象文件。 6.2.4系统软件开发步骤利用ADS开发平台开发软件的其基本步骤如图6-14所示:图6-14 应用ADS开发软件的步骤 程序的编辑、编译和连接是不依赖于硬件的,这些可以在CodeWarrior for ADS中实现。而ARM eXtended Debugger可以实现软件仿真环境,在进行软件仿真时可以不依赖于硬件。6.3 程序的编辑 6.3.1建立工程 6.3.2建立文件 6.3.3添加文件到工程 6.3.4文件管理 6.3.5 编辑画面的设置 6.3.6 ADS 编辑功能介绍 6.3.7屏幕分割设置6.3.1建立工程 工程将所有的源码

21、文件组织在一起,并能够决定最终生成文件存 放的路径,输出的格式等。在CodeWarrior中新建一个工程的方法有 两种,可以在工具栏中单击“New”按钮,也可以在“File”菜单中选择 “New”菜单。这样就会打开一个如图6-15所示的对话框。图6-15 新建工程对话框在这个对话框中为用户提供了7种可选择的工程类型。 ARM Executabl Image :由ARM指令的代码生成ELF格式的可执 行映像文件; ARM Object Library :由ARM指令的代码生成一个armar格式的目 标文件库; Empty Project :创建一个不包含任何库或源文件的工程; Makefile

22、Importer Wizard :将Visual C的nmake或GNU make文件 转入到CodeWarrior IDE 工程文件; Thumb ARM Executable Image:由ARM指令和Thumb指令的混和 代码生成一个可执行的ELF格式的映像文件; Thumb Executable image :由Thumb指令创建的ELF格式的映像 文件; Thumb Object Library :由Thumb指令的代码生成armar格式的目 标文件库。 在这里选择ARM Executable Image,在“Project name:”中输入工 程文件名,本例为“test”,点击“

23、Location:”文本框的“Set”按钮,浏览 选择想要将该工程保存的路径,将这些设置好后,点击“确定”,即可 建立一个新的名为test的工程。6.3.2建立文件在CodeWarrior for ADS中建立一个新的源文件的步骤如下: (1) 打开CodeWarrior for ADS,单击菜单栏的File,打开下拉菜 单中的New选项(见图6-16)在图中的3个标签中单击File标签,弹出 如图6-16所示的对话框。 (2) 然后在File标签页中建立源文件,在文件名File name对话框 中输入要建立的文件的名字,在这里命名位test.s,一定要注意文件的 扩展名。汇编语言文件的扩展名

24、是S。 (3) 在文件路径Location对话框中输入文件的路径,这里是 D:EXAMPLE。单击“确定”按钮,一个汇编语言的源文件建立完毕。图6-16选择File后弹出新建文件对话框 或者在CodeWarrior for ADS界面中单击Text File选项,建立一个文本文件。单击FileNew Text File 图标按钮,如图6-17所示。图6-17建立文件 在完成上述过程选择“确定”按钮后,就打开一个文件编辑器,然后在新建的文件中编写源程序。 按照汇编语言的规则,我们输入test.s所示的一段程序。 输入这段程 序后,使用File菜单中Save As选项或面板上存储按钮,把文件存储

25、到C:TEST中去。至此,我们使用ADS的CodeWarrior完成了一个汇编 语言的文件。test.s文件的内容如下: addr equ 0 x80000100 AREA text,CODE,READONLY ENTRY CODE32 START LDR R0 ,=addr MOV R1,#10 MOV R2,#20 ADD R1,R1,R2 STR R1,R0 B START END6.3.3添加文件到工程 在工程窗口的File窗口空白处右击鼠标,弹出浮动菜单,选择Add Files命令即可弹出Select file to add 对话框,选择相应的源文件(可 按着Ctrl键一次选择多个文

26、件),然后单击“打开”按钮即可。如图6-18 所示。图6-18添加文件到工程方法一 在建立好一个工程时,默认的target是DebugRel,还有另外两个 可用的target,分别为Realse和Debug,如图6-19,这三个target的含 义分别为: DebugRel :使用该目标,在生成目标的时候,会为每一个 源文件生成调试信息; Debug:使用该目标为每一个源文件生成最完全的调试信息; Release:使用该目标不会生成任何调试信息,目标代码的优 化等级最高。 在本例中,使用默认的DebugRel目标。现在已经新建了一个源文件,要把这个源文件添加到工程中去。图6-19目标选项 另外

27、,用户也可以通过在Project菜单中选择Add Files命令来添加 源文件,或使用New对话框选择File标签页在建立源文件时选择加入工 程(即选择Add to Project命令项)。添加文件操作如图6-20所示。图6-20添加文件到工程方法二6.3.4文件管理在CodeWarrior环境下文件的打开方法和保存方法: 1.怎样打开一个文件 打开一个文件有多种方法,一种方法是使用File菜单中的Open选 项,另一种方法是使用工具栏中的按钮。无论使用那种方法,都会弹 出一个图6-20所示的文件搜索对话框,提示搜索想要打开的文件。只 要输入正确的路径和文件名,就会打开该文件。还有一种方法就是

28、打 开曾经使用过的文件,使用File菜单中的Open Recent选项。 2 . 怎样打开一个工程项目 如果仅仅是为了编辑一个源文件,那么,使用上述打开文件的方 法打开源文件后,就可以输入程序,进行文件的编辑了。 如果还要对源文件进行编译操作,那么这样还不够,还要打开包 含这个文件的工程项目,才能够实现对原文件的编译操作。因为编译 后的目标文件、列表文件等要存储在工程项目文件夹中。 打开一个工程项目的方法和上述打开一个文件的方法相同,但打 开工程项目是打开工程项目文件夹的同名字的文件,扩展名是mcp。 例如,我们以上建立的工程项目名称是test,打开该工程项目就是打 开test文件夹下的tes

29、t. mcp文件。同样,要打开一个曾经使用过的工 程项目,可以使用File菜单中的Open Recent选项。 3 . 怎样保存文件和工程项目 保存文件或保存工程项目有两种方法: 一种方法是使用“文件”菜单中的Save(或者Save As,Save All等) 选项; 另一种是使用工具栏中按钮。6.3.5 编辑画面的设置 ADS提供一些设置选项来设置编辑画面,软件工程师可以通过这 些选项设置出具有个性的编辑画面,这些选项位于Edit下拉菜单中的 Preference菜单栏。 下面介绍这些选项的用法。打开Edit下拉菜单中的Preference菜 单栏,这组选项集中在Editor子菜单中。 1

30、. Editor Settings选项卡 打开Editor Settings选项卡,如图6-21所示。 图6-21 Edior Settings选项卡第1部分是设置Remember(保存)选项。 Font preferences:选择这个选项,系统会为每个文件保存程序员输 入时选定的字体信息;如果不选择该选项,所有的 文件都默认由CodeWarrior IDE设置的字体。 Window position and size:选择这个选项,系统会自动保存程序编辑 窗口在关闭时的位置和尺寸,以便在下次打开编辑 窗口时与这次完全相同;如果不选择该选项,每次 打开的编辑窗口都时CodeWarrior I

31、DE默认的位置 和尺寸。 Selection position:该选项决定文件打开时程序在编辑窗口中的位 置。如果不选择该选项,则文件打开时程序的第1 行位于编辑窗口的第1行;如果选择该选项,则文 件打开时程序在编辑窗口中的位置与关闭该文件时 相同。第2部分是设置级联(Contextual)菜单。 在ADS的很多窗口中,都有一个级联菜单。在编辑器窗口中右 击,也会打开一个级联菜单。在这个级联菜单中,所包含的操作命令 由以下选项设置。 Edit Command:选择该选项,在编辑器窗口级联菜单中将包含常 用的编辑命令。在编辑窗口中右击,系统将弹出 这个级联菜单。在这个菜单中,上层是常用的编 辑命

32、令,中间是项目操作命令。 Project Command:选择该选项,在编辑器窗口的级联菜单中将包 含常用的项目操作命令:Compile、Proprocess 和Disassemble;不选择该选项,则不会包含这 些命令。 VCS Commad:选择该选项,在编辑器窗口的级联菜单中将包含 常用的版本控制命令;不选择该选项,则不会包 含这些命令。 Browser Comnands:选择该选项,在编辑器窗口的级联菜单中增 加一条浏览器命令,比如用C语言编程时,右击 main( ),所弹出的级联菜单中有一行是“go to function definition of main”。 Insert Te

33、mplate Commands:在ADS中,Debug功能是不使用的, 因此,本选项无效。第3部分是其它一些设置。 Balance while typing:这个选项要求CodeWarrior IDE检测圆括号、 方括号和大括弧匹配性。 Use mutiple undo:在编辑菜单中,有一个Undo Typing功能和一个 Redo Typing功能。 Relaxed C popup parsing:如果在源代码中使用K&R风格的代码转 换,就应该选择该选项。 Drag and drop editing:在ADS中,编辑屏幕可以分割成多个编辑窗 口,如果选择该选项,可以在不同的编辑窗

34、口之间拖拽选中的程序片段,实现程序拷贝 功能;如果不选择该选项,则没有这个功能。 Left margin click selects line:这个选项是左边沿编辑功能选项。 Sort function popup:函数分类选项。 Enable Virtual Space:不选择该选项时,在编辑程序过程中,右移键 移到程序行结尾时,会自动跳出下一行的开 始;选择该选项时,当右移键移到程序行结 尾时,可继续右移,系统自动在程序行后填充 空格。也就是,选择该选项,可以在源程序行 后面任意位置进行插入操作。 Balance Flash Delay:在上面Balance while typing选项中

35、所应用的时 间延时,单位是1/60 s。 Default file format:系统默认的文本文件格式。在这个下拉菜单中, 有3个选项,分别是DOS、UNIX和Macintosh, CodeWarrior IDE会按照所选择的格式存储编辑 的文件。 2 . Font&Tabs选项卡 打开Font&Tab选项卡,弹出如图6-22所示的对话窗口。图6-22 Font&Tabs选项卡 这个选项卡是关于字体和制表键的选项卡。这些选项是应用于一 个文件,还是用于所有文件,取决于Editor Settings选项卡中Font preferences的选项。第1部分是编辑程序使用的

36、字体选项: Font:该选项是字体选项。在下拉菜单中,有三十多项西文选项和 十几项常见的中文选项(中文选项取决于计算机中的中文字 体)。 Size:该选项用于决定输入字符的尺寸。在下拉菜单中,有224种 可选项。 Script:该栏不是可选项,当Font栏选择西文时,该栏显示“西方语 言” ;当Font栏选择中文时,该栏显示“CHINESEGB2312” 。 Sample:样本显示栏。显示所选中的字体的样本。第2部分是关于Tab(制表键)的选项 Tab:在这个栏输入一个表达空格数量的数值,这个空格数就是Tab 键跳过的空格数。 Tab indents selection:Tab行缩进选项。选择

37、该选项,按Tab键时, 选中的行会右移Tab规定的空格数;不选择该选项,按Tab键 时,选中的行会被Tab字符(一般是空格)替换掉。注意,以 上选中的行一定是整行,而不是一行中的一部分,不仅仅是程 序中的字符,也包括字符后面的空格。也可以选中多行。 Auto Indent:编辑行自动缩进选项。选择该选项,按回车键开始下 一行时,光标在新一行的开始处自动与上一行对齐;不选择该 选项,按回车键后光标顶格开始新一行。 Tab Insert Spaces:选择该选项时,按Tab键时插入的是空格字符, 而不是制表字符。3 . Text Colors选项卡 这个选项卡是关于文本颜色设置的选项卡。打开Tex

38、t Colors选 项卡,弹出如图6-23所示的对话窗口。图6-23 Text Colors选项卡各项颜色设置说明如下: (1)文本颜色选项有两项。 Foreground:该选项指定的颜色用于文本中除下列各选项规定的 字符外的所有其余字符。 Background:该选项指定编辑画面的背景颜色。 (2)以下是把文本中的字符按语法分类配置颜色的选项,在改变这些选 项前,必须选择Activate Syntax Coloring选项栏。 Comments:文本注释颜色选项。 Keywords:关键字颜色选项。只适用于C和C+语言,不包括 宏、变量等。 Strings:字符串颜色选项。不包括注释、关键字

39、以及自定义的关 键字,包括变量名、路径名和类型名。 (3) Set1Set 4:用于设置自定义的关键字的颜色。这4个选项可以 设置4种自定义的关键字的颜色,这些设置对 CodeWarrior IDE所有文件发生作用。(4) 以下是浏览器颜色选项,在改变这些选项之前,一定要先选择 Activate Browser Coloring选项栏。 Classes:类别颜色选项。 Functions:函数颜色选项。 Temlates:模版颜色选项。 Constants:常量颜色选项。 Globals:全局变量颜色选项。 Enums:枚举颜色选项。 Macros:宏颜色选项。 Other:其它颜色选项。6.

40、3.6 ADS 编辑功能介绍 当使用ADS输入程序时,除以上介绍的选项会带来很多方便外, 还有一些编辑功能可以供我们使用,特别是在使用C或C语言时, ADS所提供的编辑功能和C或C其它编辑工具所提供的功能相近。 图6-24是ADS编辑器画面。图6-24编辑器画面 图中编辑窗口path中显示了文件名,第2行是工具栏,工具栏是 可以隐藏的,隐藏和显示是通过编辑屏幕右上角的工具栏控制按钮 实 现的。在工具栏已经被隐藏时,单击这个按钮可以显示工具栏;在显 示工具栏的情况下,单击这个按钮可以隐藏工具栏。编辑器的一些功能: 1头文件下拉菜单 单击图标,会弹出一个头文件下拉菜单。在这个下拉菜单中,包 含当前

41、文件涉及的所有文件。只要单击头文件名就可以打开所选中的 头文件,这样修改头文件就比较方便。 2函数下拉菜单 单击图标,会弹出一个函数下拉菜单。在这个下拉菜单中,包 含当前文件所有的函数。 3标签下拉菜单 单击图标,会弹出一个标签下拉菜单。在这个下拉菜单中,包含 当前文件中所有的标签。标签排列的顺序与源文件中的先后顺序一致。 4文档设置下拉菜单 单击图标,会弹出一个文档设置下拉菜单。这个菜单中可以打开或 关闭当前编辑画面的颜色,关闭颜色会使画面变成单色,打开颜色会使 画面变成由菜单EditEditorText Colors所设置的颜色。 5. 版本控制下拉菜单 单击图标,会弹出一个版本控制下拉菜

42、单VCS(Version Control System)。这个下拉菜单提供当前文件的操作记录,可以帮助维护源程 序的数据库。也可以使用这个下拉菜单从源文件中拷贝程序,检查修改 的文件。 6. 文件修改标志 文件修改标志包括和,这两个标志在编辑屏幕的右上角。如果当 前程序从上一次存储以来没有修改过,则显示标志;如果程序被修改 过,则显示,程序存储后又重新显示标志。6.3.7屏幕分割设置ADS编辑窗口可以实现下列设置: 打开多个文件,每个文件又一个独立的编辑窗口,但只能编辑 最后打开或激活的当前文件; 为一个文件设置多个窗口。下面介绍怎样为一个文件设置多个 窗口。图6-25是一个ADS编辑窗口,在

43、这个窗口的右上角和左上角分别又一 个屏幕分割控制条。把右上角的分割控制条用鼠标向下拉,可以分割 成上下两个屏幕;把左下角的分割控制条用鼠标向右拉,可以左右分 割成两个屏幕。这样就可以实现分割屏幕的要求。屏幕是可以分割成很多小屏幕的,在所有的屏幕中,都是同一个源文件。 这些不同屏幕内的程序是同步操作的。也就是说,对其中一个屏 幕的修改、选中、粘贴和删除等操作,在其它屏幕内也有相同的修 改、选中、粘贴和删除等效果。图6-25屏幕的分割6.4程序的编译 6.4.1命令行开发工具 6.4.2图形界面的ARM汇编工具 6.4.3 ARM C编译器 6.4.4图形界面编译器的应用 6.4.5编译连接工程6

44、.4.1命令行开发工具ADS系统提供了两种方式实现程序的编译和连接: 一种是命令行方式,它是在DOS环境下实现的编译和连接。 另一种方式是图形用户界面,就是上面介绍的CodeWarrior IDE界面; 两种方式所利用的都是同一ADS系统资源,实现的功能也是相同的。ADS提供下面的命令行开发工具: 1armcc armcc是ARM C编译器。 这个编译器通过了Plum Hall C Validation Suite为ANSI C的一致性 测试。armcc用于将用ANSI C编写的程序编译成32位ARM指令代码。 2armcpp armcpp是ARM C+编译器。它将ISO C+ 或EC+ 编译

45、成32位 ARM指令代码。 3tcc tcc是Thumb C 编译器。 该编译器通过了Plum Hall C Validation Suite为ANSI 一致性的测试。 tcc将ANSI C源代码编译成16位的Thumb指令代码。 4tcpp tcpp是Thumb C+ 编译器。 它将ISO C+ 和EC+ 源码编译成16 位Thumb指令代码。 5armasm armasm是ARM和Thumb的汇编器. 它对ARM 汇编语言和Thumb 汇编语言源代码进行汇编。 6armlink armlink是ARM连接器。该命令既可以将编译得到的一个或多个目标 文件和相关的一个或多个库文件进行链接,生成

46、一个可执行文件,也 可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。 ARM链接器生成的是ELF格式的可执行映像文件。 7armsd armsd是ARM 和Thumb的符号调试器。它能够进行源码级的程序 调试。用户可以在用C或汇编语言写的代码中进行单步调试,设置断 点,查看变量值和内存单元的内容。6.4.2图形界面的ARM汇编工具 在进行编译和链接前,首先介绍一下与生成目标有关的配置。点 击Edit菜单,选择“DebugRel Settings”(注意,这个选项会因用户选 择的不同目标而有所不同),出现如图6-26所示的对话框。 图6-26 DebugRel设置对话框这个对话框中的

47、设置很多,在这里只介绍一些最为常用的设置选项 : 1Target Setting设置选项 Target Setting设置选项包括如下选项: (1)Target Name:Target Name文本框显示了当前的目标设置。 (2)Linker:Linker选项供用户选择要使用的连接器。 (3)Pre-linker:目前CodeWarrior IDE不支持该选项。 (4)Post-Linker:选择在连接完成后,还要对输出文件进行的操作。 2ARM Assembler设置 选中Language Settings,该设置选项包括如下选项: ARM Assembler ARM C Compiler

48、ARM C+ Compiler Thumb C Compiler Thumb C+ Compiler 重点介绍ARM Assembler和ARM C Compiler两个选项的设置,ARM Assembler包括如图6-27中所示的选项卡:图6-27 Assembler设置(1)Target选项卡 如图6-28所示,Target选项卡中包括以下选项。图6-28 Target选项卡Initial State:指令代码类型选项。 Byte Order:大端小端选项卡,只能选其中之一。Architecture or Processor:用于设置目标CPU类型,ARM不同系列的 产品其体系结构和版本不

49、同,如果程序的指令版本和目标 CPU不符,会给出错误或者报警。Floating Point:用于选择浮点运算单元 (fpu:floating-point-unit)的体系 结构选项。 (2)ATPCS选项卡如图6-29所示,ATPCS选项卡包括以下选项。 图6-29 ATPCS选项卡Calling Standard:选中ATPCS则表示设置ATPCS选项, ATPCS (ARM and Thumb Procedure Call Standard)是ARM 和Thumb指令程序互相调用的标准。 ATPCS:该标签下有三个选项 ARM/Thumb interwork:该选项支持ARM指令和Thum

50、b指令混合使 用,选择该选项,汇编器在汇编源程序时,对 于两种指令的子程序调用能够生成一段代码 veneers,支持子程序调用时的状态切换。 Read-only position independent: 选中该选项表示指定源程序被汇编 为只读的和位置无关的代码或数据。 Read-write only independent:选中该选项表示指定源程序被汇编为 读/写的和位置无关的代码或数据。系统默认 为不选中。 Software stack:选择On表示对源程序汇编时,会进行软件数据栈限 制检查。 Predeclared Register Names-noregs:不预定寄存器名称选项。 (3

51、)Options选项卡如图6-30所示,Options选项卡包括以下选项。 图6-30 Options选项卡Checkreglist: 寄存器列表顺序核对选项。Nowarn: 报警信息选项。选择该选项时,汇编时不生成报警信息。Source Line Debug: 选中该选项,编译时生成DWARF2格式的调试 信息表。此项是默认选项。 Keep Symbols:选中该选项,汇编时会把局部标号保留在目标文件 的符号表中,供调试使用。Ignore C-style escape characters: 选中该选项,对源文件汇编时, 忽略C风格的换码字符,如n和t等。 Fault long runnin

52、g Load and Store Multiples: 选择该选项,在对源程 序汇编时,为了避免多寄存器传输引起中断延时,将检查指令LDM 和STM的寄存器列表,要求寄存器列表符合下列条件: 对于所有的STM指令,寄存器列表不得超过5个;对于所有 的LDM指令,寄存器列表不得超过5个且不得包含PC。如果LDM 指令包含PC,则寄存器列表不得超过4个。 (4)Predefines选项卡 如图6-31所示,Predefines选项卡包括以下选项。 图6-31 Predefines选项卡predefines: 定义全局变量选项。这个选项可以在汇编源程序时定义全 局变量。 (5)Listing Con

53、trol选项卡 如图6-32所示,Listing Control选项卡包括以下选项。 图6-32 Listing Control选项卡Miscellaneous标签包括: Listing on:列表文件选项,选择该选项,汇编时会生成一个详细的 列表文件。如果没有给出文件名,汇编器会给出和源文 件同名字的列表文件,扩展名是LST。 Terse:精简列表文件选项。汇编器在编译源程序时,有些条件语句 因条件不满足而不需要执行(例如IF条件后面的语句),这 些语句不被编译成目标代码。如果选择该选项,则这些语句 不包含在列表文件之中。如果不选择这一项,则这些语句包 含在列表文件之中。 Dimension

54、s标签包括: 列表文件宽度选项。系统默认79个字符宽 度。 列表文件长度选项。系统默认66行长度。 (6)Extras选项卡 如图6-33所示,Extras选项卡包括以下选项。 图6-33 Extras选项卡via file: 使用via格式文件选项。 在做软件设计时,一般使用CodeWarrior IDE图形方式而不用命令 行方式,起码在学习和使用的初级阶段是这样。上面已经举例说过汇编器的应用,这里再做进一步说明。1使用时应该注意的几个方面 一般使用汇编器应该注意以下以点: (1) 在同一个工程项目内可以有多种语言文件,除了汇编语言文件外, 还可以包含C和C+语言文件。在对汇编语言文件进行汇

55、编时,使 用的是汇编器;在对其它语言文件编译时,会用到其它编译器,如 果不对这些编译器进行设置,则它们会以默认的选项对文件进行编译。 (2) 在一个包含多个文件的工程项目内,当对选中的文件进行编译操作 (Compile)时,与工程项目内其它文件不发生关联。 (3) 在对文件进行编译时,应该使用Project下拉菜单中的Compile功能。 这个功能可以查找源程序中的错误并提出警告,可以生成列表文件 和生成目标文件。 (4) 在很多情况下,出现错误可能是因为设置不正确引起的,因此,要 正确设置各种选项。各选项都可以恢复到默认状态。汇编器的使用 使用图形方式汇编一个工程项目,一般应遵循下面的顺序:

56、 (1) 打开CodeWarrior IDE图形窗口,然后打开工程项目和所要编译 的文件; (2) 打开Edit下拉菜单,单击Debugrel Setings,打开目标选项面板 Target Settings Panels; (3)单击ARM Assembler,打开ARM汇编选项窗口; (4)根据以上对选项的介绍,对所有选项进行设置,然后从Apply退 出; (5)选中要汇编或编译的文件,使用Project菜单中的Compile功能, 实现汇编或编译; (6)窗口中给出错误信息列表。 根据错误信息的提示,对源文件进行修改。汇编器给出的错误信息或报警信息 汇编器在汇编时,会给出错误信息或报警信

57、息。报警信息不影 响程序的连接和调试,报警是一种不能确定的问题,可能是一种错 误,也可能不是一种错误。 在对源程序进行汇编时,汇编器会查找源程序的错误。这个查 找过程是通过对源程序多遍扫描来完成的,原则是先查找简单的错 误,然后查找复杂的错误;先查找语法或符号的错误,然后查找逻 辑错误。很多情况下,错误不是一次可以查清的,因此,源程序要 经过多次修改才能消除所有错误。6.4.3 ARM C编译器ARM C编译器包括如下选项卡: 1Target and Source选项卡 如图6-34所示,Target and Source选项卡包括以下选项。图6-34 ARM C编译器Architetore

58、or Processor :目标处理器型号和体系结构选项。下拉菜 单给出了所有的可选项。Floating Point:用于选择浮点运算单元 (fpu:floating-point-unit)的体 系结构选项。 Source-language:语言类别选项。指定了编译器可以接受的源程序 的语言种类,对于编译器,默认的语言是ANSI C; 对于C+编译器,默认的语言是ISO/IEC C+。Byte Order:littleendian 该选项指定编译器为ARM处理器生成小端 格式的代码。这种代码格式是把低位字节存放到低地址 单元。 2ATPCS选项卡 如图6-35所示,ATPCS选项卡包括以下选项

59、。 图6-35 ATPCS选项卡ARM/Thumb interwork:该选项支持ARM指令和Thumb指令混合使用, 选择该选项,汇编器在汇编源程序时,对于两种指令的子 程序调用能够生成一段代码veneers,支持子程序调用时 的状态切换。Software stack check:软件数据栈检查类型的ATPCS选项。Read-only position independent: 选中该选项表示指定源程序被汇编 为只读的和位置无关的代码或数据。 Read-write only independent:选中该选项表示指定源程序被汇编为 读/写的和位置无关的代码或数据。系统默认为不选中。 3War

60、nings选项卡 如图6-36所示,Warnings选项卡包括以下选项。图6-36 Warnings选项卡Warn for all conditions:选择该选项时,编译器打开所有的报警信息,包 括系统默认关闭的报警信息,特别指定的除外。 (1) Assignment in condition:这个选项关闭C2961W报警信息 “C2961W Use of the assignment operator in a condition context”。 (2)ANSI C extension: 这个选项关闭由于扩展ANSI C而产生的报警信息。 (3)Header file not guarded: 这个选项关闭报警信息

温馨提示

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

评论

0/150

提交评论