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

上传人:sccc 文档编号:4871304 上传时间:2023-05-20 格式:PPT 页数:33 大小:1.09MB
返回 下载 相关 举报
第ADS开发环境和ARM汇编语言.ppt_第1页
第1页 / 共33页
第ADS开发环境和ARM汇编语言.ppt_第2页
第2页 / 共33页
第ADS开发环境和ARM汇编语言.ppt_第3页
第3页 / 共33页
第ADS开发环境和ARM汇编语言.ppt_第4页
第4页 / 共33页
第ADS开发环境和ARM汇编语言.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《第ADS开发环境和ARM汇编语言.ppt》由会员分享,可在线阅读,更多相关《第ADS开发环境和ARM汇编语言.ppt(33页珍藏版)》请在三一办公上搜索。

1、第3章 ADS开发环境和ARM汇编语言,2,主要内容:,3.1 ADS开发环境3.1.1 ADS软件组成介绍3.1.2 使用ADS创建工程3.1.3 用AXD进行代码调试3.2 ARM汇编程序设计,3,3.1ADS开发环境,在这一节里,将介绍ARM开发软件ADS(ARM Developer Suite)。通过学习如何在CodeWarrior IDE集成开发环境下编写,编译一个工程的例子,使读者能够掌握在ADS软件平台下开发和调试ARM汇编程序。本节内容:3.1.1 ADS软件组成介绍3.1.2 使用ADS创建工程3.1.3 用AXD进行代码调试,4,3.1.1 ADS软件组成介绍,ARM AD

2、S全称为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处理器编写和调试自己的开发应用程序了。,5,3.1.1命令行开发工具,ADS提供下面的命令行开发工

3、具:Armcc ARM C编译器,默认工具Armcpp ARM C+编译器 tcc Thumb C编译器 Tcpp Thumb C+编译器 Armasm ARM和Thumb的汇编器 Armlink ARM连接器 Armsd ARM 和Thumb的符号调试器,6,3.1.2 ARM运行时库,ANSI C库函数:这个C函数库是由以下几部分组成:(1)在ISO C标准中定义的函数;(2)在semihosted环境下(semihosting是针对ARM目标机的一种机制,它能够根据应用程序代码的输入/输出请求,与运行有调试功能的主机通讯。这种技术允许主机为通常没有输入和输出功能的目标硬件提供主机资源)用

4、来实现C库函数的与目标相关的函数;(3)被C和C+编译器所调用的支持函数。ARM C 库提供了额外的一些部件支持C+,并为不同的结构体系和处理器编译代码。C+库函数包含由ISO C+库标准定义的函数。,7,库路径,库路径是在ADS软件安装路径的lib目录下armlib和cpplib的两个子目录。与这些库相应的头文件安装在adsv1_2include目录下环境变量ARMLIB必须被设置成指向库路径。另外一种指定ARM C和ARM C+库路径的方法是,在链接的时候使用操作选项-libpath directory(directory代表库所在的路径),来指明要装载的库的路径。无需对armlib和cp

5、plib这两个库路径分开指明,链接器会自动从用户所指明的库路径中找出这两个子目录。,8,3.1.3GUI开发环境(Code Warrior和AXD),CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了ARM RISC 的优势,使产品开发人员能够很好的应用尖端的片上系统技术.该工具是专为基于ARM RISC的处理器而设计的,它可加速并简化嵌入式开发过程中的每一个环节,使得开发人员只需通过一个集成软件开发环境就能研制出ARM产品,在整个开发周期中,开发人员无需离开CodeWarrior开发环境,因此节省了在操做工具上花的时间,使得开发人员有更多的精力投入到代码编写上来,Co

6、deWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面。用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C,C+,或ARM汇编语言的程序代码。,9,3.1.3.2 ADS调试器,调试器本身是一个软件,用户通过这个软件使用debug agent可以对包含有调试信息的,正在运行的可执行代码进行比如变量的查看,断点的控制等调试操作。ADS中包含有3个调试器:(1)AXD(ARM eXtended Debugger):ARM扩展调试器;(2)armsd(ARM Symbolic Debugger):ARM符号调试器;(3)Debug t

7、argetAXD可以在Windows 和UNIX下,进行程序的调试。它为用C,C+,和汇编语言编写的源代码提供了一个全面的Windows 和UNIX 环境。,10,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(Veril

8、og 16进制文件)。armarARM库函数生成器将一系列ELF格式的目标文件以库函数的形式集合在一起,用户可以把一个库传递给一个链接器以代替几个ELF文件。Flash downloader用于把二进制映像文件下载到ARM开发板上的Flash存储器的工具,11,3.1.5 ADS支持的软件,ADS为用户提供下面的软件,使用户可以在软件仿真的环境下或者在基于ARM的硬件环境调试用户应用程序。ARMulator这是一个ARM指令集仿真器,集成在ARM的调试器AXD中,它提供对ARM处理器的指令集的仿真,为ARM和Thumb提供精确的模拟。用户可以在硬件尚未做好的情况下,开发程序代码。,12,3.2

9、 使用ADS创建工程,3.2.1 建立一个工程 在CodeWarrior中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮,也可以在“File”菜单中选择“New”菜单。这样就会打开一个如图所示的对话框。,13,提供了7种可选择的工程类型,ARM Executabl Image:用于由ARM指令的代码生成一个ELF格式的可执行映像文件;ARM Object Library:用于由ARM指令的代码生成一个armar格式的目标文件库;Empty Project:用于创建一个不包含任何库或源文件的工程;Makefile Importer Wizard:用于将Visual C的nmake或G

10、NU 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”按钮,浏览选择想要将该工程保存的路径,将这些设

11、置好后,点击“确定”即可。,14,这个时候会出现ledcircle.mcp的窗口,如图8.2所示,有三个标签页,分别为files,link order,target默认的是显示第一个标签页files。通过在该标签页点击鼠标右键,选中“Add Files”可以把要用到的源程序添加到工程中。,15,对于本例,由于所有的源文件都还没有建立,所以首先需要新建源文件。在“File”菜单中选择“New”,在打开的如图8.1所示的对话框中,选择标签页File,在File name中输入要创建的文件名,输入“helloworld.S”,点击“确定”关闭窗口。在这里还有一个细节。在建立好一个工程时,默认的tar

12、get是DebugRel,还有另外两个可用的target,分别为Realse和Debug,这三个target的含义分别为:DebugRel:使用该目标,在生成目标的时候,会为每一个源文件生成调试信息;Debug:使用该目标为每一个源文件生成最完全的调试信息;Release:使用该目标不会生成任何调试信息。在本例中,使用默认的DebugRel目标。,16,3.2.2 编译和链接工程前的配置,点击Edit菜单,选择“DebugRel Settings”本课程实验程序都使用默认配置即可 更多详细配置说明 请看“ARM ADS集成开发环境的使用.doc”,17,3.3 用AXD进行代码调试,AXD(A

13、RM eXtended Debugger)是ADS软件中独立于CodeWarrior IDE的图形软件,打开AXD软件,默认是打开的目标是ARMulator。这个也是调试的时候最常用的一种调试工具,本节主要是结合ARMulator介绍在AXD中进行代码调试的方法和过程,使读者对AXD的调试有初步的了解。,18,编译,调试,运行,19,调试过程中-查看内存数据情况,20,调试过程中-查看寄存器数据情况,21,提纲,1,3,2,ARM 微处理器指令的分类,ARM 微处理器指令的寻址方式,3.2 ARM指令分类及寻址方式,ARM 微处理器指令的条件域,22,ARM微处理器的指令系统,ARM微处理器的

14、指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。ARM微处理器的指令集可以分为六大类:跳转指令数据处理指令程序状态寄存器(PSR)处理指令加载/存储指令协处理器指令和异常产生指令,ARM微处理器指令的分类,23,ARM微处理器指令表-1,ARM微处理器指令的分类,24,ARM微处理器指令表-2,ARM微处理器指令的分类,25,ARM微处理器指令表-3,ARM微处理器指令的分类,26,ARM微处理器指令表-4,ARM微处理器指令的分类,27,ARM微处理器指令表-5,ARM微处理器指令的分类,28,

15、指令的条件域,当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。每一条ARM指令包含4位的条件码,位于指令的最高4位31:28。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。例如,跳转指令B可以加上后缀EQ变为BEQ表示“相等则跳转”,即当CPSR中的Z标志置位时发生跳转。,ARM微处理器指令的条件域,29,指令的条件域表-1,ARM微处理器指令的条件域,30,指令的条件域表-2,ARM微处理器指令的条件域,31,ARM指令的寻址方式,ARM指令系统支持如下几种常见的寻址方式:立即寻址 寄存器寻址 寄存器间接寻址 基址变址寻址 多寄存器寻址 相对寻址 堆栈寻址,ARM微处理器指令的寻址方式,32,ARM指令系统,详见:常用ARM指令集及汇编.pdf,33,例子:ARM程序设计,ARM汇编:选择排序详见:示例程序example/ADS_example/选择排序/selectSortARM汇编:冒泡排序详见:示例程序example/ADS_example/冒泡排序/bubbleSort其他示例,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号