Open-CMSIS-Pack
Version 1.7.45
Delivery Mechanism for Software Packs
|
The level <boards> describes a development board that is the subject of a Board Support Pack (BSP). It contains information about the board vendor and name, a brief description, images to be displayed on web pages, and different types of documentation. The microcontroller devices that are mounted on the board or that are compatible with the ones mounted are also specified. A list of features concludes the <boards> section.
A development board is described by the following properties:
Example
Grouping element for boards. No more than one such group can exist in a Pack. None is required.
Parent | Chain | ||
---|---|---|---|
package | /package | ||
Child Elements | Description | Type | Occurrence |
board | Description of the board | BoardType | 1..* |
This element provides information to specify the board support. At least one board must be defined.
Parent | Chain | ||
---|---|---|---|
boards | /package/boards | ||
Attributes | Description | Type | Use |
vendor | name of the board vendor | xs:string | required |
name | name of the development board | xs:string | required |
revision | Revision of the board that is suited to be used with the BSP. | xs:string | optional |
uuid | Specifies a 128-bit UUID that is embedded it in the debugger firmware of the board tag. Format: 8-4-4-4-12 for a total of 36 characters. Example: 123e4567-e89b-12d3-a456-426614174000 | 128-bit UUID | optional |
salesContact | Either an email address or web page to contact the sales department. | xs:string | optional |
orderForm | Link to a web page for ordering the development board. | xs:anyURI | optional |
Child Elements | Description | Type | Occurrence |
description | Brief summary of the board (maximum 256 characters, recommended 128 characters). | BriefDescType | 1 |
feature | Describes the features of the development board. | BoardsFeatureType | 1..* |
mountedDevice | Specifies the specific microcontroller device mounted on the development board. | BoardsDeviceType | 1..* |
compatibleDevice | Specifies compatible microcontroller devices. | CompatibleDeviceType | 1..* |
mountedPart | Specifies the parts (all devices other than the MCU) mounted on the development board. | MountedPartType | 0..* |
image | Carries pictures of the boards to be displayed on web pages. Directory and file names are case-sensitive. | ComplexType | 0..1 |
debugInterface | Describes the debug interface of the development board. The expectation is that boards provides a hardware connector to attach external debug adapters and/or on-board debug adapters, unless the board has device = "NO_MCU" or represents virtual hardware. | DebugInterfaceType | 0..* |
book | Describes the documentation files (user manuals, schematics, etc.). Directory and file names are case-sensitive. | BoardsBookType | 0..* |
debugProbe | Specify on-board debug probe. | DebugProbeType | 0..1 |
memory | Specify memory areas that board specific. | MemoryType | 0..* |
algorithm | Specify Flash programming algorithms for memory provided by the board. | AlgorithmType | 0..* |
environment | Specify tool specif settings. | EnvironmentType | 0..* |
This element contains information about the features and capabilities of a board. A list of pre-defined features exists.
Example
Parent | Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
type | Defines board features. Select predefined values from the table Board Features. | BoardFeatureTypeEnum | required |
n | Depends on attribute type. Check table Board Features for details. | xs:string | optional |
m | Depends on attribute type. Check table Board Features for details. | xs:string | optional |
name | Descriptive name of the feature. If omitted, a Default Name is used (refer to table Board Feature Types). Do not repeat the n or m values in the name. This will lead to duplicate entries on web sites (they show n x name). | xs:string | optional |
The table below lists predefined board features.
type= | n= | m= | Default Name | Example | Example shown as |
---|---|---|---|---|---|
ODbg | Number of Debug Adapters | N/A | Integrated Debug Adapter | <feature type="ODbg" n="1" name="Integrated ST-Link on USB Connector J13"/> | 1 x Integrated ST-Link on USB Connector J13 |
XTAL | Oscillator Frequency | N/A | Crystal Oscillator | <feature type="XTAL" n="8000000"/> | 8 MHz Crystal Oscillator |
PWR | Minimum Input Voltage | Maximum Input Voltage | Power Supply | <feature type="PWR" n="8" m="12"/> | 8 V - 12 V Power Supply |
PWRSock | Number of Power Sockets | N/A | Power Socket | <feature type="PWRSock" n="1" name="Coaxial Power Receptacle"/> | 1 x Coaxial Power Receptacle |
Batt | Number of Batteries | N/A | Battery | <feature type="Batt" n="1" name="CR2032 Battery for RTC"/> | 1 x CR2032 Battery for RTC |
Curr | Typical Current | Maximum Current | Current | <feature type="Curr" n="0.320" m="0.375"/> | 320 mA (typ), 375 mA (max) Current |
CoreOther | Number of Features | N/A | Other Core Feature | <feature type="CoreOther" n=1 name="My Other Core Feature"/> | 1 x My Other Core Feature |
RAM | Number of RAMs | N/A | RAM | <feature type="RAM" n="1" name="512 kB Static RAM"/> | 1 x 512 kB Static RAM |
ROM | Number of ROMs | N/A | Flash | <feature type="ROM" n="1" name="4 MB NAND-Flash"/> | 1 x 4 MB NAND-Flash |
Memory | Number of Additional Memory | N/A | Memory | <feature type="Memory" n="128" name="EEPROM"/> | 128 byte EEPROM |
MemCard | Number of Card Holders | N/A | SD/microSD/MMC Card Holder | <feature type="MemCard" n="2" name="SD Card Holder"/> | 2 x SD Card Holder |
MemoryOther | Number of Other Memory | N/A | Other Memory Type | <feature type="MemoryOther" n="1" name="1 kB MRAM"/> | 1 x 1 kB MRAM |
DIO | Number of Digital I/Os | N/A | Digital I/Os | <feature type="DIO" n="26" name="Digital IOs on 2 x 13 pin header (1.27 mm pitch)"/> | 26 x Digital IOs on 2 x 13 pin header (1.27 mm pitch) |
AIO | Number of Analog I/Os | N/A | Analog I/Os | <feature type="AIO" n="4" name="Analog Inputs on 4 pin header (1.27 mm pitch)"/> | 4 x Analog Inputs on 4 pin header (1.27 mm pitch) |
Proto | n Rows | m Columns | Prototyping Area | <feature type="Proto" n="4" m="7" name="Prototyping Area with 1.00 mm pitch"/> | 4 x 7 Prototyping Area with 1.00 mm pitch |
USB | Number of USB Connectors | N/A | USB | <feature type="USB" n="2" name="Full-Speed USB Device, Micro-B receptacle"/> | 2 x Full-Speed USB Device, Micro-B receptacle |
ETH | Number of Ethernet Connectors | Data Rate in Bit/s | Ethernet | <feature type="ETH" n="1" m="10000000" name="RJ45 Receptacle"/> | 1 x 10 Mbit/s RJ45 Receptacle |
SPI | Number of SPI Connectors | N/A | SPI | <feature type="SPI" n="1" name="4-Pin Header, 1.27 mm Pitch"/> | 1 x 4-Pin Header, 1.27 mm Pitch |
I2C | Number of I2C Connectors | N/A | I2C | <feature type="I2C" n="1" name="2-Pin Header, 1.27 mm Pitch"/> | 1 x 2-Pin Header, 1.27 mm Pitch |
RS232 | Number of RS232 Connectors | N/A | RS232 | <feature type="RS232" n="1" name="DB9 Male Connector"/> | 1 x DB9 Male Connector |
RS422 | Number of RS422 Connectors | N/A | RS422 | <feature type="RS422" n="1" name="4-Pin Header, 1.27 mm Pitch"/> | 1 x 4-Pin Header, 1.27 mm Pitch |
RS485 | Number of RS485 Connectors | N/A | RS485 | <feature type="RS485" n="1" name="DB9 Male Connector"/> | 1 x DB9 Male Connector |
CAN | Number of CAN Connectors | N/A | CAN | <feature type="CAN" n="1" name="DB9 Male Connector"/> | 1 x DB9 Male Connector |
IrDA | Number of IrDA Diodes | N/A | Diode | <feature type="IrDA" n="1" name="Diode Transceiver"/> | 1 x Diode Transceiver |
LineIn | Number of Line In Jacks | N/A | Line In | <feature type="LineIn" n="1" name="TRS Audio Jack"/> | 1 x TRS Audio Jack |
LineOut | Number of Line Out Jacks | N/A | Line Out | <feature type="LineOut" n="1" name="TRS Audio Jack"/> | 1 x TRS Audio Jack |
MIC | Number of Microphone Jacks | N/A | Microphone | <feature type="MIC" n="1" name="TS Audio Jack (Mono)"/> | 1 x TS Audio Jack (Mono) |
Edge | n Rows | m Columns | Edge | <feature type="Edge" n="2" m="24"/> | 2 x 24 Pin Edge |
ConnOther | Number of Other Connectors | N/A | Other Connector Type | <feature type="ConnOther" n="1" name="My Other Connector"/> | 1 x My Other Connector |
Button | Number of Push-Buttons | N/A | Push-buttons | <feature type="Button" n="3" name="Push-buttons: Reset, Wake Up, User"/> | 3 Push-buttons: Reset, Wake Up, User |
Poti | Number of Potentiometer | N/A | Potentiometer | <feature type="Poti" n="1"/> | 1 x Potentiometer |
Joystick | Number of Joysticks | N/A | Joystick | <feature type="Joystick" n="1" name="5-position Joystick"/> | 1 x 5-position Joystick |
Touch | Number of Touch Keys | N/A | Touch Keys/Area | <feature type="Touch" n="1"/> | 1 x Touch Keys/Area |
ContOther | Number of Other Controls | N/A | Other Control | <feature type="ContOther" n=1 name="My Other Control Feature"/> | 1 x My Other Control Feature |
Accelerometer | Number of Accelerometer | N/A | Accelerometer | <feature type="Accelerometer" n="1" name="3-axis digital Accelerometer"/> | 1 x 3-axis digital Accelerometer |
Gyro | Number of Gyroscopes | N/A | Gyroscope | <feature type="Gyro" n="1" name="3-axis digital Gyroscope"/> | 1 x 3-axis digital Gyroscope |
Compass | Number of Compass | N/A | Digital Compass | <feature type="Compass" n="1" name="High-Precision Digital Compass"/> | 1 x High-Precision Digital Compass |
TempSens | Number of Temperature Sensors | N/A | Temperature Sensor | <feature type="TempSens" n="1"/> | 1 x Temperature Sensor |
PressSens | Number of Pressure Sensors | N/A | Pressure Sensor | <feature type="PressSens" n="1"/> | 1 x Pressure Sensor |
LightSens | Number of Light Sensors | N/A | Ambient Light Sensor | <feature type="LightSens" n="1"/> | 1 x Ambient Light Sensor |
SensOther | Number of Other Sensors | N/A | Other Sensor | <feature type="SensOther" n=1 name="My Other Sensor Feature"/> | 1 x My Other Sensor Feature |
CustomFF | x [mm] | y [mm] | Custom Formfactor | <feature type="CustomFF" n="54" m="26" name="40-Pin DIP with 0.1-inch Pitch"/> | 54 mm x 26 mm, 40-Pin DIP with 0.1-inch Pitch |
ArduinoFF | 1 | N/A | Arduino Formfactor | <feature type="ArduinoFF" n="1"/> | Arduino Formfactor |
FreedomFF | 1 | N/A | Freedom Formfactor | <feature type="FreedomFF" n="1"/> | Freedom Formfactor |
TowerFF | 1 | N/A | Tower Formfactor | <feature type="TowerFF" n="1"/> | Tower Formfactor |
LED | Number of LEDs | N/A | LEDs | <feature type="LED" n="3" name="Multicolor LEDs"/> | 3 x Multicolor LEDs |
Camera | Number of Camera Interfaces | N/A | Camera | <feature type="Camera" n="1" name="Digital VGA Camera"/> | 1 x Digital VGA Camera |
LCD | Number of Segment LCD Controller | Com.Seg as a decimal number (see example) | LCD | <feature type="LCD" n="1" m="16.40" name="Segment LCD Controller"/> | 1 x 16 x 40 Segment LCD Controller |
GLCD | Number of Graphic LCD Controller | Maximum Resolution as a decimal number (see example) | GLCD | <feature type="GLCD" n="1" m="320.240" name="2.4 inch Color TFT LCD with resistive touchscreen"/> | 320 x 240 Pixel 2.4 inch Color TFT LCD with resistive touchscreen |
Speaker | Number of Speakers | N/A | Speaker | <feature type="Speaker" n="1"/> | 1 x Speaker |
VirtualHW | 1 | N/A | Arm Virtual Hardware | <feature type="VirtualHW" n="1"/> | Arm Virtual Hardware |
Other | Number of Other Features | N/A | Other Feature | <feature type="Other" n=1 name="My Other Feature"/> | 1 x My Other Feature |
The element specifies the devices mounted on the board. Exactly one device must be specified per deviceIndex. In case no device is mounted on the board, like in the case of the daughter boards (called also expansion or extension boards), the Dvendor and Dname attributes shall be set respectively to "NO_VENDOR:0" and "NO_MCU".
Example
Parent | Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
deviceIndex | Index number of the device (in case more than one device is present on the board). | xs:string | optional |
Dvendor | Is the name of vendor of the device specified by Dname. Use predefined values as listed in the table Device Vendor. If no device is mounted on the board, use predefined value "NO_VENDOR:0". | DeviceVendorEnum | required |
Dname | Is the name of the target device used on the board. If the device is specified by a variant this string needs to be assigned to the Dname attribute. If no device is mounted on the board, use value "NO_MCU". | xs:string | required |
This element contains information about devices that are compatible to the device used on the board. Compatible means that the user is able to generate code for compatible devices and test it on the development board. At least one compatible device must be specified. In case no compatible device exists for the device mounted on the board or if no device is mounted on the board, like in the case of the daughter boards (called also expansion or extension boards), the Dvendor and Dname attributes shall be set respectively to "NO_VENDOR:0" and "NO_MCU".
Example
Since Dfamily and DsubFamily are volatile, it is recommended to use Dname attribute with wild-cards.
Parent | Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
deviceIndex | Index number of the device (in case more than one device is present on the board). | xs:string | optional |
Dvendor | Vendor name of the target device specified by Dname. Use predefined values as listed in the table Device Vendor. If no compatible device exists for the device mounted on the board or if no device is mounted on the board, use predefined value "NO_VENDOR:0". This element is required if at least one of the following attributs is defined: Dname, DsubFamily, Dfamily. | DeviceVendorEnum | required |
Dname* | Name of the target device used on the board. Requires Dvendor to be specified. | xs:string | optional |
Dfamily | Name of the target device family used on the board. Requires Dvendor to be specified. | xs:string | optional |
DsubFamily | Name of the target device sub-family used on the board. Requires Dvendor to be specified. | xs:string | optional |
*) Wild-cards can be used to match names with the following definitions:
The element specifies the parts (any device other than the MCU) mounted on the board. The Hname attribute, togheter with the Hvendor and (eventually) the Hvariant, must uniquely specify the part.
Example
Parent | Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
n | Number of the parts with the same name and vendor mounted on the board. | xs:string | required |
Hvendor | Vendor name of the part specified by Hname. | xs:string | required |
Hname | The part name used by the part vendor to identify and group a specific set of parts. | xs:string | required |
Hvariant | Specifies the exact part name (e.g. the commercial/selling name) in case the one indicated in the Hname is not enough to uniquely identify the part. | xs:string | optional |
This element specifies the picture of a development board. Maximum one image element can be specified. None must be specified. Four different picture types (large, small, bottom and perspective) can be specified for the same <image> element at the same time. Attribute large displays the 'top' side of the board.
Example:
Parent | Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
large | Specifies the path to a large image. The path is relative to the pack base directory or a link to an image on an external web site. Attribute 'large' displays the 'top' side of the board. | xs:string | optional |
small | Specifies the path to a small image. The path is relative to the pack base directory or a link to an image on an external web site. Attribute 'small' displays the 'top' side of the board at a lower resolution than in 'large' attribute. | xs:string | optional |
bottom | Specifies the path to a bottom image. The path is relative to the pack base directory or a link to an image on an external web site. | xs:string | optional |
perspective | Specifies the path to a perspective image. The path is relative to the pack base directory or a link to an image on an external web site. | xs:string | optional |
public | Set publishing permissions for the documentation. If <public> is true, then the vendor gives permission to extract the documentation from the Pack and publish it on a web-page. Links to web pages are assumed to be public. If no <public> tag is available, it is assumed that publishing is allowed (default value is true). | xs:boolean | optional |
This element describes the debug interface of a board. All available debug interfaces specifying on-board adapters as well as hardware connectors for external debug adapter should be listed here. If a board has no device mounted or if the board describes virtual hardware there maybe no debug entries listed.
Example
Parent | Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
adapter | String describing the debug adapter. Common adapters are: JTAG/SW (for all adapters supporting JTAG and Serial-Wire Debug), CMSIS-DAP, OpenSDA, J-Link, ST-Link, Nu-Link. | xs:string | optional |
connector | String describing the debug connector. Usually one of these: 10-pin Cortex Debug Connector, 20-pin Arm Standard JTAG Connector, 20-pin Cortex Debug + ETM Connector, Mini-USB, Micro-USB. | xs:string | optional |
This element specifies an optional on-board debug probe.
Parent | Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
deviceIndex | xs:string | optional | |
name | Type of on-board debug probe. | CMSIS-DAP, DAP-Link, or ST-Link | required |
version | Debug probe version. | xs:string | required |
debugLink | Debug connection from probe to processor. | jtag, or swd | required |
debugClock | Debug controller clock speed. | NonNegativeInteger | required |
connector | String describing the debug connector. Usually one of these: Mini-USB, Micro-USB, USB-C. | xs:string | required |
The element provides information about documentation parts related to a development board.
Example
Parent | Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
category | Describes the type of documentation. Use predefined values as defined in the table Board Book Categories. | BoardBookCategoryEnum | optional |
name | Is the name of the document (including the path within the Pack). The link to a document on an external web site is also allowed. | xs:string | optional |
title | Is the title of the document to be displayed in the Books window of uVision. | xs:string | optional |
public | Set publishing permissions for the documentation. If <public> is true, then the vendor gives permission to extract the documentation from the pack and publish it on a web-page. Links to web pages are assumed to be public. The default value is true. | xs:boolean | optional |
The table lists values to identify a specific type of documentation for development boards.
category= | Description |
---|---|
setup | Documentation about how to setup the development board. |
schematic | Schematics of the development board. |
overview | Overview/data sheet of the development board. |
manual | User manual of the development board |
layout | PCB layout file of the board (e.g. in Gerber format) |
other | All other documentation. |
This element specifies memory regions that boards may add. Memory types are predefined and can be selected.
Example
Parents | Element Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
Pname | Processor identifier. This attribute is for boards that use devices with multiple processors. Only alphabetical characters, decimal digits, '-' and '_' are allowed. | RestrictedString | optional |
name |
Unique name of the memory to be used in conjunction with access. If a memory with the same name is already defined in a parent scope, the parent one is extended/overwritten. Backward compatibility: If no 'name' attribute is given but 'id' attribute is still present, the given 'id' attribute is used as the 'name'. | xs:string | optional |
access | Access permission of the memory. See MemoryAccessTypeString for details. | MemoryAccessTypeString | optional |
start | Base address of the memory using a hexadecimal value. | NonNegativeInteger | required |
size | Size of the memory in bytes using a hexadecimal value. | NonNegativeInteger | required |
default |
Indicates a general purpose memory region, that does not require any special considerations (access speed, remapping, protection, etc.). If true, then the memory region will be used by the linker. Default value is false. | xs:boolean | optional |
startup | If true, the startup code of the application will be placed into this memory region. Default value is false. | xs:boolean | optional |
uninit |
If true, the memory region shall be kept uninitialized (i.e. keep the memory state as is). Default value is false. | xs:boolean | optional |
alias | Reference to another memory (by it's 'name' attribute) which shares the same physical memory. Some physical memory is made accessible via different addresses, for example, cached vs. non-cached accesses. This avoids the impression that the device has twice as much memory available. | xs:string | optional |
Specify Flash programming algorithms with the address range and its size for board-specific memory. An algorithm with <default> set to true gets configured automatically to the download options of the project.
Parents | Element Chain | ||
---|---|---|---|
board | /package/boards/board | ||
Attributes | Description | Type | Use |
Pname | Processor identifier. This attribute is for boards that use devices with multiple processors. Only alphabetical characters, decimal digits, '-' and '_' are allowed. | RestrictedString | optional |
name | Flash Programming Algorithm file including the path, which is relative to the root folder of the software pack. | xs:string | required |
start | Base address for the Flash programming algorithm. | NonNegativeInteger | required |
size | Size covered by the Flash programming algorithm. End address = start + size - 1 | NonNegativeInteger | required |
RAMstart | Base address for the RAM where the Flash programming algorithm will be executed from. If specified, the memory element does not require a default attribute. | NonNegativeInteger | optional |
RAMsize | Maximum size of RAM available for the execution of the Flash programming algorithm. End address = start + size - 1 is used for the Stack. If specified, the memory element does not require a default attribute. | NonNegativeInteger | optional |
default | If true, then this is the default Flash programming algorithm that gets configured in a project. If not specified or set to false, then the Flash programming algorithm can be configured on a lower level. However, the Flash programming algorithm of a project can be changed manually at any time during development. | xs:boolean | optional |
style | [Version 1.4.0] Today, different toolchains support different styles of incompatible flash programming algorithms. The attribute specifies the style of the specified flash programming algorithm. For backward compatibility the default value is Keil. The aim is to converge to the CMSIS style. | AlgorithmStyleEnum | optional |
See description at /package/devices/family/.../environment.