| CMSIS-Pack Version 1.3.1 Delivery Mechanism for Software Packs

- CMSIS
- CORE
- Driver
- DSP
- RTOS API
- Pack
- SVD

- Main Page
- Usage and Description

All Pages
CMSIS-Pack Documentation

CMSIS-Pack describes a delivery mechanism for software components, device parameters, and evaluation board support. The XML-based package description (PDSC) file describes the content of a Software Pack (file collection) that includes:

- Source code, header files, and software libraries
- Documentation and source code templates
- Device parameters along with startup code and programming algorithms
- Example projects

The complete file collection along with the PDSC file is shipped in ZIP-format as a Software Pack. The PDSC file is designed for software development environments and describes the user and device relevant context for the files supplied within such a Software Pack. A Software Pack can be used for multiple purposes (see below).

After installing a Software Pack, all included software components are available to the development tools. Software components are a collection of source modules, header and configuration files as well as libraries. Packs containing software components can also include Example Projects and User Code Templates.

# Software Pack Use Cases

Software Pack Use Cases

The figure above shows the following use cases for Software Packs:

- Device Family Pack (DFP): contains CMSIS system/startup files, drivers, and flash algorithms for a microcontroller device family.
- CMSIS Software Pack: contains the generic CMSIS components (CORE, DSP Library, and RTOS implementation) supplied by ARM.
- Middleware Pack: contains software components belonging to a middleware (such as source code or libraries).
- Board Support Pack (BSP): contains documentation, schematics, and drivers for a certain development board.
- In-house Software Packs: usually contain software components that can be distributed within a company or engineering group.

Note
  A Software Pack can address multiple use cases at the same time!

The following sections give you more details on the basics:

- Create Software Packs explains the steps required for creating a Software Pack in general.
- Pack with Software Components gives detailed information on the contents of the PDSC file.
- Pack with Device Support describes additional requirements of Device Family Packs (DFPs).
- Pack with Board Support covers the creation of Board Support Packs (BSPs).
- Pack Example explains the Software Pack example that is part of the CMSIS Pack in more detail.
- Publish a Pack shows the options for publishing a Pack.
- Utilities for Creating Packs caters to programs that are useful during the creation of a Pack.
- Pack Description (*.PDSC) Format describes all XML elements that can be used in a PDSC file.
- Configuration Wizard Annotations can be used to create GUI-like elements in development tools for configuration files.

## CMSIS-Pack in ARM::CMSIS Pack

Files relevant to CMSIS-Pack are present in the following ARM::CMSIS directories:

Folder | Content
--- | ---
Utilities | Utilities for Creating Packs
Pack\Example | Reference Software Pack
Pack\Tutorials | Tutorials for Creating Packs

## Revision History

Version | Description
--- | ---

1.3.1

Modifications compared to Version 1.3:

- Schema Version remains unchanged, since no incompatible update
- Added Cortex-M7 to the predefined list of processors
- Updated Vendor list
- Added File version attribute to debugvars element of device description
- Updated XML file header encoding tag set to capital "UTF8"
- Deprecated init attribute of <memory> element in <devices> section deprecated

1.3

Modifications compared to Version 1.2:

- Added attributes to release tag for managing deprecation and changing pack IDs
- Removed external RAMn and ROMn memory IDs in memory tag
- Added FileCategoryTypes in <file> element for C, C++, Assembler, Linker
- Extended specification of <require>, <accept> and <deny> with Cversion and Capiversion ranges
- Added Utilities for Creating Packs and PackChk.exe for pack validation
- Added documentation for the Example PACK based on LPC1800 Device Family
- Refined <debug> element description
- Many clarifications in the documentation along with examples

1.2 | Clarifications for release.

1.1 - Preliminary

Update release for review:

- new Boards description
- new Debug description
- revised Device Feature capture
- new Generator description
- new Flash Algorithm Specification
- new Configuration Wizard Annotation Specification

1.0 - Preliminary | Preliminary release for review
0.10 | Release for beta review