项目ADS开发环境入门指南.doc_第1页
项目ADS开发环境入门指南.doc_第2页
项目ADS开发环境入门指南.doc_第3页
项目ADS开发环境入门指南.doc_第4页
项目ADS开发环境入门指南.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

615项目ADS开发环境入门指南所属项目615项目编写时间2013.06.21版本号V1.0审核时间编写者蒋永刚批准时间一、ADS简介ADS是ARM公司官方发布的开发环境,目前已经停止更新,最新支持ARM11内核。ADS相对其他第三方开发环境,代码优化和稳定性比更好,支持比较多的仿真工具,但是不支持gcc格式的汇编语言。二、新建工程点击菜单File-New,出现新建对话框。新建对话框中可以选择新建工程、文件和其他对象。在新建工程页面中,第一项表示工程最终生成一个可执行的文件,第二项表示生成的是静态库,一般来说使用最多的是前两项。ADS也可以导入makefile类型的工程(典型的如gcc工程),使用第四项选项进行导入,但导入之后,需要修改makefile,使用ADS的编译工具链代替原先的编译工具。同时,正如第一章所说,导入gcc工程之后,所有的汇编语言文件需要进行修改才能在ADS下进行编译。具体移植的方法,见附录。在右方输入project name,就可以在指定目录下建立工程目录。接下来就是往工程中添加文件了。三、添加文件新建工程后,主页面里有三个选项卡:Files,Link Order和Targets。在Filet选项卡空白处右键,会弹出菜单第一个菜单项用来加入已经存在的源代码文件,可以一次加入多个文件;第二个菜单项用于建立目录,在工程文件比较多的时候,使用不同的目录可以方便管理。另外,还可以用点击左上角“新建”快捷按钮直接新建一个空白文档,并编写代码保存在工程目录下,然后使用上面的方式添加到工程中。四、配置工程属性将主选项卡切换到Tatgets页。ADS默认的工程有三个Targets配置可选,Release是发布版本,不包含调试信息,生成的程序文件较小;Debug是调试版本,包含很多调试信息,生成的程序文件较大;DebugRel则是比较灵活的方式。三个Targets图标前面的黑色表示这是目前编译和生成的配置。要切换Tatgets,在选项卡上方的下拉列表框中进行操作。选择了Tatgets的之后,需要对它进行配置。双击想要配置的Tatgets,弹出配置对话框。对话框里左边列表中有很多配置选项,但并不是所有都需要配置,一般来说,ARM Assembler、ARM C Compiler、ARM C+ Complier、ARM Linker、ARM Debugger都是要配置的,而Tatget Settings、ARM fromELF这两个会根据需要进行配置。4.1 Target Settings一般不需要修改,如果需要生成bin文件或者elf文件时,将Post-linker下拉列表选为ARM fromELF。4.2 ARM fromELF和4.1相对应的,一般情况下不需要修改,如果需要生成bin文件或者elf文件时,在Output Format中选择相应的格式,在Output file name中填写文件名。4.3 ARM Assembler/ARM C Compiler/ARM C+ Complier这三个配置比较相似,以ARM C Compiler为例说明。配置页面有多个选项卡,一般需要配置的是Tatget and Source、Debug/Opt两个选项卡。在Tatget and Source选项卡下,Architecture or Processor指定ARM核心版本,Floating Point选择浮点类型;在Debug/Opt选项卡下,Optimization level指定优化级别,Minimum选项不进行优化,在调试时的代码可读性最强;All选项进行最大程度优化,一般调试时就没办法根据源代码来调了;Most是两者均衡。我建议调试时使用Minimum,待发布时再改用All。它旁边的选项,用于决定是对空间还是时间加以优化,根据需求选择吧。4.4 ARM linkerARM linker配置对话框,用于配置可执行文件的链接,如果生成的是静态库的话就不用配置。它也有多个选项卡,一般要修改的是Output和Listings两个。Output选项卡是配置链接选项。Linktype选择链接的类型,Partie是分段链接,Simple是最简单的链接方式,即所有段都放到一块;Scattered是根据scf脚本文件进行链接。一般来说,简单的工程,如所有代码都加载到SRAM,并且只用到SRAM地址空间的,可以选择simple,设置好RO Base,即可执行文件的起始地址,RW Base,即数据段的起始地址即可。而稍微复杂点的工程,推荐使用scf脚本文件。Listings选项卡中是选择符号列表,即显示链接时变量、数据结构、函数等的链接地址信息,各个段的信息等。4.5 ARM DebuggerARM Debugger配置对话框用于配置调试时的选项。一般来说,这里只需要修改一个地方:Equivalent Command Line。在这里,将启动调试时的命令行代码变成axd -nologo -script .DebugSetting.txt,这样每次启动调试,都会运行名为DebugSetting.txt的调试脚本。这个脚本可以在程序运行之前,对下位机平台做一些初始化的动作,比如初始化时钟、SDRAM等。对于调试脚本的详细介绍见本文第六节。五、链接脚本ADS的链接脚本是scf后缀的文本文件,名字叫scatter,意思是分散加载描述文件。一个简单的scf的例子如下:ROM_LOAD 0xE0000004ROM_EXEC 0xE0000004init.o (STARTUP, +FIRST)* (+RO)IRAM_DATA 0x08000000* (+RW) IRAM_ZI +0* (+ZI) Scatter脚本文件由区组成,主要分为三种区:加载区、执行区和输入区。一般scatter文件中只用到加载区和执行区。每个区由一对“”包起来,一个区的简单定义如下:名称 地址 长度内容在scatter文件最外层的区是加载区,执行区一般包含在加载区内部。加载区的地址是本区内所有执行区的加载地址,执行区的地址是该区的执行地址。名称是用户自定义的字符串符号,这个符号可以在程序中引用。例如对于名称为IRAM_DATA的执行区,经过ADS编译后,会产生一些变量,依次表示IRAM_DATA区的加载地址、运行地址和长度。在汇编语言里,这三个变量名为|Load$IRAM_DATA$Base|、|Image$IRAM_DATA$ Base|和|Image$IRAM_DATA$Limit|,可以用以下方法加以引用:IMPORT |Load$IRAM_DATA$Base|LDR r0, =|Load$IRAM_DATA$Base|在C语言里,这三个变量名为|oad$IRAM_DATA$Base、Image$IRAM_DATA$Base、Image$IRAM_DATA$Limit,可以用以下方法加以引用:extern unsigned char Image$ROM_EXEC$Base;unsigned int *dst = (unsigned int*)&Image$IRAM$Base;注:使用变量时,要对变量取地址,而不是直接取值。执行区地址+0表示地址紧接着上面的段。长度如果不加以指定,则以实际链接时为准。内容是指定哪些段(伪指令section,AREA定义)该放到这个执行区中。一般来讲,代码段(包括代码和const型变量)用* (+RO)表示,数据段(包含所有定义了初始值的变量)用* (+RW)表示,末初始化变量段用* (+ZI)表示。六、调试脚本ADS的调试脚本是一个文本文件,下面以一个简单的调试脚本为例,解析脚本文件的简单应用。Setmem 0x40028010 0x40000000 32Setmem 0x40028004 0x40000004 32Setmem 0x4002802c 0x00000028 32memory 0x8000c000 Ld kickstart_nor_boot_nand.axf这是一个简单的脚本文件例子,整个脚本只有三种语句:Setmem,memory和ld。Setmem是写地址,memory是读地址,ld是开始执行调试镜像。Setmem的语法是setmem 地址 值 字长。地址和值都是16进制数,字长是指写入的位数,32指32位,即4个字节。Memory的语法是memory 地址,用于将该地址的值显示出来。Ld的语法是ld 文件名,用于启动需要调试的镜像,这个镜像是ADS编译后产生的axd调试文件。七、仿真器安装配置周立功的AK100仿真器是ARM平台在线仿真器,最高支持ARM11核心,支持ADS AXD仿真协议。要使用ADS+AK100进行在线调试,需要经过两个步骤:仿真器驱动安装和AXD目标配置。7.1 仿真器程驱动安装运行TKScopeSetup_ARM.EXE和vcredist_x86_cn_XP.exe,这两个是AK100的主程序。安装之后,记住安装路径,在这里记为TKSCOPE。将AK100仿真器通过USB连接到PC,此时跳出找到新硬件的对话框,选择手动安装,并且指定搜索目录。将搜索目录定位到TKSCOPETKScopeDriverAK100 DriverWinXP,然后系统会自动安装好AK100仿真器的USB驱动。7.2 AXD目标配置AK100的驱动安装完成之后,点击快捷按键中的Debug,ADS会调用AXD进行在线调试。AXD初次运行会弹出错误提示:这时候选择Configure,弹出仿真驱动对话框:点击Add按钮,选择TKSCOPETKScope目录下的TKSCP_DRV_for_RDI.dll然后点击Configure按键,弹出配置目标对话框:先点击硬件选择,往下拉,选择NXP-LPC2387-AK100;再点击硬件自检,如果自检都通过,则说明配置成功,点击确定返回,再次点击确定,然后关闭AXD,重新在ADS里启动调试就可以开始正常调试了。八、AXD调试工具AXD是ADS配套的在线调试工具,界面比较简陋,但是功能还是非常强大的。AXD的主界面如上图所示。AXD初始显示的界面是上图是不一样的,但可以通过配置来自定义界面的元素。这些是AXD常用的快捷按键。是显示寄存器,是查看特定变量值,是查看当前堆栈下的变量和全局变量,是查看函数调用栈,是显示内存,是显示工程中的文件,是显示Log,是命令行,是添加和删除断点,是调试动作,分别表示直接运行,暂停,单步进入,单步跳过,跳到函数外,执行到当前位置。在上图的右键菜单中有一项Interleave Disassembly,是在代码中显示汇编语言,即源代码每行编译的结果,一般可以去掉不看。附:GCC汇编向ARM汇编移植入门1.注释的修改,gcc格式和c语言习惯一样,而ARM汇编则是用;来实现的,需要全部变掉。2.段的定义,gcc中使用.code,.section等定义,而在ARM的定义方式如下:CODE32GLOBAL _startAREA vectors,CODE,READONLYENTRY3.代码标志,在gcc中是类似_armboot_start:这样的代码,但是在ARM

温馨提示

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

评论

0/150

提交评论