CMSIS-Build: cprj specific types

| CMSIS-Build Version 0.9.0 (beta) Tools, software frameworks, and work flows for productivity with CMSIS based projects

- Main Page
- Usage and Description

All Pages
cprj specific types

Collection of types locally defined for the CMSIS Project format.

# restrictedStringType

Restricted string type excludes the use of special characters including spaces in order to allow tools to use the string in folder and/or file names.

<xs:pattern value= "[\-_A-Za-z0-9]+" />

# toolOptionType

Parents | Element Chain
--- | ---
multiple | asflags, cflags, cxxflags
Attributes | Description | Type | Use
compiler | selects the compiler the contained information is targeted at. Choose from available list: GCC, AC5, AC6, IAR, Tasking, GHS, Cosmic, G++ | CompilerEnumType | required
add | commandline options to be added to the command line of the respective tool. | xs:string | optional
remove | commandline options to be removed from the command line of the respective tool (not supported on target level). | xs:string | optional

Table: Device FPU The table lists values that indicate whether a CPU has an Floating Point Unit (FPU). The tokens can be used in the elements:

- /cprj/target

Dfpu= | Description
--- | ---
NO_FPU | Hardware Floating Point Unit not present
FPU | Hardware Floating Point Unit present
SP_FPU | Single Precision Hardware Floating Point Unit present
DP_FPU | Double Precision Hardware Floating Point Unit present

Table: Device MPU

The table shows predefined values that identify whether a CPU has an Memory Protection Unit (MPU). The values can be used in the elements:

- /cprj/target

Dmpu= | Description
--- | ---
MPU | Memory Protection Unit is present
NO_MPU | No Memory Protection Unit is present

Table: Endianness

The table lists values representing the endianness of a device. The values can be used in the elements:

- /cprj/target

Dendian= | Description
--- | ---
Little-endian | The least significant byte of a multi-byte access is located at the specified address.
Big-endian | The most significant byte of a multi-byte access is located at the specified address.
Configurable | The byte ordering of multi-byte accesses is configurable.

Table: Security Model The table lists values that indicate whether an application is running in secure or non-scure mode, or whether trust-zone got disabled. The tokens can be used in the elements:

- /cprj/target

Dsecure= | Description
--- | ---
TZ-disabled | The application/library built is executed by a processor which has TrustZone disabled.
Secure | The application/library built is executed in 'secure mode'
Non-Secure | The application/library built is executed in 'non-secure mode'

Table: Cortex-M Vector Extensions The table lists predefined values that selects which instruction set from the Cortex-M Vector Extensions (MVE) are used during code generation. The tokens can be used in the elements:

- /cprj/target

Dmve= | Description
--- | ---
NO_MVE | The application/library built is not using MVE instructions.
MVE | The application/library built is using MVE integer instructions.
FP_MVE | The application/library built is using MVE integer and floating point instructions.

Table: File Categories

File category types define the use of component files within the application. Typically, these files are added to the project and processed by the build tools.

File categories are used in the following elements:

- /cprj/components/component/file

The table lists the predefined values for a file category.

category= | Description
--- | ---
doc | Documentation
header | Header file used in the component. Sets an include file path and adds the file name attribute to the list of files to be added to a module using the #include statement. Note: specify only those files as header files that form part of the API of the component, required to use the component
include | Sets an include file path. Note: ensure that the name attribute specifies a directory and ends with a '/'.
library | Library file
object | Object file that can be added to the application
source | Startup-, system-, and other C/C++, assembler, etc. source files
sourceC | C source file
sourceCpp | C++ source file
sourceAsm | Assembly source file
linkerScript | linker script file that can be selected by tool-chains
utility | a command line tool that can be configured for pre- or post-processing during the build process
image | Files of image type are marked for special processing into a File System Image embedded into the application. This category requires the attr being set to template.
preIncludeGlobal | The specified file is added as a pre-include file to the compiler command line for all modules of the whole project (globally).
preIncludeLocal | The specified file is added as a pre-include file to the compiler command line for all modules of the component (locally).
other | Other file types not covered in the list above

Table: Compiler Types

Represents a C/C++ compiler toolchain. The tokens can be used in the elements:

- /cprj/compilers/compiler

Tcompiler= | Description
--- | ---
GCC | GNU Tools for Arm Embedded Processors. Refer to Arm GCC.
G++ | Code Sourcery GCC compiler for C and C++ (is now Mentor Graphics CodeBench).
AC5 | Arm Compiler for C and C++ Major Version 5. Refer to Arm Compiler. Due to incompatible command line syntax version 5 and 6 are listed as separate compilers.
AC6 | Arm Compiler for C and C++ Major Version 6. Refer to Arm Compiler. Note: Due to incompatible command line syntax version 5 and 6 are listed as separate compilers.
IAR | IAR compiler for C and C++.
Tasking | TASKING compiler for C and C++.
GHS | Green Hills Software compiler for C, C++, and EC++.

Table: File Attributes

The file attribute defines the special handling in the project when being used as configuration, template, or interface file. The table lists the values available as a file attribute.

attr= | Description
--- | ---
config | The file is a configuration file of the component. It is expected that only configuration options are modified. The file is managed as part of the component, as a project-specific file typically copied into the component section of the project.s
template | The file is used as a source code template file. It is expected to be edited and extended by the software developer. The file can be copied into a user section of the project.

Version Type

Version specification identical to the CMSIS-Pack specification.

Version types are used in:

- /cprj/components/component
- /cprj/packages
- /cprj/compilers/compiler