CMSIS Packs  Version 0.10
Mechanism to install software, device support, APIs, and example projects
 All Pages
/package/apis level

Application Programming Interfaces (apis) are C/C++ interface specifications that allow software to be divided into largely independent modules. Such modules can then be developed, tested, and maintained independently, and reused by different projects. One example is the use of device drivers. If device drivers are developed for different devices implementing the same API, the application software itself can be written independent from the device it is build for.

The apis allow to distribute the Application Programming Interface Specifications decoupled from actual implementation. One example is the CMSIS-RTOS API, which is specified as part of CMSIS, however, the actual RTOS implementation is provided by different vendors.

Unlike a software component, an API is not selectable. An API consists of a name, a brief description as well as one or more header files, and a document containing a detailed specification of the API.

 


/package/apis

This element is a grouping element for all application programming interfaces included in the Software Pack. The element itself is optional. Only one such section can exist in a package.

Example:

<package>
<apis>
...
</apis>
</package>

 

Parents Element Chain    
package /package    
Child Elements Description Type Occurrence
api Named specification of an API containing a brief description, C/C++ header files and documentation ApiType 1..*

 


/package/apis/api

Application Programming Interfaces (apis) are C/C++ interface specifications that allow independent components to successfully interwork by either implementing or using the defined set of functions, data types, and definitions. This element is mandatory and can exist multiple times.

Example:

<apis>
<api Cclass="Device" Cgroup="Driver UART" exclusive="0">
<description>UART Driver API for the Cortex-M processor based devices</description>
<files>
<file category="doc" name="Driver\Doc\UART\html\index.html"/>
<file category="header" name="Driver\Include\Driver_UART.h"/>
</files>
</api>
<api Cclass="Device" Cgroup="Driver SPI" exclusive="0">
<description>SPI Driver API for the Cortex-M processor based devices</description>
<files>
<file category="doc" name="Driver\Doc\SPI\html\index.html"/>
<file category="header" name="Driver\Include\Driver_SPI.h"/>
</files>
</api>
...
</apis>

 

Parent Element Element Chain
apis /package/apis
Attributes Description Type Use
Capiversion Version of this component. Is a mandatory part of the component ID. The recommended version format is major.minor.build. Version management relies on version format remaining unchanged between versions and that the version value is always incremented. VersionType 0..1
Cclass Defines the component class this component belongs to. This is a mandatory part of the component ID. CclassType 1..1
Cgroup Defines the component group this component belongs to. This is a mandatory part of the component ID. CgroupType 1..1
exclusive Makes the selection of a component implementing the API exclusive. If set to "0" multiple components implementing the API can be selected. Set to 1 by default. xs:boolean 0..1
Child Elements Description Type Occurrence
description Brief summary about the purpose and scope of an API. xs:string 0..1
files Grouping element for all file descriptions that are part of this component.. group 0..1