第ADS开发环境和ARM汇编语言.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADS 开发 环境 ARM 汇编语言
- 资源描述:
-
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,第3章 ADS开发环境和ARM汇编语言,主要内容:,3.1 ADS开发环境,3.1.1 ADS软件组成介绍,3.1.2 使用ADS创建工程,3.1.3 用AXD进行代码调试,3.2 ARM汇编程序设计,2,3.1ADS开发环境,在这一节里,将介绍ARM开发软件ADS(ARM Developer Suite)。通过学习如何在CodeWarrior IDE集成开发环境下编写,编译一个工程的例子,使读者能够掌握在ADS软件平台下开发和调试ARM汇编程序。,本节内容:,3.1.1 ADS软件组成介绍,3.1.2 使用ADS创建工程,3.1.3 用AXD进行代码调试,3,3.1.1 ADS软件组成介绍,ARM ADS全称为ARM Developer Suite。是ARM公司推出的新一代ARM集成开发工具。现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0。它除了可以安装在Windows NT4,Windows 2000,Windows 98和Windows 95操作系统下,还支持Windows XP和Windows Me操作系统。,ADS由命令行开发工具,ARM时实库,GUI开发环境(Code Warrior和AXD),实用程序和支持软件组成。有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序了。,4,3.1.1命令行开发工具,ADS提供下面的命令行开发工具:,Armcc ARM C编译器,,默认工具,Armcpp ARM C+编译器,tcc Thumb C编译器,Tcpp Thumb C+编译器,Armasm ARM和Thumb的汇编器,Armlink ARM连接器,Armsd ARM 和Thumb的符号调试器,5,3.1.3GUI开发环境(Code Warrior和AXD),CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了ARM RISC 的优势,使产品开发人员能够很好的应用尖端的片上系统技术.该工具是专为基于ARM RISC的处理器而设计的,它可加速并简化嵌入式开发过程中的每一个环节,使得开发人员只需通过一个集成软件开发环境就能研制出ARM产品,在整个开发周期中,开发人员无需离开CodeWarrior开发环境,因此节省了在操做工具上花的时间,使得开发人员有更多的精力投入到代码编写上来,,CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面。用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C,C+,或ARM汇编语言的程序代码。,8,3.1.3.2 ADS调试器,调试器本身是一个软件,用户通过这个软件使用debug agent可以对包含有调试信息的,正在运行的可执行代码进行比如变量的查看,断点的控制等调试操作。,ADS中包含有3个调试器:,(1)AXD(ARM eXtended Debugger):ARM扩展调试器;,(2)armsd(ARM Symbolic Debugger):ARM符号调试器;,(3)Debug target,AXD可以在Windows 和UNIX下,进行程序的调试。它为用C,C+,和汇编语言编写的源代码提供了一个全面的Windows 和UNIX 环境。,9,3.1.4 ADS实用程序,fromELF,这是ARM映像文件转换工具。该命令将ELF格式的文件作为输入文件,将该格式转换为各种输出格式的文件,包括plain binary(BIN格式映像文件),Motorola 32-bit S-record format(Motorola 32位S格式映像文件),Intel Hex 32 format(Intel 32位格式映像文件),和 Verilog-like hex format(Verilog 16进制文件)。,armar,ARM库函数生成器将一系列ELF格式的目标文件以库函数的形式集合在一起,用户可以把一个库传递给一个链接器以代替几个ELF文件。,Flash downloader,用于把二进制映像文件下载到ARM开发板上的Flash存储器的工具,10,3.1.5 ADS支持的软件,ADS为用户提供下面的软件,使用户可以在软件仿真的环境下或者在基于ARM的硬件环境调试用户应用程序。,ARMulator,这是一个ARM指令集仿真器,集成在ARM的调试器AXD中,它提供对ARM处理器的指令集的仿真,为ARM和Thumb提供精确的模拟。用户可以在硬件尚未做好的情况下,开发程序代码。,11,3.2 使用ADS创建工程,3.2.1 建立一个工程,在CodeWarrior中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮,也可以在“File”菜单中选择“New”菜单。这样就会打开一个如图所示的对话框。,12,提供了7种可选择的工程类型,ARM Executabl Image:用于由ARM指令的代码生成一个ELF格式的可执行映像文件;,ARM Object Library:用于由ARM指令的代码生成一个armar格式的目标文件库;,Empty Project:用于创建一个不包含任何库或源文件的工程;,Makefile 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:”中输入工程文件名,点击“Location:”文本框的“Set”按钮,浏览选择想要将该工程保存的路径,将这些设置好后,点击“确定”即可。,13,这个时候会出现ledcircle.mcp的窗口,如图8.2所示,有三个标签页,分别为files,link order,target默认的是显示第一个标签页files。通过在该标签页点击鼠标右键,选中“Add Files”可以把要用到的源程序添加到工程中。,14,对于本例,由于所有的源文件都还没有建立,所以首先需要新建源文件。,在“File”菜单中选择“New”,在打开的如图8.1所示的对话框中,选择标签页File,在File name中输入要创建的文件名,输入“helloworld.S”,点击“确定”关闭窗口。,在这里还有一个细节。在建立好一个工程时,默认的target是DebugRel,还有另外两个可用的target,分别为Realse和Debug,这三个target的含义分别为:,DebugRel:使用该目标,在生成目标的时候,会为每一个源文件生成调试信息;,Debug:使用该目标为每一个源文件生成最完全的调试信息;,Release:使用该目标不会生成任何调试信息。,在本例中,使用默认的DebugRel目标。,15,3.2.2 编译和链接工程前的配置,点击Edit菜单,选择“DebugRel Settings”,本课程实验程序都使用默认配置即可,更多详细配置说明,请看“ARM ADS集成开发环境的使用.doc”,16,3.3 用AXD进行代码调试,AXD(ARM eXtended Debugger)是ADS软件中独立于CodeWarrior IDE的图形软件,打开AXD软件,默认是打开的目标是ARMulator。这个也是调试的时候最常用的一种调试工具,本节主要是结合ARMulator介绍在AXD中进行代码调试的方法和过程,使读者对AXD的调试有初步的了解。,17,编译,调试,运行,18,调试过程中-查看,内存,数据情况,19,调试过程中-查看,寄存器,数据情况,20,提纲,1,3,2,ARM 微处理器指令的分类,ARM 微处理器指令的寻址方式,3.2 ARM指令分类及寻址方式,ARM 微处理器指令的条件域,21,ARM微处理器的指令系统,ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。,ARM微处理器的指令集可以分为六大类,:,跳转指令,数据处理指令,程序状态寄存器(PSR)处理指令,加载/存储指令,协处理器指令和异常产生指令,ARM微处理器指令的分类,22,ARM微处理器指令表-1,助记符,指令功能描述,ADC,带进位加法指令,ADD,加法指令,AND,逻辑与指令,B,跳转指令,BIC,位清零指令,BL,带返回的跳转指令,BLX,带返回和状态切换的跳转指令,BX,带状态切换的跳转指令,ARM微处理器指令的分类,23,ARM微处理器指令表-2,助记符,指令功能描述,CDP,协处理器数据操作指令,CMN,比较反值指令,CMP,比较指令,EOR,异或指令,LDC,存储器到协处理器的数据传输指令,LDM,加载多个寄存器指令,LDR,存储器到寄存器的数据传输指令,MCR,ARM寄存器到协处理器寄存器数据传输,ARM微处理器指令的分类,24,ARM微处理器指令表-3,助记符,指令功能描述,MLA,乘加运算指令,MOV,数据传送指令,MRC,协处理器寄存器到ARM寄存器数据传输,MRS,传送CPSR或SPSR的内容到通用寄存器,MSR,传送通用寄存器到CPSR或SPSR的指令,MUL,32位乘法指令,MLA,32位乘加指令,MVN,数据取反传送指令,ARM微处理器指令的分类,25,ARM微处理器指令表-4,助记符,指令功能描述,ORR,逻辑或指令,RSB,逆向减法指令,RSC,带借位的逆向减法指令,SBC,带借位减法指令,STC,协处理器寄存器写入存储器指令,STM,批量内存字写入指令,STR,寄存器到存储器的数据传输指令,SUB,减法指令,ARM微处理器指令的分类,26,ARM微处理器指令表-5,助记符,指令功能描述,SWI,软件中断指令,SWP,交换指令,TEQ,相等测试指令,TST,位测试指令,ARM微处理器指令的分类,27,指令的条件域,当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。,每一条ARM指令包含4位的条件码,位于指令的最高4位31:28。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。例如,跳转指令B可以加上后缀EQ变为BEQ表示“相等则跳转”,即当CPSR中的Z标志置位时发生跳转。,ARM微处理器指令的条件域,28,指令的条件域表-1,条件码,后缀,标,志,含,义,0000,EQ,Z,置位,相等,0001,NE,Z,清零,不相等,0010,CS,C,置位,无符号数大于或等于,0011,CC,C,清零,无符号数小于,0100,MI,N,置位,负数,0101,PL,N,清零,正数或零,0110,VS,V,置位,溢出,0111,VC,V,清零,未溢出,ARM微处理器指令的条件域,29,指令的条件域表-2,条件码,后缀,标,志,含,义,1001,LS,C,清零,Z,置位,无符号数小于或等于,1010,GE,N,等于,V,带符号数大于或等于,1011,LT,N,不等于,V,带符号数小于,1100,GT,Z,清零且(,N,等于,V,),带符号数大于,1101,LE,Z,置位或(,N,不等于,V,),带符号数小于或等于,1110,AL,忽略,无条件执行,ARM微处理器指令的条件域,30,ARM指令的寻址方式,ARM指令系统支持如下几种常见的寻址方式:,立即寻址,寄存器寻址,寄存器间接寻址,基址变址寻址,多寄存器寻址,相对寻址,堆栈寻址,ARM微处理器指令的寻址方式,31,ARM指令系统,详见:,常用ARM指令集及汇编.pdf,32,例子:ARM程序设计,ARM,汇编,:,选择排序,详见,:,示例程序,example/,ADS_example,/,选择排序,/,selectSort,ARM,汇编,:,冒泡排序,详见,:,示例程序,example/,ADS_example,/,冒泡排序,/,bubbleSort,其他示例,33,展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


第ADS开发环境和ARM汇编语言.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14629205.html