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

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

### 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.
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.
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.
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.
Stop CPU Using DBGRQ | Specifies whether the CPU should be stopped by asserting DBGRQ rather than by using breakpoints.