Open-CMSIS-Pack  Version 1.7.45
Delivery Mechanism for Software Packs
Pack Description (*.pdsc) Format

The Pack Description (*.pdsc) Format uses standard XML annotations and is defined in the schema file PACK.xsd. Software components are distributed through Software Packs. A software pack is a zip file containing a single Pack Description file that describes dependencies to devices, processors, tool chains, or other software components.

A descriptive text of the software pack along the text information for devices, components, and examples is part of each a Pack Description (*.pdsc) file. In addition, information is provided which facilitates downloading, updating, and versioning of of a software pack. The *.pdsc file contains also the complete version history of the software pack with a brief list of the most significant changes.

Filename Conventions

A software pack must have a unique filename which uses the following format: <vendor>.<name>.<version>.pack.

Where:

  • <vendor>: name of the supplier or vendor of the software pack.
  • <name>: name of the software pack. It is the vendor's responsibility to ensure unique package names.
  • <release version="X.Y.Z">: version number of the software pack.
  • .pack: file extension identifying a software pack.
Note
<vendor> and <name> must not contain spaces.


The Pack Description (*.pdsc) file belonging to such a software pack file (<vendor>.<name>.<version>.pack) is version independent and has the format: <vendor>.<name>.pdsc.

Where:

  • <vendor>: name of the supplier or vendor of the software pack.
  • <name>: name of the software pack that is described by this *.pdsc file.
  • .pack: file extension identifying a software pack.
Note
<vendor> and <name> must not contain spaces.

Example filenames for software packs:

Software Pack for CMSIS Version 4.0 released by Arm.

  • ARM.CMSIS.4.0.0.pack: filename of the software pack.
  • ARM.CMSIS.pdsc: filename of the Pack Description (*.pdsc) file.

Device Family Pack for STM32F4 Version 1.0.0 released by ST Microelectronics.

  • ST.STM32F4xx_DFP.1.0.0.pack: filename of the software pack.
  • ST.STM32F4xx.pdsc: filename of the Pack Description (*.pdsc) file.
Note
All elements are case sensitive and must be consistently spelled in all places, i.e. the definition in the PDSC file must match the filenames of the *.pdsc and *.pack files. The file extensions (*.pdsc and *.pack) must be lower case.

Pack Schema

The XML schema file PACK.xsd defines the sections used in a *.pdsc file. The current PACK.xsd can be found in the ARM.CMSIS pack in the directory .\CMSIS\Utilities.

The Pack Description (*.pdsc) Format is structured using grouping elements and contains the following top level elements:

  • <package>: describes package related information like vendor, package name, description, version. Is the root element.
  • <description>: brief description of the software pack with optional link to Markdown overview documentation.
  • <ECCN>: section listing Export Control Classification Numbers (ECCN) for EU and US.
  • <keywords>: lists keywords to search for packages. Can be used for search engines.
  • environments: Grouping element for environments information. Each inner environment element may be used to provide tool-specific information pertaining to the package as a whole.
  • <repository>: specifies the URL and repository type of a public repository where the pack originates from.
  • <dominate>: the pack contains one or more device, API, or component that overrules other packs with identical items.
  • <releases>: lists release versions with descriptions.
  • <changeLogs>: lists changelog files associated with components and apis within the pack.
  • <licenseSets>: lists license files associated with the pack and contained components and apis.
  • <requirements>: lists required packs, compiler, programming language standards and their version or version range.
  • <taxonomy>: lists description elements that define component classes and component group names.
  • <part-taxonomy>: lists description elements that define part classes and part group names.
  • <apis>: describes Application Programming Interfaces (API) Specifications contained in the software pack.
  • <generators>: specifies the tools that have been used to generate the PDSC file.
  • <devices>: lists the devices supported by this software pack. It specifies the device attributes and files like flash programming algorithms, CMSIS device header files, CMSIS System View Descriptions, etc.
  • <boards>: lists the development boards supported by the software pack.
  • <parts>: lists the parts (devices other than the MCUs) supported by the software pack.
  • <conditions>: defines dependencies to devices, processors, components, and tools that are used within the software pack. It allows making components and files conditional.
  • <components>: lists the software components contained in the software pack.
  • <examples>: specifies example projects contained in the pack.
  • <csolution>: lists pack content that relates to csolution projects that are managed using the CMSIS-Toolbox.

Example of a *.pdsc File

This example of a *.pdsc File explains the sections, particularly how dependencies are used to identify individual files of Software Components.

Example of a *.pdsc File