Keil™, An ARM® Company

µVision® User's Guide

Technical Support

On-Line Manuals

µVision® User's Guide

µVision3 Overview
User Interface
Creating Applications
Utilities
Debugging
Debug Commands
Debug Functions
Simulation
Flash Programming
Dialogs
File
Device Database
License Management
Single-User License
Floating-User License
Floating License Administrator
Edit
Find in Files
Configuration
Editor
Colors & Fonts
User Keywords
Shortcut Keys
Templates
View
Symbol Window
Project
Components, Enviornment, and Books
Project Components
Folders/Extensions
Books
Multi-Project
Select Device
Options
Device
Properties
Target
Target (Keil ARM)
Target (Keil C51)
Target (Keil C166)
Target (Keil C251)
Target (GNU ARM)
Target (RealView ARM)
Output
Output (Keil)
Output (GNU ARM)
Output (RealView ARM)
Listing
Listing (Keil)
Listing (GNU ARM)
Listing (RealView ARM)
User
Keil EC++ Compiler
Compiler
Keil CA ARM Compiler
Keil Cx51 Compiler
Keil C166 Compiler
Keil C251 Compiler
GNU ARM C Compiler
RealView ARM C Compiler
Assembler
Keil AA ARM Assembler
Keil Ax51 Assembler
Keil A166 Assembler
Keil A251 Assembler
GNU ARM Assembler
RealView ARM Assembler
Linker
Keil LA Locate
Keil LA Misc
Keil BL51 Locate
Keil BL51 Misc
Keil Lx51 Locate
Keil Lx51 Misc
Keil L166 Locate
Keil L166 Misc
GNU ARM Linker
RealView ARM Linker
Debug
Utilities
Batch Build
Debug
Breakpoints
Debug Settings
Logic Analyzer
Memory Map
Performance Analyzer
Function Editor
Tools
Setup PC-Lint
Customize Tools Menu
SVCS
Configure Version Control
Example Programs
Command Line
Appendix

GNU ARM C Compiler

Preprocessor Symbols

Define
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
Undefine
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).

Optimization
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.
Warnings
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 — Components, Environment, Books ... 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.