Keil Logo

Compilation Tools

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 tools include:

  • 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 size.
  • 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 speed increases.
  • 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 return.
  • 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 file(s).
  • 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 reference.
  • 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.
  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.