The Keil MDK-ARM Compilation Tools allow writing applications for
ARM-powered microcontroller in C or C++, which, once compiled, have
the efficiency and speed of an assembly language. The compilation
- ARM C/C++ Compiler (armcc).
- ARM Macro Assembler (armasm).
- ARM Linker (armLink).
- ARM Utilities (Librarian and FromELF).
The Keil MDK-ARM Compilation Tools translate C/C++ source files
into relocatable object modules that contain full symbolic
information for debugging with the µVision Debugger.
ARM C/C++ Compiler (armcc)
ARM and Thumb® generation modes can be mixed in the same
source file. ARM mode allows faster code execution, making it ideal
for interrupt handlers. Thumb mode provides the smallest code
Industry leading code size optimizations achieves memory
cost savings by generating the smallest compiled code size.
Industry leading code performance optimizations reduces
power consumption by enabling increased through-put without clock
Function Attributes for Hardware Support gives access to
ARM hardware features.
Embedded Assembler code can be inserted into C
functions. This capability is useful for fast DSP and other
signal-processing algorithms. The ARM compiler supports full
program optimization even when embedded assembler is used.
Function Inlining to speed-up execution of frequently
called functions. Such functions are expanded without the overhead
associated with the function call, parameter passing, and
Parameter Passing in CPU Registers used automatically by
the ARM compiler to pass most function arguments. It can even pass
and return small C structs into and from registers.
Run-time Library routines are mostly reentrant and can
be invoked from the main program and from interrupts. Special
protection schemes for library calls are not needed.
IEEE 754 Compliant Single and Double Precision
Floating-point for high accuracy floating-point support.
ARM Macro Assembler (armasm)
Standard Macro Processor supports assembler macros to
repeat or automate assembler instruction sequences.
Conditional Assembler Controls control the assembler
source code to create multiple target applications from the same
Source Listing with Symbol Reference file includes an
optional cross reference that provides detailed information about
the assembled source file.
ARM Linker (armlink)
Detailed Listing File that is easy to understand is
created by the linker. It contains details like the memory
configuration, input modules, memory map, symbol table, and cross
Global Code Listing file that shows symbolic disassembly
of the generated code is created by the linker.
Static Stack Analysis for stack requirements at
link-time is calculated by the linker.
ARM Library Manager (armar)
Module Management library files provide a convenient way
to combine and reference a large number of modules that can be used
by the linker. Library files can be built with µVision.
Variable and Function Reference; modules from libraries
are extracted and added to programs only if required. Modules
containing routines that are not invoked by the program are not
included in the final output.
Security, Speed, and Minimized Disk Space; Libraries
provide a vehicle for distributing large numbers of functions and
routines without distributing the original source code.