CMSIS-Build: /cprj

| 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

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, keywords, categories, license, download.
<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):

<?xml version="1.0" encoding="UTF-8" ?>
<cprj schemaVersion="1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CPRJ.xsd">
<created tool="µVision V5.29.0.13" timestamp="2020-01-21T11:38:01" />
<info isLayer="false" >
<description>BSD Client application on top of MCB4300 Basic I/O layer with Ethernet</description>
<category>Wired Network, BSD Client, Board IO</category>
<keywords>MCB4300, MDK-Middleware, Network</keywords>
<license>BSD-3-Clause</license>
<url></url>
</info>
<layers>
<layer name="IO" hasTarget="1">
<description>Basic I/O layer for MCB4300 for Ethernet applications</description>
<category>Board IO, Wired Network</category>
<keywords>MCB4300, Ethernet, LPC4300</keywords>
<license>BSD-3-Clause</license>
</layer>
<layer name="APP" hasTarget="0">
<description>BSD Client application for Basic I/O layers with Ethernet</description>
<category>Board IO, Wired Network</category>
<keywords>BSD_Client, Ethernet</keywords>
<license>BSD-3-Clause</license>
</layer>
</layers>
<packages>
<package name="CMSIS" vendor="ARM"/>
<package name="CMSIS-Driver" vendor="ARM"/>
<package name="ARM_Compiler" vendor="Keil"/>
<package name="LPC4300_DFP" vendor="Keil"/>
<package name="MDK-Middleware" vendor="Keil"/>
</packages>
<compilers>
<compiler name="AC5" version="5.0.0:5.99.99"/>
</compilers>
<target Ddsp="NO_DSP" Dendian="Little-endian" Dfpu="NO_FPU" Dmve="NO_MVE" Dname="LPC4357" Dtz="NO_TZ" Dvendor="NXP:11" Pname="Cortex-M4">
<output list="./Debug/" name="BSD_Client" obj="./Debug/" type="exe"/>
<ldflags compiler="AC5" add="--entry=Reset_Handler --load_addr_map_info --map --strict" file="BSD_Client.sct"/>
<cflags compiler="AC5" add="--c99 --omf_browse ./debug/main.crf -D__MICROLIB -O1"/>
<asflags compiler="AC5" add="--pd __MICROLIB SETA 1 --xref"/>
</target>
<components>
<component layer="IO" Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM"/>
<component layer="IO" Cclass="CMSIS" Cgroup="RTOS2" Csub="Keil RTX5" Cvariant="Source" Cvendor="ARM">
<file attr="config" category="source" name="CMSIS/RTOS2/RTX/Config/RTX_Config.c" version="5.1.0"/>
<file attr="config" category="header" name="CMSIS/RTOS2/RTX/Config/RTX_Config.h" version="5.5.0"/>
</component>
<component layer="IO" Cbundle="ARM Compiler" Cclass="Compiler" Cgroup="Event Recorder" Cvariant="DAP" Cvendor="Keil">
<cflags compiler="AC5" add="--omf_browse ./debug/eventrecorder.crf" remove="--omf_browse ./debug/main.crf"/>
<file attr="config" category="header" name="Config/EventRecorderConf.h" version="1.1.0"/>
</component>
<component layer="IO" Cbundle="MCB4300" Cclass="Board Support" Cgroup="Graphic LCD" Cvendor="Keil"/>
<component layer="IO" Cbundle="MCB4300" Cclass="Board Support" Cgroup="LED" Cvendor="Keil"/>
<component layer="APP" Cbundle="MDK-Pro" Cclass="Network" Cgroup="CORE" Cvariant="IPv4/IPv6 Debug" Cvendor="Keil">
<file attr="config" category="source" name="Network/Config/Net_Config.c" version="7.0.0"/>
<file attr="config" category="source" name="Network/Config/Net_Debug.c" version="7.0.0"/>
</component>
<component layer="APP" Cbundle="MDK-Pro" Cclass="Network" Cgroup="Interface" Csub="ETH" Cvendor="Keil" instances="1">
<file attr="config" category="header" name="Network/Config/Net_Config_ETH.h" version="7.2.0"/>
</component>
<component layer="APP" Cbundle="MDK-Pro" Cclass="Network" Cgroup="Socket" Csub="BSD" Cvendor="Keil">
<file attr="config" category="header" name="Network/Config/Net_Config_BSD.h" version="5.0.4"/>
</component>
<component layer="APP" Cbundle="MDK-Pro" Cclass="Network" Cgroup="Socket" Csub="TCP" Cvendor="Keil">
<file attr="config" category="header" name="Network/Config/Net_Config_TCP.h" version="7.1.0"/>
</component>
<component layer="APP" Cbundle="MDK-Pro" Cclass="Network" Cgroup="Socket" Csub="UDP" Cvendor="Keil">
<file attr="config" category="header" name="Network/Config/Net_Config_UDP.h" version="5.1.0"/>
</component>
<component layer="IO" Cclass="CMSIS Driver" Cgroup="Ethernet MAC" Cvendor="Keil"/>
<component layer="IO" Cclass="CMSIS Driver" Cgroup="Ethernet PHY" Csub="DP83848C" Cvendor="Keil"/>
<component layer="IO" Cclass="CMSIS Driver" Cgroup="SPI" Csub="SSP" Cvendor="Keil"/>
<component layer="IO" Cclass="Device" Cgroup="GPDMA" Cvendor="Keil"/>
<component layer="IO" Cclass="Device" Cgroup="GPIO" Cvendor="Keil"/>
<component layer="IO" Cclass="Device" Cgroup="SCU" Cvendor="Keil"/>
<component layer="IO" Cclass="Device" Cgroup="Startup" Cvendor="Keil">
<file attr="config" category="source" name="Device/Source/ARM/startup_LPC43xx.s" version="1.0.0"/>
<file attr="config" category="source" name="Device/Source/system_LPC43xx.c" version="1.0.3"/>
<file attr="config" category="header" name="RTE_Driver/Config/RTE_Device.h" version="2.2.1"/>
</component>
</components>
<files>
<group layer="APP" name="Source">
<file category="sourceC" name="./main.c"/>
<file category="sourceC" name="./BSD_Client.c"/>
</group>
<group name="Documentation">
<file layer="APP" category="doc" name="./Abstract.txt"/>
</group>
</files>
</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