Keil Logo

Technical Support

On-Line Manuals

µVision3 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

Keil C166 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 Optimization

Level
Set the optimization level the Compiler uses when generating object code.
Emphasis
Specify whether the Compiler should optimize for code size or execution speed.
Global Register Coloring
Enable application wide register optimization. When set the C166 compiler knows the registers used by external functions and µVision performs automatically iterative re-translations of C source files to improve the register allocation.
Reorder Instructions to Minimize Pipeline Effects
Reorder instructions to minimize wait states and pipeline stalls for the XC16x and Super-10 device variants.
Use Static Memory for Non-Register Automatics
When enabled, the Compiler uses static memory locations for automatic variables (not parameters) that cannot be allocated to a CPU register. The generated code is not reentrant but code size is reduced and execution speed is improved.
Alias Checking on Pointer Accesses
When disabled, the Compiler ignores pointer write operations during the optimization phase. If a register holds a variable, the variable is reused, even when access through a pointer might have modified that variable. Disable this option to reduce program size when you are confident that your program does not modify variables through pointers.

Other Controls

Warnings
Allows you to suppress compiler warnings.
Keep Variables in Order
Order all variables in memory according to their order of definition in the C source file.
Treat 'char' as 'unsigned char'
Instructs the Compiler to treat all variables declared with plain char as unsigned char variables.
Save DPP on Interrupt Entry
This option improves the performance of interrupt functions and instructs the compiler not to preserve the DPP0 and DPP3 registers inside interrupt functions. Enable this option when you are certain that DPP0 and DPP3 registers are not altered in assembly subroutines which are called by interrupt functions. 
Double-precision Floating Point
Enable 64-bit (double-precision) floating-point math when the double type is used in your C programs. The float type continues to use 32-bit floating-point math. When disabled, all floating-point math is performed using 32-bits (even when the double type is specified).
Save Temporary Variables on User Stack
Instructs the Compiler to save temporary results and saved-by-callee variables on the user stack. This option may be necessary if you run out of system stack space.
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 assembler 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.