8ADS集成开发环境

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ARM嵌入式系统第8章ARMADS集成开发环境第8章ARMADS集成开发环境ARM开发工具简介ARM应用软件的开发工具根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板、JTAG仿真器、在线仿真器等,目前世界上约有四十多家公司提供以上不同类别的产品。第8章ARMADS集成开发环境常见的调试方法有以下几种:1.指令集模拟器2.驻留监控软件3.JTAG仿真器4.在线仿真器第8章ARMADS集成开发环境ARMADS的英文全称为ARMDeveloperSuite,是ARM公司推出的新一代ARM集成开发工具,用来取代ARM公司以前推出的开发工具ARMSDT,目前ARMADS的最新版本为1.2。ARMADS支持所有ARM系列处理器,除了ARMSDT支持的运行操作系统外还可以在Windows2000/Me以及RedHatLinux上运行。第8章ARMADS集成开发环境ARMADS由六部分组成:代码生成工具(CGT)集成开发环境(CWI)调试器(Debuggers——AXD、Armsd)指令集模拟器(ISS)ARM开发包(ARMFirmwareSuite)ARM应用库(ARMApplicationsLibrary)其中重点介绍一下图形界面开发工具。AXD提供给基于Windows和UNIX使用的ARM调试器。它提供了一个完全的Windows和UNIX环境来调试你的C,C++,和汇编语言级的代码。CodeWarriorIDE提供基于Windows使用的工程管理工具。它的使用使源码文件的管理和编译工程变得非常方便。但CodeWarriorIDE在UNIX下不能使用。创建工程ADS中的CodeWarrior是集管理、编辑、编译、链接于一体的集成开发环境。用户可以利用工程管理的思想组织项目开发中的源文件、库文件、头文件和其他相关的输入输出文件。工程能够将所有的源码文件有机地组织在一起,并决定最终生成文件存放的路径,输出的格式等。下面从最基本的工程创建入手介绍CodeWarrior集成开发环境。CodeWarriorIDE主界面使用ADS中的CodeWarrior项目管理器来管理源代码。一个嵌入式系统项目通常是由多个文件构成的,包括用不同的语言(汇编或C)、不同的类型(源文件,库文件)的文件。CodeWarrior通过“工程(Project)”来管理一个项目相关的所有文件。因此,在我们正确编译这个项目代码以前,首先要建立“工程”,并加入必要的源文件、库文件等。创建工程_选择File|New命令点击确定后,即可建立一个新的名为“ARM_Test”的工程。此时,会弹出ARM_Test.Mcp窗口添加文件ARM_Test.Mcp窗口包含三个标签页,在files标签下,可以通过单击右键添加已有的文件。例如,从目录中选取main.c文件(Myhelloworld\main.c),点击“打开”,main.c文件就被加入了工程中。用同样的方法,将所有的*.C和*.S源文件文件都添加到source中去(包括Target目录下的源文件)。所有必须的文件添加完成后如图所示。生成目标的设置每个工程项目都有3种生成目标:Debug包含了所有调试信息。DebugRel包含了部分调试信息。Release不包含调试信息。选择其中一种或多种作为最终生成的目标。此时工程已经建立完毕。但这样的工程还并不能正确地被编译,还需要对工程的编译选项进行适当配置。为了方便,以DebugRel模式为例。点击菜单[Edit|DebugRelSetting…],弹出配置对话框:首先选中TargetSetting,将其中的Post-linker设置为ARMfromELF,使得工程在链接后再通过fromELF产生二进制代码。然后选中ARMLinker,对链接器进行设置。参数设置_RO基地址:在调试时,-ro-base的设置应当大于0x0000。采用了0x8000这个地址。参数设置_设置入口点:Imageentrypoint制定映像文件的初始入口点地址值,当映像文件被夹在程序加载时,加载程序会跳转到该地址处执行。参数设置_指定起始输入段参数设置_指定可执行文件格式注意到在上图中新加入的文件前面有个红色的“钩”,说明这个文件还没有被编译过。在进行编译之前,必须正确设置该工程的工具配置选项。选中所有的文件,点击图标进行文件数据同步;然后点击图标,对文件进行编译(compile);点击按钮,对工程进行make,make的行为包括以下过程:编译和汇编源程序文件,产生*.o对象文件;链接对象文件和库产生可执行映像文件;产生二进制代码。Make结束后产生了可执行映象文件*.axf文件,这个文件可以载入AXD进行仿真调试了。并且还通过fromelf工具将ELF文件转换为二进制格式文件*.bin。它可以用来最终固化到flashROM中(但链接选项中的-ro-base要修改),也可以通过USB口下载运行。使用ARMulator来调试简单程序ARMulator是一个ARM指令集仿真器,集成在ARM的调试器AXD中,它提供对ARM处理器指令集的仿真,为ARM和Thumb提供精确的模拟。利用ARMulator可以在没有硬件目标平台条件下开发、运行特定ARM处理器上的应用程序。ARMulaor可以提供指令执行时内部寄存器状况及执行周期,可以进行应用程序的性能分析,这样就为软硬件并行开发提供了极大的方便。在CODEWARRIOR中,工程经过编译成功,产生了*.axf文件之后,就可以进行调试了。点击按钮,进入了AXD视窗界面。点击菜单项[Option|ConfigurTarget…],对调试目标进行配置:使用ARMulator来调试简单程序AXD调试环境_加载映像文件AXD调试环境_运行程序StepIn(或F8)或工具栏中图标Step(或F10)或工具栏中图标StepOut(或Shift+F8)或工具栏中图标RunToCursor(或F7)或工具栏中图标AXD调试环境_设置断点AXD调试环境_查看寄存器内容AXD调试环境_查看内存空间AXD调试环境_查看变量AXD调试环境_查看反汇编代码使用JTAG仿真器来调试程序使用AXD可以完成对程序的软件仿真调试,但要完成硬件仿真和调试功能,则需要通过JTAG仿真器实现ARM处理器与主机的通信联络。使用JTAG仿真器来调试程序初始化存储器通常ARM处理器都集成有SDRAM控制器。程序的在线调试实际上是要将程序代码通过JTAG仿真器下载到处理器的SDRAM空间执行,但是SDRAM在初始化上电时并不能直接访问,必须配置它的刷新计数值、刷新时间、刷新使能等才可以访问。初始化存储器就是设置ARM处理器的某些寄存器,实现对SDRAM存储空间映射的初始化过程。EELIOD系统硬件决定了在进行JTAG调试时,一上电SDRAM并没有初始化,故不能直接访问,下载程序前需要先进行SDRAM的初始化工作。初始化存储器程序仿真调试Semihosting调试技术Semihosting定义软件中断(SWI)指令SWI编号Semihosting调试技术Semihosting的实现原理C库函数重定向下面是实现fputc()重定向的一个例子:externvoidsendchar(char*ch);intfputc(intch,FILE*f){/*e.g.writeacharactertoanUART*/chartempch=ch;sendchar(&tempch);returnch;}程序的固化程序固化就是将调试完成后的程序代码烧写到非易失性存储介质中,常用介质包括ROM、EEPROM和FLASH等。程序的固化在程序固化开始前,需重新配置项目工程的ROBase和RWBase,使ROBase指向上电复位后的首地址0x0,RWBase指向256K片内RAM区首地址0x5C000000。将工程重新链接生成用于下载的8LED_SEG_c.bin文件。

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功