The CARM Compiler provides a number of directives you may use to control source file compilation. Directives are composed of one or more letters or digits and, unless otherwise specified, may be specified after the filename on the command line or within the source file using #pragma. For example:
The following table is an alphabetical list of the control directives available in the CARM Compiler.
| Directive | Group | Description |
|---|
| ARM | Object | Generates code for native ARM CPU mode. |
| BIGENDIAN1 | Object | Generates code for big endian configuration. |
| BROWSE1 | Object | Enables source browser information. |
| CODE1 | Listing | Includes generated assembly in the listing file. |
| COND | Listing | Includes (in the listing file) conditional source lines skipped by the preprocessor. |
| DEBUG1 | Object | Includes debugging information in the object file. |
| DEFINE3 | Source | Defines preprocessor names on the command line. |
| EJECT2 | Listing | Inserts a form feed character into the listing file. |
| FLOAT64 | Object | Enables 64-bit floating-point math support. |
| INCDIR1 | Source | Sets additional include file paths. |
| INIT2 | Object | Signals variables that should be initialized at startup. |
| INTERWORK | Object | Generates veneers to allow code to be used from ARM and THUMB CPU mode. |
| LISTINCLUDE | Listing | Adds contents of include files into the listing file. |
| NOALIAS1 | Object | Ignores write operations through pointers when optimizing. |
| NOCOND | Listing | Excludes (from the listing file) conditional source lines skipped by the preprocessor. |
| NOEXTEND1 | Source | Disables extensions to ANSI C. |
| NOINIT2 | Object | Signals variables that should not be initialized at startup. |
| NOINTERWORK | Object | Generates code that can only be used from the current CPU mode. |
| NOOBJECT1 | Object | Disables object file generation. |
| NOPRINT1 | Listing | Disables listing file generation. |
| OBJECT1 | Object | Specifies the name for the object file. |
| OPTIMIZE | Object | Specifies the level of optimization performed by the compiler. |
| PACK | Object | Specifies the boundary for structure packing. |
| PAGELENGTH1 | Listing | Specifies the number of lines on a page in the listing file. |
| PAGEWIDTH1 | Listing | Specifies the number of characters on a line in the listing file. |
| PREPRINT1 | Listing | Produces a preprocessor listing file with expanded macros. |
| PREPRINTONLY1 | Listing | Produces a preprocessor listing file with expanded macros and halts. |
| PRINT1 | Listing | Specifies the name for the listing file. |
| RENAMECLASS | Object | Changes the name of a pre-defined memory class. |
| RESTORE2 | Object | Restores settings for the OPTIMIZE directive. |
| SAVE2 | Object | Saves settings for the OPTIMIZE directive. |
| SIGNED_CHAR1 | Object | Defaults all char types to signed. |
| SRC1 | Object | Creates an assembler source file instead of an object file. |
| SYMBOLS1 | Listing | Includes a symbol list in the listing file. |
| TABS1 | Listing | Specifies the tab character expansion width for the listing file. |
| THUMB1 | Object | Generate code for native ARM CPU mode. |
| WARNING2 | Listing | Changes the level of a warning. |
| WARNINGLEVEL1 | Listing | Selects the level of warning detection. |