Keil Logo

Release Notes for CARM
Development Tool Kits for ARM-based Microcontrollers

Download this Update

This file contains release notes and last minute changes.

Information in this file, the accompanying manuals, and software is
Copyright © Keil™, An ARM® Company.
All rights reserved.


  1. What's New in CARM
  2. Example Programs
  3. Device Database
  4. Peripheral Simulation
  5. Technical Support
  6. Contact Details

A detailed description of the CARM development tools may be found in the Getting Started User's Guide which may be accessed on the µVision Project Workspace - Books page.

What's New in CARM

The following sections list the changes instituted in each release of the Keil ARM toolset.

Keil Development Tools for ARM Version 2.32a

  • [µVision3 IDE/Debugger/Simulator]
    Corrected problems with GNU C++ debugging including single and multiple inheritance.
  • [µVision3 IDE/Debugger/Simulator]
    Added automated source code search paths for GNU. Manually adding search paths with the SET SRC= debugger command is no longer required.
  • [µVision3 IDE/Debugger/Simulator]
    Corrected problems with RealView/ADS symbolic debugging with inline functions.
  • [µVision3 IDE/Debugger/Simulator]
    Added call stack display using the call stack frame information contained in the ELF/DWARF file.
  • [µVision3 IDE/Debugger/Simulator]
    Added RDI support which allows you to connect the µVision3 Debugger to RDI-compliant devices like the Segger JLINK. Detailed information is available in the Getting Started User's Guide — RDI Interface Driver.
  • [CARM C Compiler]
    Added source browser information to the generated object file.
  • [CARM C Compiler]
    Added the div and ldiv library routines.
  • [CARM C Compiler]
    Modified the default behavior of the µVision Debugger to loads *.ELF files.
  • [CARM C Compiler]
    Corrected a problem with floating-point division. In some situations, division with nearly identical numbers may have caused inaccurate results.
  • [CARM C Compiler]
    Corrected a parameter passing problem with indirectly called functions.
  • [CARM C Compiler]
    Corrected several problems with the __packed attribute and byte-aligned accesses.
  • [AARM Macro Assembler]
    Added the ability to specify user-defined class names in the AREA directive.
  • [ULINK USB-JTAG Adapter]
    Added support for Analog Devices ADuC703x and Philips LPC214x devices.
  • [ULINK USB-JTAG Adapter]
    Added several new Flash programming algorithms.
  • [ULINK USB-JTAG Adapter]
    Changed the reset/startup behavior as described in the Getting Started User's Guide — JTAG Debugging — ULINK: Reset Sequence..
  • [ULINK USB-JTAG Adapter]
    Modified the startup sequence in the KEILUL.SYS driver to prevent power failures (and system crashes) when the debugger starts.
  • [Atmel AT91SAM7S Support]
    Added Flash algorithms, header files, and extended startup code for the Atmel AT91SAM7S32/64/128/256 devices.
  • [Philips LPC214x Support]
    Added MCB2140 Evaluation Board, USB example projects, and header files for the following Philips Devices:
  • [OKI Device Support]
    Added startup code, example projects, ARTX RTOS configuration, and header files for the following OKI devices:
  • [OKI Device Support]
    Added the following example projects that run on OKI Evaluation Boards. The projects contain different targets for different memory configurations such as Flash, Internal RAM, and External RAM. The ABSTRACT.TXT file in each projects contains detailed information about the project and the available targets.
    • \ML674000\BLINKY\: Blinky example for the ML674000 Board.
    • \ML67Q4003\BLINKY\: Blinky example for the ML67Q4003 Board.
    • \ML67Q5003\BLINKY\: Blinky example for the ML67Q5003 Board.
    • \ML674000\ARTX_BLINKY\: Blinky example using the ARTX RTOS for the ML674000 Board.
    • \ML67Q4003\ARTX_BLINKY\: Blinky example using the ARTX RTOS for the ML67Q4003 Board.
    • \ML67Q5003\ARTX_BLINKY\: Blinky example using the ARTX RTOS for the ML67Q5003 Board.

Development Tools for ARM Version 2.20

  • [µVision3 IDE/Debugger/Simulator]
    Enhanced the Configuration Wizard to ease switching between wizard mode and text mode.
  • [µVision3 IDE/Debugger/Simulator]
    Added several new features to the Logic Analyzer including HEX display mode, automatic setup for Min/Max values, and a new context menu.
  • [CARM C Compiler]
    Added more device-specific startup code (in \KEIL\ARM\STARTUP\) with new options. New options are documented in each startup file.
  • [CARM C Compiler]
    Added a new __inline keyword which enables function inlining and cross-module function inlining. See \KEIL\ARM\EXAMPLES\INLINE\ for an example.
  • [CARM C Compiler]
    Enhanced warnings generated for conditional expressions that always evaluate to true or false. Some warnings have been moved to warning level 3.
  • [CARM C Compiler]
    Corrected problems introduced when removing unused __ram functions.
  • [CARM C Compiler]
    Corrected several problems specific to UML support.
  • [ULINK USB-JTAG Adapter]
    Added several Flash programming algorithms for external devices. Refer to the Getting Started User's Guide for a complete list of supported algorithms.
  • [LARM Linker]
    Added a new linker directive, UNUSED, that allows you to remove unused functions from the program linkage.
  • [STR71x Support]
    examples and libraries for STMicroelectronics STR71x devices are provided with standard __irq functions as required by the ARTX Advanced RTOS for ARM.
  • [ARTX Advanced RTOS for ARM]
    Added several enhancements to the kernel and several adaptations for various devices.

Development Tools for ARM Version 2.10

  • [µVision3 IDE/Debugger/Simulator]
    Added partial device simulation and target debugging for the following devices: Complete device simulation is expected in April 2005.
  • [STR71x Library]
    The STR71x-specific device library (available as a separate download) has been updated and includes corrections for a problem in the generic interrupt handler.
  • [Hitex STR7 Evaluation Board Support]
    Added examples for the Hitex STR7 Evaluation Board in the \KEIL\ARM\...\BOARDS\HITEX\STR7\ folder.
  • [CARM C Compiler]
    Improved code generated for __fiq functions, indirect function calls, and common sub-expression pointer arithmetic.
  • [CARM C Compiler]
    Corrected problems with loop optimization and long long arithmetic.
  • [CARM C Compiler]
    Corrected a problem with the atof library routine. When converting small floating-point numbers (like 1.234567e-35), the return value was NaN instead of the correct value.
  • [CARM C Compiler]
    Shifted the "Unreferenced Local Variable' warning to the default warning level 2.
  • [LARM Linker]
    Solved problems with incorrect "Data Type Different" linker warnings.
  • [µVision3 IDE/Debugger/Simulator]
    Corrected a problem with PWM and SPI simulation on Philips LPC2000 devices. The TRACESYNC, RTCK, BOOT0, and BOOT1 pins are now sampled at reset which allows startup simulation with external bus configuration.
  • [µVision3 IDE/Debugger/Simulator]
    Corrected a potential problem in the Editor when outlining is enabled.
  • [µVision3 IDE/Debugger/Simulator]
    Corrected a potential problem loading GNU ARM C++ code.
  • [µVision3 IDE/Debugger/Simulator]
    Added several new context menu items that provide quick access to listing files. The linker CODE listing may now be accessed within the editor.

Development Tools for ARM Version 2.00

  • [µVision3 IDE/Debugger/Simulator]
    Added device simulation and target debugging for the following devices:
  • [µVision3 IDE/Debugger/Simulator]
    Added example projects for the Keil MCB2130 Evaluation Board to the \KEIL\ARM\...\Boards\Keil\MCB2130 folder .
  • [µVision3 IDE/Debugger/Simulator]
    Added example projects for the Atmel AT91SAM7S Evaluation Board in the \KEIL\ARM\...\Boards\Atmel\AT91SAM7S folder.
  • [ULINK USB-JTAG Adapter]
    Corrected a problem with Big Endian interpretation on Samsung devices. A configuration example may be found in the \KEIL\ARM\GNU\Boards\Samsung\S3C340X) folder.
  • [ULINK USB-JTAG Adapter]
    Philips LPC213x and LPC210x devices are now stopped at RESET. This resolves issues with lock situations (for example IDLE mode) that disable JTAG.
  • [CARM C Compiler]
    The Keil CA ARM Compiler is now released and is no longer in BETA.
  • [CARM C Compiler]
    Added a PACK directive and a __packed attribute that allow definition of byte-aligned variables.
  • [AARM Macro Assembler]
    Corrected a problem with the LDR PC,=Reset_Addr instruction. It should load the address, but not the content. Check your STARTUP.S files, since this instruction was part of the startup code in early versions.
  • [LARM Linker]
    Added ELF/DWARF file output to *.ELF file.
  • [µVision3 IDE/Debugger/Simulator]
    Enhanced the ELF/DWARF loader for include support for:
    • Full stack tracking,
    • Displaying enum types,
    • Using the lifetime information for register variables,
    • Debugging of source code in include files.
  • [µVision3 IDE/Debugger/Simulator]
    Added kernel-aware support for the AR-ARM Advanced RTOS.

Development Tools for ARM Version 1.5b

  • [ULINK USB-JTAG Adapter]
    Corrected a problem with Big Endian interpretation on Samsung Devices. Refer to the configuration example in the \KEIL\ARM\GNU\BOARDS\SAMSUNG\S3C340X folder.
  • [µVision3 IDE/Debugger/Simulator]
    Added startup code, example projects, and header files for the Samsung S3C44B0X.
  • [AARM Macro Assembler]
    Corrected a problem with LDR PC,=Reset_Addr (which should load the address and not the contents). Note: Check your STARTUP.S files since this was used in early versions of the startup code.

Development Tools for ARM Version 1.5

  • [µVision3 IDE/Debugger/Simulator]
    Added startup code, example projects, and header files for the following devices: * STR71x devices are supported by a separate installation package.
  • [ULINK USB-JTAG Adapter]
    Added Maximum JTAG Clock Selection which is required with slow CPU clocks. For example, a Philips LPC2000 running below 4MHz may have a maximum JTAG clock of 200KHz.
  • [ULINK USB-JTAG Adapter]
    Added Debug I/O which allows test input/output via the JTAG debugging channel. The µVision Serial Window may be used for user I/O.
  • [CARM C Compiler Beta 3]
    Added Software Interrupt (SWI) support.
  • [CARM C Compiler Beta 3]
    Corrected a problem with in-line assembly support.
  • [ARTX Advanced RTOS for ARM BETA 1]
    This release includes an unlimited BETA release of the Keil Advanced Tiny Real-Time Kernel (ARTX for ARM). Example projects and on-line documentation are included. Refer to the \KEIL\ARM\ARARM\ folder.

DK-ARM Version 1.4 Release

  • [µVision3 IDE]
    Improved F1 context-sensitive help. Added Help buttons to all configuration dialogs and linked them to the user's guide.
  • [µVision3 IDE]
    Corrected problems when creating C++ applications with GNU.
  • [µVision3 Debugger/Simulator]
    Enhanced the execution profiler. It is now available in the disassembly window and it may be used with Source Outlining (execution times are listed for collapsed lines code sections). When hovering the mouse cursor over the execution profile column, detailed statistic information is listed in a tool tip.
  • [µVision3 Debugger/Simulator]
    Added color indicators for data coverage in the memory window: write-before-read (green), write-without-read (brown), read-before-write (red). Colors may be changed in the Edit - Configuration dialog.
  • [µVision3 Debugger/Simulator]
    Added several other minor enhancements including data export in the Logic Analyzer.
  • [µVision3 Debugger/Simulator]
    Corrected a problem when single-stepping in a GNU application that contains ARM/Thumb intermixing.
  • [µVision3 Debugger/Simulator]
    Added BUS configuration options to the STARTUP.S files for Analog Devices ADuC7000 parts and corrected the PWM simulation behavior (TRIP=1 when not connected to I/O pin).
  • [ULINK USB-JTAG Adapter] Added Manual JTAG Chain Configuration which is required for some devices that do not provide plug-and-play capabilities (as is the case with some PLDs).
  • [ULINK USB-JTAG Adapter] Added a Full Chip Erase option that gives higher total programming speed on Philips LPC2000 microcontrollers. The programming algorithm has a new entry point.
  • [ULINK USB-JTAG Adapter] Enhanced the verify function. It is now performed using a CRC algorithm that significantly reduces the time to verify programming.
  • [CARM C Compiler Beta 2]
    This release includes an unlimited beta release of the Keil CA ARM C Compiler.
  • [CARM C Compiler Beta 2]
    Added extensive loop optimizations into optimizer level 7.
  • [CARM C Compiler Beta 2]
    Added a __ram function attribute that allows you to copy functions to RAM for execution. These functions are located in the ERAM memory class.
  • [CARM C Compiler Beta 2]
    Corrected problems with the in-line assembler.

DK-ARM Version 1.3 Release

  • [Philips LPC21x9 Device Simulation]
    Corrected a CAN simulation inconsistency with the Philips user's guide. CAN Tx/Rx interrupt assignment and ERRBIT codes (in CANICR) now match the actual device.
  • [Analog Devices ADuC7000 Simulation]
    Added device simulation for the ADuC7000 Precision Analog Microcontroller device series.
  • [GNU Library Manager Support]
    Corrected a problem with the GNU Library Manager and lots of object files.
  • [CARM C Compiler - Beta]
    This release includes an unlimited beta release of the Keil CA ARM C Compiler. The Keil toolset is optimized for the Thumb mode but also supports the ARM native instruction set. The compiler includes a very efficient 32-bit floating-point library and run-time routines for embedded applications. 64-bit double float and 64-bit long-long support will be included in the next beta release. Program examples may be found in the \KEIL\ARM\BOARDS and \KEIL\ARM\EXAMPLES folders.
  • [PHYTEC phyCORE-ARM7/LPC229x Evaluation Board]
    Added support for the PHYTEC phyCORE-ARM7/LPC229x Evaluation Board. Program examples for the Keil CA ARM C Compiler may be found in the \KEIL\ARM\BOARDS\PHYTEC\LPC229X folder. Examples included the programming algorithm for the off-chip Am29x800BT Dual Flash device.
  • [Philips LPC2200 Device Simulation]
    Added device simulation for the Philips LPC221x/229x External Memory Controller (EMC) and SPI.

DK-ARM Version 1.2 Release

  • [Philips LPC2100 Device Simulation]
    Device simulation for the Philips LPC2119/LPC2129 CAN Controller is now included. All available Philips LPC2100 devices (LPC2106, LPC2114, LPC2124, and so on) are completely simulated.
  • [Philips Target Display DLL]
    The target peripheral dialogs for the Philips LPC2000 device series includes support for the CAN controller and for devices with an external address bus (like LPC2294).
  • [GNU Library Manager Support]
    This release includes support for the GNU Library Manager.

DK-ARM Version 1.1a Release

  • [ULINK USB-JTAG Adapter]
    The ULINK USB-JTAG Adapter is now fully supported. JTAG device chaining, Flash programming, and Code Debugging in Flash ROM are supported. The old ULINK ARM7 Driver has been replaced by the ULINK ARM Driver. Please make sure that you select this driver under Project - Options - Debug or Project - Options - Utilities when using the ULINK Adapter.
  • [Philips Target Display DLL]
    The target peripheral dialogs for the Philips LPC2000 device series (TARMP.DLL) is included in this release. Currently the LPC210x devices are supported. We are working on support for the LPC211x and LPC212x devices (available in the next release).
  • [Philips Flash Programming Support]
    This release includes several new algorithm files for Flash Programming. You may use the Flash algorithm files for the on-chip Flash of the Philips LPC2000 devices (LPC2000 IAP 128K Flash and LPC2000 IAP 256K Flash). The algorithms now include PLL initialization so that the programming does not depend on previously loaded applications.
  • [Example Projects Revised]
    Example programs have been changed to work with the new ULINK driver and targets for Flash ROM Debugging. This affects targets that do not have on-chip Flash ROM like the \KEIL\ARM\BOARDS\PHYTEC\AT91M55800A example where program debugging is now possible in both Flash ROM and RAM.
  • [MCB2100 Board for Philips LPC2100 Series]
    This release includes example projects for the new Keil MCB2100 Evaluation Board. This board includes the Philips LPC2129 which is a superset of several other Philips LPC2100 device variants.
  • [Philips LPC2124 Device Simulation]
    Device simulation for the Philips LPC2124 A/D Converter is now included.

DK-ARM Version 1.0 Release

  • [µVision3 and µVision2]
    This release includes the µVision3 IDE and the µVision2 IDE. µVision3 adds many new features to the Editor like Templates, Quick Function Navigation, Syntax Coloring with brace highlighting, a Configuration Wizard for dialog-based startup and debugger setup. µVision3 is fully compatible with µVision2 and may be used in parallel.
  • [Full Simulation of Atmel Remap Feature]
    µVision now fully simulates the remap feature of Atmel ARM devices.
  • [GNU 3.31]
    The toolchain includes the GNU 3.31 ARM Tools. This solves several known problems. GNU 3.31 now works with Windows 98 and Windows ME.

DK-ARM Version 1 BETA Release

The Keil µVision IDE works with the GNU 3.22 or ARM development tools. µVision provides complete control of the Compiler, Assembler, Project Manager, and Debugger in a single, intelligent environment that shortens your ARM project development cycle. The µVision Debugger offers high-speed Instruction Set and Peripheral Simulation for many ARM devices (Atmel and Philips). Via the ULINK USB-JTAG adapter you can directly connect the µVision Debugger to Embedded ICE of the ARM device.

Product Evaluation

When you install the DK-ARM the first time, the product is installed as an Evaluation Version. To install a full version, you must obtain a License ID Code in the µVision dialog File - License Manager. You may send your Computer ID along with the Product Serial Number via email to

During Product Evaluation, the following restrictions apply:

  1. The µVision Debugger is limited to 16KBytes program size.
  2. You may not use the Evaluation Version of the µVision Debugger to create commercial products.
  3. We provide the GNU ARM tools (compiler, assembler, and so on). These are not limited or restricted in any way.

Example Programs

Example programs included in the \C51\EXAMPLES folder demonstrate how to use the µVision Project Manager and Debugger (see the µVision Quick Start Guide for details). Please refer to these if you are new to the tools and want to get started quickly.

Device Database

A unique feature of the Keil µVision IDE is the Device Database which contains information about more than 700 supported microcontrollers. When you create a new µVision project and select the target chip from the database, µVision sets all assembler, compiler, linker, and debugger options for you. The only option you must configure is the memory map.

As new devices become available, they are added to the database along with data sheets and header files. For information about adding your own chips to the database or about creating your own personal databases refer to the following knowledgebase articles.

Peripheral Simulation

The µVision Debugger provides complete simulation for the CPU and on-chip peripherals of most embedded devices. To discover which peripherals of a device are supported, in µVision select the Simulated Peripherals item from the Help menu. You may also use the web-based Device Database. We are constantly adding new devices and simulation support for on-chip peripherals so be sure to check the Device Database often.

Technical Support

At Keil Software, we are dedicated to providing you with the best development tools and technical support. That's why we offer numerous ways you can get the technical support you need to complete your embedded projects.

  • Technical Support Knowledgebase
    More than 2000 technical support questions and answers are available in the Support Solutions Knowledgebase. When a new question arises, it is added to the knowledgebase which is continuously published to the Web. This enables you to get technical support at times when our support staff is unavailable.
  • Application Notes
    Numerous Application Notes help you decipher complex features and implement robust applications.
  • Example Programs and Files
    Utility programs, example code, and sample projects are regularly added to the Download File section of the web site.
  • Discussion Forum
    Post questions, comments, and suggestions to the Keil Software Discussion Forum and interact with other Keil users around the world.

Many of the features of our Technical Support Knowledgebase and Web Site are the results of your suggestions. If you have any ideas that will improve them, please give us your feedback!

Contact Details

If you experience any problems or have any questions about this product, contact one of our distributors or offices for assistance.

In the USA...

Keil Software, Inc.
1501 10th Street, Suite 110
Plano, TX  75074

800-348-8051 - Sales
972-312-1107 - Support
972-312-1159 - Fax
- Sales E-Mail
- Support E-mail 

In Europe...

Keil Elektronik GmbH
Bretonischer Ring 15
D-85630 Grasbrunn

+49 89 456040-0 - Sales
+49 89 456040-24 - Support
+49 89 468162 - Fax
- Sales E-Mail
- Support E-Mail

Copyright © Keil™, An ARM® Company.
All rights reserved.
Visit our web site at

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.