Keil Logo

GNU ARM C Compiler

Preprocessor Symbols

Sets preprocessor symbols which may be checked with #if, #ifdef and #ifndef. The defined names are copied exactly as they are entered (case-sensitive). Each name may get optionally a value. Define: Check, NoExtRam, X1=1+5 is identical to the following C preprocessor #define statements:
   #define Check
   #define NoExtRam
   #define X1 1+5
Clears previous Define assignments that are entered in the options dialog of a higher Target or Group level.

Code Generation

Enable APCS (ARM Procedure Call Standard)
Generate code that is compatible to the ARM Procedure Call Standard
Generate Stack Check Code
Generate code that contains explicit stack size checking. This is useful to detect stack overflows.
Support Calls between ARM and THUMB Instruction Set
Generates code that may be called in any CPU mode (ARM or Thumb).

Control compiler code optimization for the generated code:
  • Default: Use the compiler default or the setting of a higher Target or Group level.
  • Level 0 (-O0): Turn off all optimization, except some simple source transformations.
  • Level 1 (-O1): Turn off optimizations that seriously degrade the debug view.
  • Level 2 Speed (-O2): Use almost all optimization and optimize for execution speed.
  • Level 2 Size (-Os): Use almost all optimization and optimize for code size.
  • Level 3 (-O3): Generate fully optimized code.
Control generation of warning messages.
Strict ANSI C
Check for strict ANSI C conformance of the source file.
Compile Thumb Code
Generate Thumb code using the Thumb instruction set.
Include Paths
Allows you to supply one or more (separated by semi-colon) paths to search for header files. For #include "filename.h" the Compiler searches first the current folder and then folder of the source file. When this fails or when #include <filename.h> is used, the paths specified in the include paths box are searched. When this still fails, the paths specified in for the INC folder under Project — Manage - Project Items are used.
Misc Controls
Specify any compiler directive for which there is no individual dialog control.
Compiler Control String
Displays the current directives at the Compiler command line.
  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.