The CMSIS-Pack format is used to deliver a Software Pack and is aimed to be scalable for future requirements. It provides a management process and supports a tool independent distribution for:
- Device Support for tool chains and software applications to target a specific device:
- Information about the processor and it's features.
- C and assembly files for the device startup and access to the memory mapped peripheral registers.
- Parameters, technical information, and data sheets about the device family and the specific devices.
- Device description and available peripherals.
- Memory layout of internal and external RAM and ROM address ranges.
- Flash algorithms for programming the device.
- Debug and trace configurations as well as System View Description files for device specific display of the memory mapped peripheral registers.
- Board Support for rapid development in the prototyping stage:
- Information about the development board and it's features.
- Parameters, technical information, and data sheets about the board, the mounted microcontroller and peripheral devices.
- Drivers for on-board peripheral devices
- Software Components simplify the re-use of software and the management of 3rd party software. They contain:
- A collection of source modules, header and configuration files as well as libraries.
- Documentation of the software, including features and APIs.
- Example Projects can be used as a reference and starting point for similar applications. They contain:
- Fully defined application projects that work out of the box in the specified build and debug environments.
- Documentation about the purpose of the example, how to build, configure and execute the application.
- User Code Templates help to understand the basic concepts of a software component better and to give the user a good starting point for implementing his application.
Steps to Create a Pack
The following image shows the basic stpes that are required to create a Software Pack:
- Produce input: Create the files that will be delivered with the Pack.
- Organize files: Use directories to separate the content of the Pack.
- Create PDSC file: The XML based PDSC file can be created using any text editor. Editors that can validate XML code against a schema file help to find bugs early in the Pack development stage.
- Generate PACK: Any compression tool supporting the ZIP format can be used to create a PACK file. PackChk.exe is helpful for the validation of the contents of a Pack.
The following pages will show how to create a Software Pack from scratch. The page Pack with Software Components will start with a simple Pack containing only the PDSC file and a single software component and will then explain further elements of a Pack in more detail. The page Pack with Device Support adds information on the additional requirements that a DFP has, while Pack with Board Support will elaborate on the content specific to a BSP.
Pack Conventions
All files that belong to a Software Pack are compressed into a *.PACK file using a standard ZIP file format. The content of each Software Pack is described in the Pack Description (*.PDSC) file that is part of each Pack. Refer to Pack Description (*.PDSC) Format for more information.
A Software Pack must have a unique filename following this naming convention: <vendor>.<name>.<version>.pack.
Where:
- <vendor> is name of the supplier or vendor of the Software Pack.
- <name> is name of the Software Pack. It is the vendor's responsibility to ensure unique package names.
- <version>specifies the version number of the Software Pack.
- .pack is the file extension identifying a Software Pack.
The XML elements <vendor>, <name>, and <version> are declared in the PDSC file.
The PDSC file needs to reside at the top-level of the Pack file, using it as the root directory for all file references.
Pack Tutorial
The ARM::CMSIS Pack contains tutorials that are explained on the following pages. In the \CMSIS\Pack\Tutorials directory the following three ZIP files are available: