您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第9章-ARM汇编语言程序设计基础(87)
AFreesamplebackgroundfrom嵌入式系统设计基础教程江苏大学计算机科学与通信工程学院通信工程系陈祖爵E-mail:chenzujue@126.comTEL:13775360008AFreesamplebackgroundfrom课程理论教学内容安排第1章嵌入式系统基础知识第2章ARM体系结构第3章32BitRISC微处理器S3C2410A第4章嵌入式系统的存储器系统第5章嵌入式系统输入/输出设备接口第6章嵌入式系统总线接口第7章嵌入式系统网络接口第8章嵌入式系统软件及操作系统基础第9章ARM汇编语言程序设计基础第10章Bootloader设计基础第11章Linux操作系统基础第12章嵌入式Linux软件设计第13章图形用户接口(GUI)AFreesamplebackgroundfrom第9章ARM汇编语言程序设计基础9.1ADS集成开发环境4-329.2ARM汇编伪指令33-499.3ARM的汇编语言结构50-609.4ARM汇编语言程序调试61-749.5ARM汇编语言与C语言混合编程75-87AFreesamplebackgroundfrom集成开发环境ARM应用软件的开发工具根据功能的不同,可以分为编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板,JTAG仿真器以及在线仿真器等。目前有多家公司可以提供以上不同类型的开发工具,用户采用ARM处理器进行嵌入式系统开发时,选择合适的开发工具可以加快开发进度,节省开发成本。通常将编辑软件、编译软件、汇编软件、链接软件、调试软件、工程管理及函数库等都包含在一起的集成开发环境(IDE)较为常见,也是进行嵌入式系统开发时必不可少的。目前,典型的ARMIDE有STD(SoftwareDevelopmentkiT)、ADS(ARMDeveloperSuite)、Multi2000、Embest、HitoolforARM等。AFreesamplebackgroundfrom工具包的组成ADS是ARM公司推出的集成开发工具包,专用于ARM应用开发和调试的综合性软件。目前常用的版本是1.2,在功能和易用性上比早期的SDT都有提高,是一款功能强大又易于使用的开发工具。ARMADS包含有编译器、链接器、CodeWarriorIDE、调试器、指令集模拟器、ARM开发包和应用库等部分,可以用ADS开发、编译、调试采用包括C、C++和ARM汇编语言编写的程序。1.编译器ADS提供多种编译器,以支持ARM和Thumb指令的编译,包含有armcc(ARMC编译器)、tcc(ThumbC编译器)、armcpp(ARMC++编译器)tcpp(ThumbC++编译器)和armasm(ARM和Thumb汇编器).AFreesamplebackgroundfrom链接器Armlink(ARM链接器)可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。采用有ARM公司的源程序编辑、汇编及链接工具,针对ARM系列的每一种结构都进行了专门的优化处理,其代码生成工具最终生成的可执行文件最小,可以比其他公司工具套件生成的文件小20%。AFreesamplebackgroundfrom(集成开发环境)包括工程管理器、代码生成接口、语法敏感编辑器、源文件和类浏览器、源代码版本控制系统接口以及文本搜索引擎等。ADS仅在其PC机版本中集成了该IDE。CodeWarriorIDE为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarriorIDE为ARM和Thumb处理器开发用C、C++或者ARM汇编语言编写的程序代码。AFreesamplebackgroundfrom调试器(1)调试器类型ADS中包含有3个调试器,分别是ARM扩展调试器AXD,向下兼容的ADW(ARMdebuggerforwindows)、ADU(ARMDebuggerforUNIX)和ARM符号调试器armsd。Armsd是命令调试工具,用于辅助调试,或者用于其他操作系统平台上,能进行源码级的程序调试。用户可以用C语言或汇编语言编写的代码中进行单步调试,设置断点,查看量值和内存单元的内容。(2)调试方式在ARM体系中,可以选择Multi-ICE(Multi-processorin-circuitemulator)ARMulator或Angel多种调试方式。Multi-ICE是ARM公司自己的JTAG在线仿真器产品,不是由ADS提供的。ARMulator是ARM指令集模拟器,集成在ARM调试器AXD中,提供对ARM处理器的指令集的仿真,为ARM和Thumb提供精确模拟。在硬件尚未做好的情况下,在PC机上开发程序代码,利用模拟器方式调试,实现部分调试工作。Angel是ARM常驻在目标机Flash中的监控程序,通过RS-232C与PC机相连,就可以在PC机上对基于ARM架构处理器的目标机进行监控器方式的调试。AFreesamplebackgroundfrom开发包和函数库ARM开发包由一些底层的例程和库组成,用户可快速开发ARM的应用程序和操作系统。ADS的ARM应用库完善并增强了SDT中的函数库,还包括有用的源码例程。使用ARMADS开发应用程序与使用ARMSDT完全相同,可选择使用Angle驻留模块或JTAG仿真器。目前大部分JTAG仿真器都支持ARMADS。ADS提供ANSIC函数库和C++函数库,支持被编译的C和C++代码。用户可把C函数库中的与目标相关的函数作为应用程序中的一部分,重新进行代码的实现。在C函数库中很多函数是独立于其他函数,并与目标硬件没任何依赖关系。用户可根据应用程序的要求,对与目标无关的库函数进行适当的裁剪和利用。AFreesamplebackgroundfrom安装模式后的ADS工具包下图是采用Typical安装模式后,在程序栏里看到的ADS工具包组成,其中主要就是CodeWarrior编译器和AXD调试器这两个图形界面开发工具。AFreesamplebackgroundfrom开发工具集1.命令行开发工具命令行开发工具在实际应用中相对比较广泛,使用它最大的好处就是可以将许多编译命令写在一个脚本文件中,然后只执行该脚本文件就可以让工具自动地完成所有的编译工作命令行中常用的命令如下:(1)armcc:armcc是ARMC编译器。编译器通过了PlumHallCValidationSuite为ANSIC的一致性测试。armcc将ANSIC编写的程序编译成32位ARM指令代码;在命令控制台环境下,输人命令“C:armcc-help”可以查看armcc的语法格式以及最常用的一些操作选项。(2)armcpp:armcpp是ARMC++编译器。它将ISOC++或EC++源码编译成32位ARM指令代码;(3)tcc:tcc是ThumbC编译器。编译器通过了PlumHallCValidationSuite为ANSI一致性测试。tcc将ANSIC源代码编译成16位的Thumb指令代码。AFreesamplebackgroundfrom命令行开发工具(4)tcpp:tcpp是ThumbC++编译器。它将ISOC++或EC++源码编译成16位Thumb指令代码;armcpp、tcc和tcpp的命令行格式与armcc相同。(5)armsm:armsm是ARM和Thumb的汇编器.它对用ARM汇编语言和Thumb汇编语言写的源代码进行汇编;(6)armlink:armlink是ARM连接器。该命令即可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。ARM链接器生成的是ELF格式的可执行映像文件;(7)armsd:armsd是ARM和Thumb的符号调试器。它能够进行源码级的程序调试。用户可以在用C语言或汇编语言写的代码中进行单步调试,设置断点,查看变量值和内存单元的内容。AFreesamplebackgroundfrom开发环境图形用户界面(graphicuserinterface,简称gui)的大量使用很好的方便了非专业用户的使用。gui应用程序的设计是嵌入式系统设计的一个关键技术,能极大地提高人机交互的效率。ADSGUI开发环境主要包含CodeWarrior和AXD,其中CodeWarrior是用于编译和链接的集成开发工具,而AXD则是支持单步执行、断点设置等功能的集成调试工具。(1)CodeWarriorCodeWarriorforARM是一套完整的集成开发工具,充分发挥了ARMRISC指令系统的优势,可加速并简化开发过程的环节,只用集成软件开发环境就能研制出ARM产品。在开发过程中无需离CodeWarrior开发环境,可节省开发时间,将精力投入到代码编写上。CodeWarriorIDE为管理和开发项目提供了简单、多样化的图形用户界面。用户可以使用ADS的CodeWarriorIDE为ARM处理器开发使用C、C++或ARM汇编语言的程序代码。CodeWarriorIDE缩短了用户开发项目代码的周期,主要基于两点:一是全面的项目管理功能;二是子函数的代码导航功能,使得用户迅速找到程序中的子函数。AFreesamplebackgroundfrom开发环境(2)AXD调试器AXD调试器本身是一个软件,用户通过这个软件可以对包含有调试信息的、正在运行的可执行代码进行变量的查看、断点的设置、单步执行等调试操作。在ARM体系中,它有Multi-ICE、ARMulator和Angel等几种方式。AXD可以在Windows和UNIX下进行程序的调试,它为用C、C++和汇编语言的源代码提供了一个全面的Windows和UNIX环境。AFreesamplebackgroundfrom实用程序ADS提供实用工具来配合前面介绍的命令行开发工具使用。(1)fromELF是ARM映像文件转换工具。该工具可以将ELF格式文件转换为各种输出格式的文件,包括PlainBinary(BIN格式映像文件)、Freescale32bitS-recordformat(Frees-cale32位S格式映像文件)、IntelH
本文标题:第9章-ARM汇编语言程序设计基础(87)
链接地址:https://www.777doc.com/doc-4033736 .html