## Assembler and Compiler Options

These properties are applicable to C and assembly code source files.

Property | Description
Additional Assembler Options | Additional command line options to be supplied to the assembler.
Additional Compiler Options | Additional command line options to be supplied to the compiler.
ARM Architecture | Specifies the version of the ARM or Thumb instruction set to generate code for and the library variant the linker should use. The options are v4T, v5TE and v7M. Use v4T for ARM7TDMI, ARM720T and ARM920T based processors. Use v5TE for XScale and ARM9E based processors. Use v7M for Cortex-M3 based processors.
ARM Floating Point Format | Specifies the ARM floating point format to generate code for.
ARM/Thumb interworking | Specifies that the code generated can be called either from ARM or Thumb code and the library variant the linker should use.
Endian | Specifies the endianness to build for. Note that the value of this property at project level will be used to automatically set the Endian target property when a project is downloaded or attached to.
Enforce ANSI Checking | Enable additional checking to ensure programs conform to the ANSI-C99 standard.
Generate Static call_via_rX | Works around a problem in the C/C++ compiler of the GCC when using long calls from Thumb code.
Instruction Set | Specifies the instruction set the compiler should generate code for. The options are ARM or Thumb.
Keep Assembly | When set the assembly code generated by the C/C++ compiler of the GCC are kept.
Long Calls | Specifies whether function calls are made using absolute addresses.
Object File Name | Specifies the name of the object file produced by the compiler/assembler. This property will have macro expansion applied to it.
Optimization Level | Specifies the optimization level to use for compliation.
Treat 'double' as 'float' | The compiler should make double equivalent to float. This will reduce the code and data size of the application since double is a 64 bit number and float is a 32 bit number.
Use Hardware Multiplier | Specifies whether code is generated for a device with a hardware multiplier.

## External Build Options

These properties are applicable to Externally Built Executable project types.

Property | Description
Build Command | The command line that will build the executable. The first entry must be the full path to an executable program.
Clean Command | The command line that will clean the executable. The first entry must be the full path to an executable program.
Executable File | The name of the externally built executable file. This property will have macro expansion applied to it.
Load Address | The address to load the file at. This is required if the load address isn't contained in the executable file - for example a binary file.
Load File Type | The type of the executable file. The default is to detect the file type based on the file extension.
Start Address | The address to start execution from. This defaults to be the Load Address if it isn't defined.

## Folder Options

These properties are applicable to project folders.

Property | Description
Filter | A list of file extensions that are matched when a file is added to the project.

## Build Options

These properties are applicable to a range of project types.

Property | Description
Build Quietly | Suppress the display of the startup banners and information messages.
Enable Unused Symbol Removal | If this option is set then any unreferenced symbols will be removed from your program.
Exclude From Build | Specifies whether or not to exclude the project/file from the build.
File Type | Use this property to change the file type of the selected file. This can be used to be able to compile or assemble a file that has no recognised file type.
Include Debug Information | Specifies whether symbolic debug information is generated.
Macros | Defines macro values that are used for filename generation
Intermediate Directory | Specifies a relative path from the project directory to the intermediate file directory. This property will have macro expansion applied to it.
Optimize Output | Specifies whether the application should be optimized for size and speed.
Oscillator Frequency | Select the oscillator frequency of the target. This is an optional property used for targets that can be supplied with a range of oscillator frequencies. This property will defines the C preprocessor symbol OSCILLATOR_CLOCK_FREQUENCY and the target loader parameter.
Output Directory | Specifies a relative path from the project directory to the output file directory. This property will have macro expansion applied to it.
Project Directory | Specifies the project directory. This can be either relative to the solution directory (recommended) or can be an absolute directory.
Project Type | Specifies the type of project to build.
Section Placement | Select a section placement option. This is an optional property used for targets that may have several section placement strategies.
Suppress Warnings | Specifies whether the display of warning messages should be suppressed.
Target Processor | Select a set of target specific options based on the target processor. This option is target dependent.
Treat Warnings as Errors | Specifies whether warning messages should be treated as errors.

## Javadoc properties

Property | Description
Author Tags | Specifies whether @author paragraphs are included in the generated documentation.
Character Set | The character set for cross-platform viewing of generated documentation.
Class Hierarchy | Specifies whether a class hierarchy is included in the generated documentation.
Detail Level | Specifies the level of detail in the generated documentation. When set to Public, only public classes and members are included; when set to Protected, both public and protected classes and members are included; when set to Package, public, package, and protected classes and members are included; when set to Private, all classes and members are included.
Document Title | The HTML to include as the title for the package index (first) page
Group Packages | How to group packages together in overview pages. Syntax is that of the Javadoc tool, i.e. <name> <p1>:<p2>...
Include Deprecated | Specifies whether to include @deprecated information in the generated documentation.
Include Deprecated List | Specifies whether to include a deprecated list in the generated documentation.
Include Help | Specifies whether to include a help link in the generated documentation.
Include Index | Specifies whether to include an index in the generated documentation.
Include Navbar | Specifies whether to include a navigation bar in the generated documentation.
Link URL | Creates links to Javadoc output at the specified URL.
Page Bottom | Specifies the HTML code for the bottom contents of each page.
Page Footer | Specifies the HTML code for the footer contents of each page.
Page Header | Specifies the HTML code for the header contents of each page.
Serial Warning | Specifies whether to generate a warning about @serial tags
Split Index | Specifies whether to split the index into one file per letter
Usage Pages | Specifies whether to include class package and usage pages in the generated documentation
Version Tags | Specifies whether to include @version tags in the generated documentation
Window Title | Specifies the browser window title for the documentation

## Preprocessor Options

These properties are applicable to C and assembly code source files.

Property | Description
Ignore Includes | If set to Yes, the System Include Directories and User Include Directories properties are ignored.
Preprocessor Definitions | Specifies one or more preprocessor definitions.
Preprocessor Undefinitions | Specifies one or more preprocessor undefinitions.
System Include Directories | Specifies the system include path. This property will have macro expansion applied to it.
Undefine All Preprocessor Definitions | If set to Yes, no standard preprocessor definitions will be defined.
User Include Directories | Specifies the user include path. This property will have macro expansion applied to it.

## Section Options

These properties are applicable to C and assembly code source files.

Property | Description
Code Section Name | Specifies the default section name to use for the program code section.
Constant Section Name | Specifies the default section name to use for the read-only constant section.
Data Section Name | Specifies the default section name to use for the initialised, writable data section.
Vector Section Name | Specifies the default section name to use for the interrupt vector section.
Zeroed Section Name | Specifies the default section name to use for the zero-initialised, writable data section.

## Printf/Scanf Options

These properties define what the printf/scanf support is to be used.

Property | Description
Printf Floating Point Supported | Specifies whether the version of the printf that supports floating point numbers should be linked into the application.
Printf Integer Support | Specifies the largest integer type supported by the printf function group.
Printf Width/Precision Supported | Enables support for width and precision in the printf function group.
Scanf Classes Supported | Enables support for %[...] and %[^...] character class matching in the scanf functions.
Scanf Floating Point Supported | Specifies whether the version of the scanf that supports floating point numbers should be linked into the application.
Scanf Integer Support | Specifies the largest integer type supported by the scanf function group.

## Staging Options

These properties are applicable to Staging project types.

Property | Description
Output File Path | Specifies the name the file will be copied to. This property will have macro expansion applied to it.
Package File Path | Specifies the package file that the file will be added to. This property will have macro expansion applied to it.
Package Member Name | Specifies the name that the file will have in the package. This property will have macro expansion applied to it. The dynamic macros $(StageOutputFilePath) and $(StudioDirRelativeOutputFilePath) are defined.
Set Readonly | Specifies that the output file will have it's permissions set to readonly.
Stage Command | Specifies the command be used to do the staging operation. This property will have macro expansion applied to it. The dynamic macros $(StageOutputFilePath) and $(StudioDirRelativeOutputFilePath) are defined.

## Combining Options

These properties are applicable to Combining project types.

Property | Description
Output File Path | Specifies the name the file will be copied to. This property will have macro expansion applied to it.
Set Readonly | Specifies that the output file will have it's permissions set to readonly.
Combine Command | Specifies the command be used to do the combining operation. This property will have macro expansion applied to it.

## Library Options

These properties are applicable to Library project types.

Property | Description
Library File Name | Specifies the name of the output file produced by the librarian. This property will have macro expansion applied to it.

## Linker Options

These properties are applicable to Executable project types.

Property | Description
Additional Input Files | Additional object and library files to be supplied to the linker. This property will have macro expansion applied to it.
Additional Linker Options | Additional command line options to be supplied to the linker.
Additional Output Format | Specifies an additional file format to be generated by the linker. For example an s-record output may be generated as well as the .hzx file.
Check For Memory Segment Overflow | Specifies that the linker should check whether program sections fit into the memory segments they have been placed in.
Checksum Algorithm | Specifies the algorithm used to generate checksums on sections.
Checksum Sections | The list of sections to generate a checksum on.
Entry Point | Specifies the entry point of the program. This may be a symbol or an absolute address.
Executable File Name | Specifies the name of the output file produced by the linker.
Generate Map File | Specifies whether or not a linker map file is generated.
Generate Linker Script | Specifies when to generate the linker script. This can be done for each link or it can be done when needed.
Heap Size | Specifies the heap size in bytes to be used by the application. You must define this if your program uses malloc.
Include Standard Libraries | Specifies whether the standard libraries should be linked into the application.
Include Startup Code | Specifies whether the standard C startup code is linked into the application.
Keep Symbols | Specifies a list of symbols that should always be included by the linker in the output file even if those symbols aren't directly used by the application.
Library Instruction Set | Specifies the library variant the linker should use. The options are ARM or Thumb.
Memory Map File | The name of the file containing the memory map description. This property will have macro expansion applied to it. Note that a memory map file in the project will be used in preference to this setting.
Post Build Command | Specifies a command to run after the link command has executed. This must be the full path to an executable program.
Section Placement File | The name of the file containing the section placement description. This property will have macro expansion applied to it. Note that a section placement file in the project will be used in preference to this setting.
Stack Size (Abort Mode) | Specifies the size of the Abort mode stack in bytes.
Stack Size (FIQ Mode) | Specifies the size of the FIQ mode stack in bytes.
Stack Size (IRQ Mode) | Specifies the size of the IRQ mode stack in bytes.
Stack Size (Supervisor Mode) | Specifies the size of the Supervisor mode stack in bytes.
Stack Size (Undefined Mode) | Specifies the size of the Undefined mode stack in bytes.
Stack Size (User/System Mode) | Specifies the size of the User/System mode stack in bytes.
Stack Size (User/System Mode) | Specifies the size of the User/System mode stack in bytes.
Treat Linker Warnings as Errors | If set then warnings produced by the linker are treated as errors.
Use GCC Libraries | Use GCC floating point, exception and rtti libraries.
Use Multi Threaded Libraries | Specifies that multi-threaded (re-entrant) versions of the libraries should be linked in.

## Simulator Options

These properties are applicable to Executable project types.

Property | Description
Memory Simulation Filename | The path to the dynamic link library that will implement the memory for the ARM simulator. This property will have macro expansion applied to it.
Memory Simulation Parameter | A string to pass to the memory simulation file when it is connected to.

## Target Options

These properties are applicable to "executable" project types.

Property | Description
Attach Script | The script that is executed when the debugger attaches to the target.
Reset Script | The script that is executed when the target is reset. This script is typically responsible for resetting the target and configuring memory.
Run Script | The script that is executed when the target is released into run state. This script is typically responsible for re-enabling caches previously disabled by the stop script.
Stop Script | The script that is executed when the target enters debug state. This script is typically responsible for disabling or flushing caches.
ARM Debug Interface. | Specifies the variant of debug interface that the target has. The options are ARM7TDI, ARM9TDI, XScale, XScale7BitIR and ADIv5. Use ARM7TDI for ARM7TDMI and ARM720T based processors. Use ARM9TDI for ARM920T and ARM9E based processors. Use XScale and XScale7BitIR for XScale based processors. Use ADIv5 for Cortex-M3 based processors.
Debug Handler Load Address | Some debug interfaces require a debug handler or monitor to be downloaded along with the application in order to debug the target. This property specifies the address to load the debug handler.
Debug Handler File Path | Some debug interfaces require a debug handler or monitor to be downloaded along with the application in order to debug the target. This property specifies the file path to the debug handler to use, it should be left blank if no debug handler is required.
JTAG Data Bits After | Specifies the number of bits to pad the JTAG data register after the data for the ARM processor being targeted. As the width of the BYPASS register is normally 1 bit this value is usually equal to the number of devices in the scan chain after the device being targeted.
JTAG Data Bits Before | Specifies the number of bits to pad the JTAG data register before the data for the ARM processor being targeted. As the width of the BYPASS register is normally 1 bit this value is usually equal to the number of devices in the scan chain before the device being targeted.
JTAG Instruction Bits After | Specifies the number of bits to pad the JTAG instruction register with the BYPASS instruction (all bits set) after the instruction for the ARM processor being targeted. This value should be the combined length of the instruction registers for all devices in the scan chain after the ARM processor being targeted.
JTAG Instruction Bits Before | Specifies the number of bits to pad the JTAG instruction register with the BYPASS instruction (all bits set) before the instruction for the ARM processor being targeted. This value should be the combined length of the instruction registers for all devices in the scan chain before the ARM processor being targeted.
First Loader Program Section | The name of the loader's first program section. This value is used to tell CrossStudio the area of memory occupied by the loader in order to prevent it from being overwritten during download. This parameter is only required if the program being downloaded overwrites the loader.
Last Loader Program Section | The name of the loader's last program section. This parameter is only required if the program section specified by First Loader Program Section is not the loader's only program section.
Loader File Path | Specifies the file path of the loader program to use. This is typically used by targets that support FLASH download. It is not possible to download programs to FLASH using only the ARM's debug interface. A loader program therefore has to be downloaded and run from RAM prior to the download of the main application.
Loader File Type | Specifies the communication mechanism used to communicate with the loader.
Loader Parameter | This field allows a parameter to be passed to the loader. The parameter is loader specific.
Reset After Download | Specifies whether the target should be reset after a download using a loader.
Stop CPU Using DBGRQ | Specifies whether the CPU should be stopped by asserting DBGRQ rather than by using breakpoints.