Open-CMSIS-Pack
Version 1.7.44
Delivery Mechanism for Software Packs
|
There are the following requirement types:
<packages>
section lists CMSIS Packs that have been used to configure the project. This includes the specification of a version
range to ensure compatibility. If no version is provided, the latest installed version is used. If not yet installed, the latest available version will be installed before resolving the configuration.<compilers>
section specifies the toolchains that are supported by this example. The required compiler version is specified using the version
element. If no compiler is specified, it is assumed that any toolchain will work.<languages>
section allows to specify requirements regarding the programming language, for example C99 standard. If no language requirements are set, ANSI C is assumed.<targets>
section allows to specify requirements regarding the device or device series. If no target requirements are set, the pack is listed as generic that works with any device, board, or processor.Example requirements section:
/requirements
Parents | Element Chain | ||
---|---|---|---|
package | /package | ||
Attributes | Description | Type | Use |
Child Elements | Description | Type | Occurrence |
packages | List of software packs required for the project to build. | PackagesType | <0..1> |
compilers | List of compilers required for the project to build. Support for all compilers is assumed when not specified. | CompilersType | <0..1> |
languages | List of language standards required for the project to build. Assuming ANSI C if not set. | LanguagesType | <0..1> |
targets | Restrict a software pack to a list of devices, boards, or processor cores that are supported. | TargetsType | <0..1> |
Example packages section:
/package
Parents | Element Chain | ||
---|---|---|---|
packages | /package/requirements/packages | ||
Attributes | Description | Type | Use |
vendor | specify vendor of the package (e.g. "ARM") | RestrictedString | required |
name | Name of the pack | RestrictedString | required |
version | Version of the required software pack which can be:
| VersionType | optional |
Example compilers section:
/compiler
Parents | Element Chain | ||
---|---|---|---|
requirements | element_requirements | ||
Attributes | Description | Type | Use |
name | Name of the required compiler (i.e. "ARMCC", "IAR") | CompilerEnumType | required |
version | Version of the required compiler which can be:
| VersionType | required |
Example languages section:
/language
Parents | Element Chain | ||
---|---|---|---|
requirements | element_requirements | ||
Attributes | Description | Type | Use |
name | Name of the programming language (i.e. "C", "C++") | xs:string | required |
version | Version of the language standard (i.e. 90, 99, etc.). The setting will be reflected in the compiler commandline. | xs:string | required |
The targets section marks a pack device specific. Multiple targets can be listed to allow usage for several devices or device series. The indented usage is for installers and web pages to show packs only for specific devices.
It allows also to specify boards and processor cores, as overtime this element may simplify conditions. However, currently it has no impact on the selection of pack content such as components. Therefore these attributes are experimental.
Example targets section:
/target
Parents | Element Chain | ||
---|---|---|---|
targets | /package/requirements/targets | ||
Attributes | Description | Type | Use |
Dvendor | Specifies the silicon vendor of the device | xs:string | optional |
Dname | Specifies the name of the device (wildcards possible) | xs:string | optional |
Dcore | Specifies a processor core (experimental) | xs:string | optional |
Bvendor | Specifies the board vendor (experimental) | xs:string | optional |
Bname | Specifies the board name (experimental) | xs:string | optional |
Brevision | Specifies the board revision (experimental) | xs:string | optional |