CMSIS-Build
Tools, software frameworks, and work flows for productivity with CMSIS based projects
|
CMSIS project files use the file extension *.cprj and CMSIS project layer files use the file extension *.clayer. Both file types share a single file format which can be validated using the dedicate CPRJ schema file located in CMSIS/Utilities/CPRJ.xsd.
The location of a project or layer file always marks the root point and all file references are always relative to this root point, unless a file belongs to a component. In the latter case the files are relative to the base directory of the referenced CMSIS Software Pack version.
The high level structure of a project is constructed from:
Element | Link | Description |
---|---|---|
<created> | /cprj/created | Information about the tool that had produced this file. |
<info> | /cprj/info | Information about the project: description, documentation, categories, license. |
<layers> | /cprj/layers | Definition of the layer within the project or layer. |
<packages> | /cprj/packages | List of all CMSIS Software Packs required to construct and build the project (components and device). |
<compilers> | /cprj/compilers | Information about the toolchains/compilers and their versions that can be used to build the project. |
<target> | /cprj/target | Information about the HW targeted as well as build output and top level toolchain options. |
<components> | /cprj/components | List of all CMSIS Software Pack components and used config file versions that need to be included for building the project. |
<files> | /cprj/files | List of all source files and include paths that are local to the project (project subdirectories only) |
other defined types | cprj specific types | Description of all locally defined schema types. |
Example CMSIS Project File (*.cprj):
Parents | Element Chain | ||
---|---|---|---|
root | description root point of description | ||
Attributes | Description | Type | Use |
schemaVersion | Version of CPRJ.xsd the description is compatible/validate with | VersionType | required |
Child Elements | Description | Type | Occurrence |
created | Element containing timestamp and tool information. | CreatedType | 0..1 |
info | Section containing project information. | InfoType | 1..1 |
layers | Section containing layer information. | LayersType | 1..1 |
compilers | Specify compilers that can be used to build the project. | CompilersType | 1..1 |
packages | Specify packs required by the project. | PackagesType | 1..1 |
target | Section specifying the device and active architectural features like e.g. hardware floating point support. Sub elements specify tool specific commandline options as well as output parameters. Note: Layers may not have a <target> section. | TargetType | 0..1 |
components | Specify the software components selected for the Run-Time Environment (RTE) including complete list of configuration files. | ComponentsType | 0..1 |
files | List of all project specific files required for the project build, which are not part of a component. | ProjectFilesType | 0..1 |