ARM Development Tools Page 1 of 2 ARM 开发工具集 Keil公司开发的ARM开发工具MDK(Microcontroller Development Kit),是 用来开发基于ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开 发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK 包含了工业标准的Keil C编译器、宏汇编器、调试器、实时内核等组件,支持所 有基于ARM的设备,能帮助工程师按照计划完成项目。 Keil ARM开发工具集集成了很多有用的工具,如下图所示,正确的使用它 们,可以有助于快速完成项目开发。 Part Number MDK- ARM2,3 DB-ARM Components µVision IDE RealView C/C++ Compiler RealView Macro Assembler RealView Utilities RTL-ARM Real-Time Library µVision Debugger GNU GCC1 注意 u µVision IDE集成开发环境和µVision Debugger调试器可以创建和测试 应用程序,可以用GNU ARM ADS或者RealView的编译器来编译这些 应用程序; u MDK-ARM是PK-ARM的一个超集; u AARM汇编器、CARM C编译器、LARM连接器和OHARM目标文件 到十六进制的转换器仅包含在MDK-ARM开发工具集中。 除了上表所列工具外,Keil 还提供以下工具: mk:@MSITStore:M:\Keil\ARM\Hlp\armtools.chm::/armtools.htm 2009-2-25 ARM Development Tools Page 2 of 2 (cid:132) ULINK USB-JTAG Adapter 用于通过JTAG调试和烧写程序。 (cid:132) MCB2100 Evaluation Boards 用于测试基于Philips LPC2100系列设备的应用 程序。 (cid:132) MCB2103 Evaluation Boards用于测试基于Philips LPC2103系列设备的应用 程序。 (cid:132) MCB2130 Evaluation Boards 用于测试基于Philips LPC2130系列设备的应用 程序。 (cid:132) MCB2140 Evaluation Boards 用于测试基于Philips LPC2140系列设备的应用 程序。 (cid:132) MCB2300 Evaluation Boards 用于测试基于Philips LPCLPC2300系列设备的 应用程序。 (cid:132) MCBSTM32 Evaluation Boards用于测试基于STMicroelectronics STM32 系列 设备的应用程序。 (cid:132) MCBSTR7 Evaluation Boards 用于测试基于STMicroelectronics STR7系列设 备的应用程序。 (cid:132) MCBSTR730 Evaluation Boards 用于测试基于STMicroelectronics STR730系 列设备的应用程序。 (cid:132) MCBSTR9 Evaluation Boards 用于测试基于STMicroelectronics STR9系列设 备的应用程序。 (cid:132) RTL-ARM Real-Time Library 用于建立实时库。RTL-ARM 包含用于嵌入式 应用开发的Flash文件系统、TCP/IP协议栈。 Copyright (c) Keil - An ARM Company. All rights reserved. mk:@MSITStore:M:\Keil\ARM\Hlp\armtools.chm::/armtools.htm 2009-2-25 GSARM: Getting Started User's Guide Page 1 of 9 基于µVision的RealView编译工具概 述 本用户指南提供了有关RealView编译工具的说明,它是RealView 微控制器开发工具集的一部分。 本指南包括如下小节: (cid:132) 介绍 部分对RealView编译工具进行了概述。 (cid:132) 嵌入式程序 给出了创建面向微控制器的应用程序所需的内容。 (cid:132) 从CARM移植 部分说明了如何将Keil CARM下的程序移植到RealView下。 修订历史 (cid:132) 2006.6: 第一版. (cid:132) 2007.7: 添加了non-volatile memory, at attribute,和 multiple memory regions。 Copyright (c) Keil - An ARM Company. All rights reserved. 介绍 此用户指南是RealView微控制器开发工具集的一部分,它介绍了如何使用RealView编译工具创建 高效的嵌入式程序。对以前使用过Keil CARM编译器的用户来说,它介绍如何将CARM应用程序移 植到RealView编译工具下。 RealView编译工具是ARM公司15年来深入研发的结果。RealView微控制器开发集(RealView Microcontroller Development Kit) 涵盖了如下RealView编译工具组件。在µVision中的Project Workspace - Books页中可以看到有关这些产品的详细的PDF手册。 RealView 编译工具产品 C/C++ 编译器 C/C++运行时库 RogueWave C++ 标准模板库 Macro Assembler(宏汇编器) Linker/Locater(链接器/定位器) Library Manager (库管理) HEX File Creator (十六进制文件生成器) 用户手册 RV 编译器和库(RV_CC.PDF) RV 编译器和库 (RV_CC.PDF) RV 编译器和库 (RV_CC.PDF) RV 汇编器 (RV_ASM.PDF) RV 链接器/工具 (RV_Link.PDF) RV 链接器/工具 (RV_Link.PDF) RV 链接器/工具 (RV_Link.PDF) RealView编译工具被工业界认为是最能够充分发挥基于ARM体系结构处理器性能的编译器。编译 器能生成更小的代码映像,可帮助设计人员开发最紧凑的代码,这将大大降低产品成本。该编译 器能够生成面向32-bit ARM 和16-bit Thumb指令集的代码,并支持完全ISO标准的C和C++。 RealView 编译工具在减少程序代码和提高执行速度两个方面同时进行了优化。下图显示了在过去7 年内这两方面的改进。 file://C:\Documents and Settings\Administrator\Local Settings\Temp\~hh... 2009-2-25 GSARM: Getting Started User's Guide Page 2 of 9 RealView微控制器开发工具集有评估版(Evaluation Version)和完整版(Full Version)两个版本可 用。其中评估版的限制如下: (cid:132) 产生的应用程序ROM映像的大小被限制在16KB内。 (cid:132) 链接器不能使用分散加载文件(scatter-loading description files)以进行复杂的存储设计。 (cid:132) 代码/常量的基地址被限制为0xXX000000、0xXX800000或0x00080000,其中XX为00, 01, ..., FF。因此,存储的开始地址必须类似为0x00000000、 0x12800000等。 (cid:132) 不可能产生位置独立的代码或数据。 (cid:132) 汇编器不产生列表文件。 (cid:132) 不能将此评估版用作商业目的。 嵌入式程序 使用 RealView微控制器开发工具集编写嵌入式程序是相对容易的,本节将介绍嵌入式应用开发所 需完成的工作: (cid:132) 启动代码(Startup Code)是在应用程序的main函数被调用前进行一些初始化工作。此外,它还 为内存分配函数定义的栈空间及内存堆。 (cid:132) Retarget库文件 为硬件的I/O口配置C运行时库。 (cid:132) 链接器配置(Linker Configuration) 定义的目标硬件的存储映像。µVision可以自动生成工程 所需的链接配置文件。 此外,还要做如下几个指定的工作: (cid:132) 定位程序代码、常量或变量到指定的存储区。 (cid:132) 中断服务程序可在直接使用__irq 关键字用C语言来写。启动代码中包含了所需的中断微量的 重定位。对一些设备和FIQ中断,需对启动代码进行调整。 (cid:132) 向应用程序中添加软件中断处理(Software Interrupt Handler) ,它是应用程序中SWI函数的 入口地址。 (cid:132) 定位变量到绝对地址。 (cid:132) 使用non-vlatile存储区。 file://C:\Documents and Settings\Administrator\Local Settings\Temp\~hh... 2009-2-25 GSARM: Getting Started User's Guide Page 3 of 9 RealView 微控制器开发工具集针对不同的硬件平台提供了几个启动代码文件及例程,可以在如下 几个文件夹下后到这些文件: 文件夹 C:\KEIL\ARM\Startup C:\KEIL\ARM\Examples C:\KEIL\ARM\Boards 内容 基于RealView编译工具的启动代码文件. 基于RealView编译工具的通用例程. 基于RealView编译工具的板级例程. 启动代码(startup code) 启动代码用于初始化CPU以与硬件设计的配置相匹配,参阅开始使用ARM开发工具集用户指南, CPU启动代码 可以获取有关启动代码完成任务的详细信息。 不同系列的设备有不同的启动代码。文件夹\ARM\Startup 包含了基于 RealView编译工具的一些 启动代码,它被配置成适用于不同的硬件平台。当创建一个新的工程时,启动代码被自动地拷贝 到用于配置文件的工程文件夹下。 大多数启动文件为设备配置提供了符号定义,可以在 µVision的Project - Options - Asm - Define下 键入这些符号。 下面是常用的选项: (cid:132) REMAP: 在某些设备上执行存储映射。 (cid:132) EXTMEM_MODE: 配置为从片外Flash ROM执行代码。 (cid:132) RAM_MODE: 配置为从RAM执行代码。 (cid:132) RAM_INTVEC: 执行重映射并拷贝中断向量。 有关变量SET符号的详细说明及相关配置选项在启动代码文件中提供。 对由µVision自动生成的链接器配置来说,要求启动代码本身位于Reset段内,且中断向量表位于标 号Reset_Handler (代表CPU重启地址)处。 例子: : : AREA Reset, CODE, READONLY : : EXPORT Reset_Handler Reset_Handler ; CPU Reset Handler (executed after CPU Interrupt) 注意 (cid:132) 文件夹\ARM\Startup 下的所有启动代码都是按此方法配置。 Retarget库文件 RealView微控制器开发工具集带有一个预定义的retarget库文件,它是许多例程的一部分。 retarget 文件修改了底层的I/O 程序,并禁止了semi-hosting SWI 中断的使用。 file://C:\Documents and Settings\Administrator\Local Settings\Temp\~hh... 2009-2-25
评论