收藏 分享(赏)

1-5章《ARM嵌入式C编程标准教程》.ppt

上传人:精品资料 文档编号:10641706 上传时间:2019-12-13 格式:PPT 页数:190 大小:2.78MB
下载 相关 举报
1-5章《ARM嵌入式C编程标准教程》.ppt_第1页
第1页 / 共190页
1-5章《ARM嵌入式C编程标准教程》.ppt_第2页
第2页 / 共190页
1-5章《ARM嵌入式C编程标准教程》.ppt_第3页
第3页 / 共190页
1-5章《ARM嵌入式C编程标准教程》.ppt_第4页
第4页 / 共190页
1-5章《ARM嵌入式C编程标准教程》.ppt_第5页
第5页 / 共190页
点击查看更多>>
资源描述

1、高等学校嵌入式系统设计教材,ARM9处理器C语言编程标准教程,侯殿有 才华 编著,人民邮电出版社,第一章 ARM技术简介,1.1 ARM处理器简介ARM处理器是一种低功耗高性能的32位RISC (精简指令系统)处理器。本章将其从结构入手进行分析,基于目前流行的ARM920T核详细描述其硬件结构和编程。ARM处理器共有31个32位寄存器,而其中16个可以在任何模式下看到。它的指令为简单的加载与存储指令(从内存加载某个值,执行完操作后再将其放回内存)。ARM一个有趣的特点是它所有的指令都带有条件。例如用户可以测试某个寄存器的值,但是直到下次使用同一条件进行测试时,才能有条件地执行这些指令。另一个特

2、征是可以在加载数值的同时进行算术和移位操作。它可以在几种模式下操作,包括通过使用SWI(softwarinterrupt软件中断)指令从用户模式进入到系统模式。,ARM处理器是一个综合体,ARM公司自身并不制造微处理器。它们是由ARM的合作伙伴(Intel或LSI)制造。ARM还允许将其处理器通过协处理器接口进行紧耦合。它还包括几种内存管理单元的变种,包括简单的内存保护到复杂的页面层次。 ARM微处理器系列包括ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCode系列和Intel的Xscale。其中,ARM7、ARM9、ARM9E和ARM10E为4个通用处理器系列,每

3、一个系列提供一套相对独特的性能来满足不同应用领域的需求。例SecurCore系列专门为安全要求较高的应用而设计。,1.1.1 ARM7系列微处理器,ARM7系列微处理器是低功耗的32位RISC处理器,最适合用于对价位和功耗要求较低的消费类应用。ARM7系列有如下特点: 具有嵌入式ICERT (Internet Communications Engine-Route因特网通信)逻辑,调试开发方便。 极低的功耗,适合对功耗要求较低的应用,如便携式产品。 能够提供0.9MIPS(Million Instructions Per Second百万条/秒)/MHz的三级流水线结构。 对操作系统的支持广泛

4、,如Windows CE、Linux、Palm OS等。 指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。 主频最高可达130MHz,高速的运算处理能力能胜任绝大多数的复杂应用。,ARM7系列微处理器主要应用于工业控制、Internet设备、网络和调制解调器设备、 移动电话等多种多媒体和嵌入式应用。 ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TDMI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义如下: T 支持16位压缩指令集Thum

5、b(ARM体系结构中一种16位的指令集)。 D 支持片上Debug。 M 内嵌硬件乘法器(Multiplier)。 I 嵌入式ICE,支持片上断点和调试点。,1.1.2 ARM9系列微处理器,ARM9系列微处理器在高性能和低功耗特性方面提供最佳的表现。具有以下特点: 5级流水,指令执行效率更高。 提供1.1MIPS/MHz的哈佛结构。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA(Advanced Microcontroller Bus Architecture)总线接口。 全性能的MMU,支持WindowsCE、Linux、Palm OS等多种主流嵌入式操作系统

6、。 MPU支持实时操作系统。 支持数据Cache(高速缓冲存储器)和指令Cache,具有更高的指令和数据处理力。ARM9系列微处理器主要应用于无线设备,仪器仪表,安全系统,机顶盒,高端打印机,数字照相机和数字摄像机等。 ARM9系列微处理器包括ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。,1.1.3 ARM9E系列微处理器,ARM9E系列微处理器的主要特点如下: 支持DSP指令集,适合于需要高速数字信号处理的场合。 5级流水线,指令执行效率更高。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AMBA总线接口。 支持VFP9浮点处理协处理

7、器。 全性能的MMU,支持众多主流嵌入式操作系统。 支持数据Cache和指令Cache,具有更高的处理能力。 主频最高可达300MHz。ARM9E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。,1.1.4 ARM10E系列微处理器,ARM10E系列微处理器的主要特点如下: 支持DSP指令集,适合于需要高速数字信号处理的场合。 6级流水线,指令执行效率更高。 支持32位ARM指令集和16位Thumb指令集。 支持32位的高速AM

8、BA总线接口。 支持VFP10浮点处理协处理器。 全性能的MMU,支持众多主流嵌入式操作系统。 支持数据Chche和指令Chche,具有更高的处理能力。 主频最高可达400MHz。 内嵌并行读/学操作部件。 ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。ARM10E系列微处理器包括ARM1020E、ARM1002E和ARM1026JE-S三种类型,以适用于不同的应用场合。,1.1.5 ARM920T简介,ARM920T高缓存处理器是ARM9 Thumb系列中高性能的32位单片系统处理器。 而ARM920T系列微处理器包含如下几种类型的内

9、核。 ARM9TDMI:只有内核。 ARM940T:由内核、高速缓存和内存保护单元(MPU)组成。 ARM920T:有内核、高速缓存和内存管理单元(MMU)组成。ARM920T提供完善的高性能CPU子系统,包括以下方面: ARM9TDMI RISC 整数CPU。 16K字节指令与16K字节数据缓存。 指令与数据存储器管理单元(MMU)。 写缓冲器。 高级微处理器总线架构(AMBA)总线接口。 ETM(内置追踪宏单元)接口。,ARM920T中的ARM9TDMI内核可执行32位ARM及16位Thumb指令集。ARM9TDMI处理器是哈佛结构,有包括取指、译码、执行、存储及写入的5级流水线。 ARM

10、920T处理器包括以下两个协处理器。 CP14:控制软件对调试信道的访问。 CP15:系统控制处理器,提供16个额外寄存器来配置与控制缓存、MMU、系统保护、时钟模式及其他系列选项。ARM920T处理器的主要特征如下。 ARM9TDMI内核,ARM v4T架构。 两套指令集:ARM高性能32位指令集和Thumb高代码密度16位指令集。,5级流水线结构,即取指(F)、指令译码(D)、执行(E)、数据存储访问(M)和写寄存器(W)。 16K字节数据缓存,16K字节指令缓存。 写缓冲器:16字的数据缓冲器,4地址的地址缓冲器,软件控制消耗。 标准的ARMv4存储器管理单元(MMU):区域访问许可,允

11、许以1/4页面大小对页面进行访问,16个嵌入域,64个输入指令TLB及64个输入数据TLB。 8位、16位、32位的指令总线与数据总线。,1.1.6 SecurCore (可靠内核技术)系列微处理器,SecurCore系列微处理器除了具有ARM体系结构各种主要特点外,在系统安全方面具有如下特点:带有灵活的保护单元,确保操作系统和应用数据的安全。采用软内核技术,防止外部对其进行扫描探测。可集成用户自己的安全特性。SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。SecurCore系列微处理器包含SecurC

12、ore SC100、SecurCore SC110、SecurCore SC200和SecurCour SC210四种类型,以适用于不同的应用场合。,1.1.7 StrongARM (超强性能ARM技术)系列微处理器,Intel StrongARM SA-1100处理器是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Intel公司的设计和处理技术,以及ARM体系结构的电源效率,采用在软件上兼容ARMv4体系结构,同时采用具有Intel技术优点的体系结构。Intel StrongARM处理器是便捷式通信产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。,1.2

13、 ARM体系结构的发展,1.2.1 ARM体系结构的发展 在过去的十年中,ARM处理器经历了从简单的ARM7TDMI内核发展到最新ARM11EJ-S内核,ARM当前有5个产品系列ARM7、ARM9、ARM9E、ARM10、 SecurCore和ARM11。 从简单的三级流水线到先进的8级流水线结构。用单个时钟来进行比较,性能差别不大。 ARM11是ARM家族中性能最强的一个系列。 ARM7TM 通常只能在200MHz以下的频率运行;ARM11系列处理器展示了在性能上的巨大提升,首先推出350M500MHz时钟频率的内核,在未来将上升到1GHz时钟频率。 ARM11处理器在提供高性能的同时,也允

14、许在性能和功耗间做权衡以满足某些特殊应用。通过动态调整时钟频率和供应电压,开发者完全可以控制这两者的平衡。在0.13um工艺,1.2v条件下,ARM11处理器的功耗可以低至0.4mW/MHz。,ARMv6结构体系: ARM11处理器的超强性能是由一系列的架构特点所决定的。ARMv6是决定性能的基础。 总的来说,ARMv6架构通过以下几点来增强处理器的性能: 多媒体处理功能扩展 MPEG4编码/解码加快一倍 音频处理加快一倍 增强的Cache结构 实地址Cache 减少Cache的刷新和重载 减少上下文切换的开销 增强的异常和中断处理 使实时任务的处理更加迅速 使数据共享、软件移植更简单,也有利

15、于节省存储器空间,对绝大多数应用来说,ARMv6保持了100%的二进制向下兼容,使用户过去开发的程序可以进一步继承下去。ARMv6保持了所有过去架构中的T(Thumb指令)和E(DSP指令)扩展,使代码压缩和DSP处理特点得到延续;为了加速Java代码执行速度的ARM Jazalle技术也继续在ARMv6架构中发挥重要作用。,1.2.2 ARM11处理器的内核特点,ARM11是为了更有效的提高处理器能力而设计的。该系列主要有ARM1136J、ARM1156T2和ARM1176JZ三个内核型号 ,ARM11处理器使用130nm工艺,在2.2mm芯片面积上和0.24mW/MHz的前提下主频高达50

16、0MHz。ARM11处理器以消费产品市场为目标,推出了许多新的技术,包括针对多媒体处理的SIMD(Single instruction Multiple Data 单指令多数据流),用以提高安全性能的TrustZone(通过硬件和软件结合,为片上数据提供安全环境)技术,智能能源管理IEM(In-Ear Monitoring 耳内监听),以及非常高的、超过2600倍 Dhrystone 2.1标准(测量处理器的运算能力标准) MIPS(百万条指令/每秒) 性能的多处理器技术。,上面对几个ARM处理器内核做了简单的介绍。可以注意到,随着处理器内核技术的发展,处理器的速度越来越快,其主要得益于ARM

17、流水线的技术发展。 ARM1176JZF-S处理器专门用于包括数字电视、机顶盒、游戏机以及手机在内的家电产品和无线产品。这一处理器采用ARM Java加速技术、ARM TrustZone技术以及一个矢量浮点(VFP)协处理器,为嵌入式3D图像提供强大的加速功能。,1.2.3 DSP功能,DSP(digital singnal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万

18、条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片 目前有很多应用要求多处理器的配置(多个ARM内核,或ARM+DSP的组合),ARM11处理器从设计伊始就注重更容易地与其他处理器共享数据,以及从非ARM的处理器上移植软件。此外,ARM还开发了基于ARM11系列的多处理器系统MPCORE(由二个到四个ARM11内核组成)。,1.3 ARM体系结构的存储器格式,首先来了解ARM体系结构中的字长: 字(Word),在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构中,字的长度一般为16位。半字(Half Word),在ARM体系结构中,半字的长度为16位,

19、与8位/16位处理器体系结构中字的长度一致。 字节(Byte),在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8位。指令长度可以是32位(ARM状态下),也可以为16位(Thumb状态下)。ARM920T中支持字节(8位)、半字(16位)、字(32位)3种数据类型,其中,字需要4字节对齐,半字需要2字节对齐。 ARM920T体系结构将存储器看成是从零地址开始的字节的线性组合。从0字节到3字节放置第1个存储的字数据,从第4个字节到第7个字节放置第2个存储的字数据,依次排列。,作为32位的微处理器,ARM920T体系结构所支持的最大寻址空间位4GB(2字节)。 ARM920T体系结

20、构支持两种方法存储字数据,即大端(Big Enddian )格式和小端(Little Enddian )格式。在大端格式中,字数据的高字节存储在低字节单元中,而字数据的低字节则存放在高地址单元中,如图1.1所示。 在小端存储格式中,低地址单元存放的是字数据的低字节,高地址单元中,存放的是数据的高字节,如图1.2所示。,在基于ARM920T内核的嵌入式系统中,常用小端存储格式来存储字数据。,第一章习题与练习 1,嵌入式控制系统按操作系统分,大致可分哪几类,每类的设计方法有什么不同? 2,嵌入式控制不加嵌入式操作系统支持,遇到多线程或局域网问题如何解决?3,ARM体系中的字,半字和字节各占多少位(

21、bit)?4, 什么是大端存储 (Big Enddian ) 格式和小端存储 (Little Enddian ) 格式,ARM920T内核的嵌入式系统中,常用哪种存储格式来存储字数据?5, 什么是Thumb指令集?它和32位ARM指令集的区别?,第二章ADS 1.2开发环境创建与简介,2.1 ADS1.2开发环境创建 2.1.1 ADS1.2概述ADS是个集成开发环境,主要包括编译器、链接器、调试器、C和C+库等,是ARM公司推出的新一代ARM集成开发工具。最新版本是ADS1.2,该版本支持包括Windows和Linux在内的多种操作环境。ADS1.2的组成如下所述。 1. 编译器 ADS提供

22、多种编译器,以支持ARM和Thumb指令的编译,主要有: armcc:是ARM C编译器。 tcc:是Thumb C编译器。 armcpp:是ARM C+编译器。 tcpp:是Thumb C+编译器。 armasm:是ARM和Thumb的汇编语言编译器。,2. 链接器 armlink是ARM链接器。该命令既可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。 3 符号调试器 armsd是ARM和Thumb的符号调试器,能进行源码级程序调试。用户可以在用C或汇编语言写的代码中进行单步调试、设置断点、

23、查看变量值和内存单元的内容。,4 fromELF 将ELF格式的文件转换为各种格式的输出文件,包括BIN格式映像文件、Motorola32位S格式映像文件、Intel32位格式映像文件和Verilog十六进制文件。FromELF命令也能够为输入映像文件产生文本信息,例如代码和数据长度。 5 armar armar是ARM库函数生成器,它将一系列ELF格式的目标文件以库函数的形式集合在一起。用户可以把一个库传递给一个链接器以代替几个ELF文件。,6 CodeWarrior CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWa

24、rriorIDE为ARM和Thumb处理开发用C、C+或者ARM汇编语言编写的程序代码。 7 调试器 ADS中含有3个调试器,即AXD、Armsd和ADW/ADU。 在ARM体系中,可以选择多种调试方式,如Multi-ICE(Multi-processor In-Circuit Emulator)、ARMulator或Angel。 Multi-ICE是一个独立的产品,是ARM公司自己的JTAG在线仿真器,不是由ADS提供的。,ARMulator是一个ARM指令集仿真器,集成在ARM的调试器AXD中,提供对ARM处理器的指令集的仿真,为ARM和Thumb提供精确的模拟。用户可以在硬件尚未做好的情

25、况下开发程序代码,利用模拟器方式调试。 Angel是ARM公司常驻在目标机Flash中的监控程序,只需通过RS-232C串口与PC主机相连,就可以对基于ARM架构处理器的目标机进行监控器方式的调试。 C和C+库,ADS提供ANSI C库函数和C+库函数,支持被编译的C和C+代码。用户可以把C库中的与目标相关的函数作为自己应用程序中的一部分,重新进行代码的实现。这就为用户带来了极大的方便,针对自己的应用程序的要求,对与目标无关的库函数进行适当的裁剪。在C库中有很多函数是独立于其他函数的,并且与目标硬件没有任何依赖关系。对于这类函数,用户可以很容易地在汇编代码中使用。 有了这些部件,用户就可以为A

26、RM系列的RISC处理器编写和调试自己的开发应用程序了。,2.1.2 ADS1.2的安装,ADS全称为ARM Developer Suite,是ARM公司推出的新的一代ARM集成开发工具。现在ADS的最新版本是1.2,它取代了早期的ADS1.1和ADS1.0,该版本支持包Windows和Linux在内的多种操作系统。安装步骤如下: 在ADS1.2的安装盘中运行setup.exe,安装ARM Developer Suite v1.2。出现图2-1对话框和图2-2对话框,同意产权协义,选省缺安装路径(C:Program FilesARMvADS1.2)和典型安装模式(Typiflcation),按

27、Next进入下一步,出现选文件夹、编程语言和当前设定对话框,均按Next,开始安装,如图2-3示。 安装结束,安装许可文件(Install License),这一步可按安装向导进行,单击“下一步”按钮,会出现如图2-4和图2-5所示的对话框。,在图2-5对话框中选浏览(Browser)查许可文件,在Program FilesARMADSV1_2license中选license.dat文件并打开,单击“下一步”按钮,如图2-6,即可完成ADS1.2的安装。 最后,程序还要注册,注册文件在Program FilesARMADSV1_2文件夹中,单击注册文件,即完成程序注册,如图2-7所示。,2.2

28、 ADS集成开发环境的使用,2.2.1建立一个新工程 运行ADS1.2集成开发环境(CodeWarrior for ARM Developer Suite),点击File|New,在New对话框中,共有7项,ARM Executable Image是ARM的通用模板。选中它即可生成ARM的执行文件,如图2-8所示。,还要在Project name栏中输入项目的名称,以及在Location中输入其存放的位置,按确定保存项目。,2.2.2 开发环境设置 在新建的工程中,选择Debug版本,如图2-9,使用Edit|Debug Settings菜单对Debug版本进行参数设置。,在如图2-10中,点

29、击Debug Setting 按钮,弹出2-11图,选中Target Setting,项,在Post-linker栏中选中ARM fromELF项。按OK确定。这是为生成可执行的代码的初始开关。 3. 在如图2-12中,点击ARM Assembler ,在Architecture or Processer,栏中选ARM920T。这是项目选择的CPU类型。 4. 在如图2-13中,点击ARM C Compliler ,在Architecture or Processer栏中选ARM920T。这是要编译的CPU核。,5. 在如图2-14中,点击ARM linker ,在outpur栏中设定程序的代

30、码段地址,以及数据使用的地址。图中的RO Base栏中填写程序代码存放的起始地址,RW Base栏中填写程序数据存放的起始地址。该地址是属于SDRAM的地址。,在options栏中,如图2-15,Image entry point要填写程序代码的入口地址,其他保持不变,如果是在SDRAM中运行,则可在0x300000000x33ffffff中选值,这是64M SDRAM的地址,但是这里用的是起始地址,所以必须把你的程序空间给留出来,并且还要留出足够的程序使用的数据空间,而且还必须是4字节对齐的地址(ARM状态)。通常入口点Image entry point 为0x30000000,ro_bas

31、e也为0x30000000。 在Layout栏中,如图2-16,在Place at beginning of image框内,需要填写项目的入口程序的目标文件名,如,整个工程项目的入口程序是2410init.s,那么应在Object/Symbol处填写其目标文件名2410init.o,在Section处填写程序入口的起始段标号。它的作用是通知编译器,整个项目的开始运行,是从该段开始的。,6. 在如图2-17中,即在Debug Setting对话框中点击左栏的ARM fromELF项,在Output file name栏中设置输出文件名*.bin,前缀名可以自己取,在Output format

32、栏中选择Plain binary,这是设置要下载到flash中的二进制文件。图2-17中使用的是test.bin。,7. 到此,在ADS1.2中的基本设置已经完成,可以将该新建的空的项目文件作为模板保存起来。首先,要将该项目工程文件改一个合适的名字,如S3C2410 ARM.mcp等,然后,在ADS1.2软件安装的目录下新建一个合适的模板目录名,如,S3C2410 ARM Executable Image,再将刚刚设置完的S3c2410 ARM.mcp项目文件存放到该目录下即可。 8. 新建项目工程后,就可以执行菜单Project|Add Files把和工程所有相关的文件加入,ADS1.2不能

33、自动进行文件分类,用户必须通过Project|Create Group来创建文件夹,然后把加入的文件选中,移入文件夹。或者鼠标放在文件填加区,右键点击,如图2-18所示。,先选Add Files,加入文件,再选Create Group,创建文件夹,然后把文件移入文件夹内。读者可根据自己习惯,更改Edit|Preference窗口内关于文本编辑的颜色、字体大小,形状,变量、函数的颜色等等设置。如图2-19。,2.2.3 ADS1.2下仿真、调试,在ADS1.2下进行仿真调试,首先需要一根仿真调试电缆和JTAG仿真器,用调试电缆把 JTAG仿真器和上位机并口相连, JTAG仿真器的驱动程序为两个动

34、态链接库,也要事先安装。打开调试软件AXD Debugger。点击File|load image 加载可执行文件xx.axf,打开超级终端,设置其参数为:波特率为115200,数据位数8,奇偶校验无,停止位无1,数据流控无。点击全速运行,在我们的例子程序中,出现图2-20的界面:,最后介绍调试按钮,调试按钮在程序进入AXD Debugge状态时会出现在主菜单项,主要几个调试按钮如图2-21所示。,图2-21,左起第一个是全速运行,第二个是停止运行,第三个跳入函数内部单步执行,第四个把一个函数做为一个语句单步执行,第五个跳出函数。关于在ADS1.2下进行仿真调试,下面还要祥细介绍。,2.2.4

35、其他开发环境介绍,IAR(瑞典爱亚软件技术咨询公司) Embedded Workbench for ARM 是IAR Systems 公司为ARM 微处理器开发的一个集成开发环境,下面简称IAR EWARM。比较其他的ARM 开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。故在这里做简单介绍。 IAR Systems 公司目前推出的最新版本是IAR Embedded Workbench for ARM version 4.42,并提供一个32k 代码限制学习版或30 天时间限制的免费评估版,可以到IAR 公司的网站 下载。 IAR EWARM 中包含一个全软件的模拟程序(

36、simulator)。用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。从中可以了解和评估IAR EWARM 的功能和使用方法。,IAR EWARM 中包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。从中可以了解和评估IAR EWARM 的功能和使用方法。 IAR Embedded Workbench for ARM version 4.42 是一个针对ARM 处理器的集成开发环境,包含项目管理器、编辑器、编译连接工具和支持RTOS(嵌入式实时控制系统)的调试工具,在该环境下可以使用C

37、/C+和汇编语言方便地开发嵌入式应用程序。IAR EWARM 的主要模块如下: 项目管理器 功能强大的编辑器 高度优化的IAR ARM C/C+ Compiler IAR ARM Assembler 1 个通用的IAR XLINK Linker IAR XAR 和XLIB 建库程序和IAR DLIB C/C+运行库 IAR C-SPY 调试器(先进的高级语言调试器) 命令行实用程序,以下介绍一下EWARM 4.42 版本及其相关配套硬件的一些特点: 1 IAR EWAM 软件的特点 EWARM 4.42 版基本特点 完善的ARM 内核支持 最新支持到ARM11 及Cortex M3 内核 支持

38、的其他ARM 内核 ARM7(ARM7TDMI,ARM7TDMI-S,ARM720T) ARM9(ARM9TDMI,ARM920T,ARM922T,ARM940T,ARM9E,ARM9E-S, ARM926EJ-S,ARM946E-S,ARM966E-S,ARM968E-S) ARM10(ARM10E,ARM1020E,ARM1022E,ARM1026EJ-S) XScale(XScale,XScale-IR7) ,更加客户化地提供芯片级的支持 完备的各厂商ARM 处理器的C/C+和汇编语言外设寄存器定义文件 支持的芯片厂商有Analog Devices、ARM、Atmel、Cirrus Lo

39、gic、Freescale、Intel、NetSilicon、 OKI、Philips、Samsung、Sharp、ST 和TI 等 支持Analog Devices、Atmel、Freescale、OKI、Philips、ST 和TI 等厂商的ARM 处理器的Flash Loader 程序 软件集成了400 余个代码例程,对应于各种不同的芯片,位于.armsrcexamples 目录下 进一步改进了编译器速度优化,重写了的浮点运算库 对更多嵌入式操作系统的支持 新增支持OSEK 类操作系统的OSEK Run-Time Interface (ORTI),新增支持OSE Epsilon RTOS

40、 的Kernel Awareness 调试 新增支持embOS、SMX、NORTi 等的支持 调试器的增强功能 对堆栈运行的监测功能 配合IAR J-Link 仿真器的新增功能 J-Link TCP/IP 服务器 调试器和IAR J-Link 仿真器协同配合,实现对ARM 处理器的多核调试 对IAR J-Trace 仿真器提供全面的支持 在C-SPY 模拟器中可执行Trace 的模拟 支持同一芯片上多颗Flash 的Flash Loader 程序,以及通用的Flash Loader 开发指南, EWARM 软件在芯片级支持方面的特色 完备的各厂商ARM 处理器的C/C+和汇编语言外设寄存器定义

41、文件 大量适合于嵌入式代码的编程语言扩展特性,包括存储器关键字,函数,中断函数,存储器映射I/O 等 针对评估板的例程,包含IAR、Analog Devices、Aiji System、ARM、Atmel、Cirrus Logic、 Freescale、Keil、OKI、Olimex、Pasat、Philips、Phytec、ST 和TI 等厂家的开发支持ARM 或Thumb 模式下大至4G 字节的应用程序 每个函数都能选择在ARM 或Thumb 模式下编译 可生成VFP 向量浮点协处理器代码 支持Analog Devices、Atmel、Freescale、OKI、Philips、ST 和T

42、I 等厂商的ARM 处 器的Flash Loader 程序 支持ARM Angel Debug monitor, EWARM 编译器的软件特色 先进的通用编译器优化和针对特定处理器的速度优化及存储器优化功能 轻量运行库,用户可以根据需要自行配置,提供全部源代码 灵活的存储器控制,允许详细地为代码和数据分配地址 去除不需要的函数和变量 C/C+变量和函数连接时全局类型检查 可选的校验和生成功能,用于运行时映象校验 自动将代码和数据放置到非连续的存储器区域 强大的可重定位宏汇编器,支持丰富的命令集和操作符, EWARM 调试器的软件特色 . 完全集成的源代码和反汇编程序调试器 . 非常细化的执行控

43、制(函数调用级步进) . 复杂的代码和数据断点 . 丰富的数据监视功能 . Locals,Watch,Auto,Live Watch 和Quick Watch 等变量查看窗口 . 寄存器和存储器查看窗口 . 支持STL 容器,. C/C+调用栈窗口,同时还可以显示将要进入的函数 . 双击调用链上的任何函数将更新编辑器、局部变量、寄存器、变量查看和反汇编窗口,以显示在该函数调用时的状态 . 跟踪功能,可以检查执行的历史记录。在跟踪窗口中移动时将更新编辑器和反汇编窗口以显示合适的位置。 . 控制台I/O 仿真 . 中断和I/O 模拟仿真 . 类似C 语言的宏系统,可扩充调试器的功能 . 由主机执行

44、的应用程序系统调用仿真 . 代码覆盖率和执行时间分析工具 . 通用的Flash Loader 程序及开发指南 . 同时支持多颗Flash 的Flash Loader 程序 . 支持OSEK Run-Time Interface (ORTI) . 提供为调试器扩充第三方功能的软件开发包,如RTOS 调试扩充和仿真器驱动扩充 . 命令行调试工具, IAR C-SPY 支持的调试方法 . IAR J-Link JTAG 接口(支持所有ARM7 和ARM9 核,通过USB 或TCP/IP 连接) . RDI 接口类的第三方仿真器(Abatron BDI1000 & BDI2000, EPI Majic

45、, Ashling Opella, Aiji OpenICE, Signum JTAGjet, ARM Multi-ICE 等) . Macraigor Wiggler, Raven, mpDemon 和USBdemon 等调试接口 . EPI Jeeni 仿真器支持 . IAR 的 ROM-Monitor . ARM 公司的Angel ROM-Monitor(用于Atmel 和Cirrus Logic 的评估板) EWARM 图形化的集成开发环境的界面特色 . 分层次的工程组织 . 同一工作空间中允许存放多个工程 . 可停靠的窗口和多视图 . 源代码浏览 . 创建和维护库的工具 . 可以和源

46、代码控制系统相集成,. 文本编辑器 . 支持多字节字符(汉字) . 上下文相关的帮助系统 . 根据句法着色 . 无限制的undo/redo . 搜寻、替换和增量搜寻 . Go to . 书签 . 错误标签:查阅前一个/下一个 . 自动括号配对 . 智能缩排 . 类似网页浏览器的前向/后向源码查阅 . 代码断点的设置/清除/使能/禁止 . 命令行编译连接工具, EWARM 的编程语言和标准 . 遵循ISO/ANSI C94(带有一些从C99 标准中挑选的特性)标准的C 编程语言 . 嵌入式C+扩展,支持模板、多重继承和虚拟继承、名字空间以及其它不增加执行时间或存储器开销的C+特性。完整的嵌入式C

47、+库还包含字符串、流等特性。 . IEEE-754 浮点运算规则 . MISRA C 检查器 . 支持大量工业标准的调试和映象文件格式(如ELF/DWARF),与大多数常见的调试器和仿真器兼容 用户帮助 . 完备的例程和工程模板。 . 上下文相关的联机帮助系统,带有库函数查阅功能 . 印刷好的用户指南,带有详细的step-by-step 教程 . 友好、详尽和精确的错误信息和警告信息,2.3 用AXD进行代码仿真、调试,2.3.1 AXD简介 ADX(ARM extended Debugger)是ADS软件中独立于Code Warrior IDE的图形软件,可从Code Warrior for

48、 ARM Developer Suite中进入ADX进行调试,或在Windows下选择“程序”ARM Developer Suite v1.2AXD Debugger进入调试。要使用AXD必须首先有生成包含调试信息的程序,即由Code Warrior for ARM Developer Suite编译生成含有调试信息的可执行ELF格式的映像文件(*.axf)。,1 在AXD中打开调试文件 在Code Warrior for ARM Developer Suite界面中,点击Debugger进入AXD调试界面。 选择FileLoad image命令,打开Load image对话框,找到要装入的.

49、axf映像文件,单击“打开”按钮,就可以把映像文件装载到目标内存中,如图2-22所示。 利用Exeute菜单中的子菜单项对可执行映像文件进行调试,各选项的含义如下: . 选择Go子菜单或按F5键,将全速运行代码。 . 选择Stop子菜单或按Shift+F5键,将停止运行代码。 . 选择Step In子菜单或按F8键,以单步执行代码,若遇到函数,则进入函数内执行。 . 选择Step子菜单或按F10键,以单步执行代码,若遇到函数,则把函数看成一条语句单步执行。,. 选择Step Out子菜单或按Shift+F8键,在Step In单步执行代码进入函数内后,若选该子菜单,则可以从函数中跳出返回到上一级程序执行。 . 选择Run To cursor子菜单或按F7键,以全速运行到光标处停下。 . 选择Show Execution Context子菜单,可显示执行的内容。 . 选择Delete All Breakpoint子菜单,清除所有的断点。 2查看存储器、寄存器、变量内容,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报