### Assembler and C Compiler Properties

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

Property | Description
Assembler Options | Additional command line options to be supplied to the assembler.
C Compiler Options | Additional command line options to be supplied to the C compiler.
Enforce ANSI Checking | Enable additional checking to ensure programs conform to the ANSI-C99 standard.
Instruction Set | Specifies the instruction set the compiler should generate code for. The options are ARM or THUMB.
ARM Architecture | Specifies the versions of the ARM/THUMB instruction set to generate code for and the library variant the linker should use. The options are v3, v4T, v5T, v5TE.
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 target endianess to build for.
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 when optimization is enabled. To enable optimization, the Optimize Output general option should be set to "Yes".
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 Properties

These properties are applicable to "Externally Built" project types.

Property | Description
Build Command | The command line that will build the executable.
Clean Command | The command line that will clean the executable.
Executable File | The name of the externally built executable file. This property will have macro expansion applied to it.

### Folder Properties

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 Properties

These properties are applicable to a range of project nodes.

Property | Description
Build Quietly | Suppress the display of the startup banners and information messages.
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.
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.
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.
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 Properties

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.

### Input/Output Properties

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

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

### Staging Properties

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.
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.

### Library Properties

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 Properties

These properties are applicable to "executable" project types.

Property | Description
Additional Files | Additional object and library files to be supplied to the linker. This property will have macro expansion applied to it.
Additional 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.
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
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.
Use Multi Threaded Libraries | Specifies that multi-threaded (re-entrant) versions of the libraries should be linked in.

### Target Properties

These properties are applicable to "executable" project types.

Property | Description
ARM Debug Interface | Specifies whether the target's debug interface is ARM7TDI, ARM7DI or ARM9TDMI compliant.
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.
Reset Script | The script that is executed when the target is reset. This script is typically responsible for resetting the target and configuring memory. See Target Script File for more information.
Software Breakpoint Instruction | A hexadecimal number specifying the instruction opcode to use for the software breakpoint instruction. The default value is 0xDFFFDFFF which is a "swile 0xFFDFFF" instruction in the ARM instruction set and a "swi 0xFF" instruction in the THUMB instruction set.
Stop CPU Using DBGRQ | Specifies whether the CPU should be stopped by asserting DBGRQ rather than by using breakpoints.