Package-description files are XML files used by CrossStudio to describe a support package, its contents, and any dependencies it has on other packages.

Each package file must contain one package element that describes the package. Optionally, the package element can contain a collection of file, history, and documentation elements to be used by CrossStudio for documentation purposes.

The filename of the package-description file should match that of the package and end in "_package.xml".

Below is an example of two package-description files. The first is for a base chip-support package for the LPC2000; the second is for a board-support package dependent on the first:

Philips_LPC2000_package.xml
<!DOCTYPE CrossStudio_Package_Description_File>
<package cpu_manufacturer="Philips" cpu_family="LPC2000" version="1.1" crossstudio_versions="8:1.6-" author="Rowley Associates Ltd" >
  <file file_name="$(TargetsDir)/Philips_LPC210X/arm_target_Philips_LPC210X.htm" title="LPC2000 Support Package Documentation" />
  <file file_name="$(TargetsDir)/Philips_LPC210X/Loader.hzp" title="LPC2000 Loader Application Solution" />
  <group title="System Files">
    <file file_name="$(TargetsDir)/Philips_LPC210X/Philips_LPC210X_Startup.s" title="LPC2000 Startup Code" />
    <file file_name="$(TargetsDir)/Philips_LPC210X/Philips_LPC210X_Target.js" title="LPC2000 Target Script" />
  </group>
  <history>
    <version name="1.1" >
      <description>Corrected LPC21xx header files and memory maps to include GPIO ports 2 and 3.</description>
      <description>Modified loader memory map so that .libmem sections will be placed correctly.</description>
    </version>
    <version name="1.0" >
      <description>Initial Release.</description>
    </version>
  </history>
  <documentation>
    <section name="Supported Targets">
      <p>This CPU support package supports the following LPC2000 targets:
        <ul>
          <li>LPC2103</li>
          <li>LPC2104</li>
          <li>LPC2105</li>
          <li>LPC2106</li>
          <li>LPC2131</li>
          <li>LPC2132</li>
          <li>LPC2134</li>
          <li>LPC2136</li>
          <li>LPC2138</li>
        </ul>
      </p>
    </section>
  </documentation>
</package>
CrossFire_LPC2138_package.xml
<!DOCTYPE CrossStudio_Package_Description_File>
<package cpu_manufacturer="Philips" cpu_family="LPC2000" cpu_name="LPC2138" board_manufacturer="Rowley Associates" board_name="CrossFire LPC2138" dependencies="Philips_LPC2000" version="1.0">
  <file file_name="$(SamplesDir)/CrossFire_LPC2138/CrossFire_LPC2138.hzp" title="CrossFire LPC2138 Samples Solution" />
  <file file_name="$(SamplesDir)/CrossFire_LPC2138/ctl/ctl.hzp" title="CrossFire LPC2138 CTL Samples Solution" />
</package>

Package elements

The package element describes the support package, its contents, and any dependencies it has on other packages. Valid attributes for this element are:

Attribute Description
author The author of the package.
board_manufacturer The manufacturer of the board supported by the package (if omitted, CPU manufacturer will be used).
board_name The name of the specific board supported by the package (only required for board-support packages).
cpu_family The family name of the CPU supported by the package (optional).
cpu_manufacturer The manufacturer of the CPU supported by the package.
cpu_name The name of the specific CPU supported by the package (may be omitted if the CPU family is specified).
crossstudio_versions A string describing which version of CrossStudio supports the package (optional). The format of the string is <a href="#target_id_number">target_id_number</a>:<a href="#version_range_string">version_range_string</a>.
description A description of the package (optional).
dependencies A semicolon-separated list of packages the package requires to be installed in order to work.
installation_directory The directory in which the package should be installed (optional\--if undefined, defaults to "$(PackagesDir)").
title A short description of the package (optional).
version The package version number.

File elements

The file element is used by CrossStudio for documentation purposes by adding links to files of interest within the package such as example project files and documentation.

Attribute Description
file_name The file path of the file.
title A description of the file.

Optionally, file elements can be grouped into categories using the group element.

Group elements

The group element is used for categorizing files described by file elements into a particular group.

Attribute Description
title Title of the group.

History elements

The history element is used to hold a description of the package's version history.

The history element should contain a collection of version elements.

Version element

The version element is used to hold the description of a particular version of the package.

Attribute Description
name The name of the version being described.

The version element should contain a collection of description elements.

Description elements

Each description element contains text that describes a feature of the package version.

Documentation elements

The documentation element is used to provide arbitrary documentation for the package.

The documentation element should contain a collection of one or more section elements.

Section elements

The section element contains package documentation in XHTML format.

Attribute Description
name The title of the documentation section.

target_id_number

The following table lists the possible target ID numbers:

Target ID
AVR 4
ARM 8
MSP430 9
MAXQ20 18
MAXQ30 19

version_range_string

The version_range_string can be any of the following: