![]() |
![]() |
![]() |
![]() |
![]() |
This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Package a board support package (QNX Neutrino)
QNX Neutrino and Linux hosts:
packagebsp [-BhQv] [-a base_installation] [-c config_file] [-d dest_dir] [-e shortname] [-f version] [-g longname] [-i images_root] [-j prebuilt_root] [-k release_notes] [-l license_file] [-m thirdparty_shiplist] [-n doc_root] [-o source_shiplist] [-p plugin[,plugin...]] [-q doc_shiplist] [-r images_shiplist] [-s source_root] [-t prebuilt_shiplist] [-x xml_path]
Windows hosts:
ksh $QNX_HOST/usr/bin/packagebsp options
Neutrino, Windows, Linux
You can specify most options on the command line or in a configuration file. In the tables below, "Key" is the string that identifies the option in a configuration file. You can use command-line options to override the settings in the configuration file.
![]() |
There are a lot of options -- which is why we've used arbitrary letters
for them -- so you might find it more convenient to
specify the settings in a configuration file than on the command line.
We've included a configuration file that you can use as a template.
Some of the options are in pairs; one might specify the root directory of an optional component, while another specifies the shiplist. If you specify only one of these options, packagebsp doesn't add the optional component. |
You can specify these options only on the command line:
![]() |
The -Q and -v options are mutually exclusive. |
You must specify the following items, either on the command line or in the configuration file:
Option | Key | Description |
---|---|---|
-a base_installation | base | The version of QNX Momentics that you must have installed for the BSP (e.g. 6.3.0 SP2). |
-d dest_dir | dst_dir | The directory to put the zip files in. |
-e shortname | bsp_shortname | The short form of the BSP name, to be used in the name of the zip file. |
-f version | version | The version of the BSP (e.g. 1.0.1) |
-g longname | name | The full name of the BSP, to be used in the XML file. |
-j prebuilt_root | prebuilt_root | The root of the directory structure containing any prebuilt items (e.g. libraries and binaries) |
-l license_file | license | ("el") The path to a text file that contains the license for the BSP. The script puts this into the root directory of the zip file as license.txt. |
-t prebuilt_shiplist | prebuiltshiplist | The shiplist for the prebuilt items. |
If you want to include the source code -- that is, you aren't using the -B (binaries only) option -- you must also specify the following items, either on the command line or in the configuration file:
Option | Key | Description |
---|---|---|
-s source_root | src_root | The root of the directory structure that contains the source files, as well as the Makefile that you need to build the IFS images on the command line. |
-o source_shiplist | srcshiplist | The path to the shiplist of source files. |
-x xml_path | srcxml_file | The path of the source.xml file that the IDE uses for the BSP. For an example, see "source.xml," below. |
The following items are optional; if you don't specify them on the command line or in the configuration file, they aren't included in the package. If you specify a root path for an item, you must also specify a shiplist for it.
Option | Key | Description |
---|---|---|
-m thirdparty_shiplist | thirdp_license | The shiplist for any third-party license files. |
-n doc_root | doc_root | The root of the directory structure that contains the documentation. |
-p plugin[,plugin...] | doc_plugin | A comma-separated list of paths to plugins or JAR files that contain the documentation in a form suitable for the IDE's help system. |
-q doc_shiplist | docshiplist | The shiplist for the documentation. We've provided some HTML templates that you can modify to suit your BSP. |
-i images_root | img_root | The root of the directory structure that contains any OS images. |
-r images_shiplist | imgshiplist | The shiplist for the images. |
-k release_notes | relnote | The path for the release notes. You should use the release notes to identify the board or boards that your BSP supports, along with any known issues and other useful information. |
The packagebsp script packages a BSP that you've developed so that it will be compatible with QNX Momentics. This script uses zip to create an archive for all supported hosts.
You can use the command line or a configuration file to specify the following inputs to the packagebsp script:
Depending on the options you specify, the script produces:
Or:
As described above, you use a shiplist to identify the files for various components of a BSP. All of the shiplists are in the same format:
Here's an example:
################################################# # Source Shiplist for the Freescale Sandpoint BSP ################################################# hardware/Makefile hardware/startup/Makefile hardware/startup/lib/ hardware/startup/boards/Makefile hardware/startup/boards/common.mk hardware/startup/boards/sandpoint/ hardware/ipl/lib/ hardware/ipl/Makefile hardware/ipl/boards/Makefile hardware/ipl/boards/common.mk hardware/ipl/boards/sandpoint/ hardware/flash/mtd-flash/ hardware/flash/Makefile hardware/flash/boards/Makefile hardware/flash/boards/common.mk hardware/flash/boards/generic/ hardware/devc/Makefile hardware/devc/common.mk hardware/devc/public/hw/8250.h hardware/devc/public/hw/bcm1250.h hardware/devc/public/hw/dsiu.h hardware/devc/public/hw/s2681.h hardware/devc/public/hw/ucb1300.h hardware/devc/public/hw/zscc.h hardware/devc/public/ppc/403spu.h hardware/devc/ser8250/ hardware/pci/Makefile hardware/pci/common.mk hardware/pci/public/ hardware/pci/include/dl.h hardware/pci/include/dl_sandpoint.h hardware/pci/include/pcidrvr.h hardware/pci/include/server.h hardware/pci/dl.c hardware/pci/server.c hardware/pci/sandpoint/
You can create a shiplist by listing all of the files in directory (the sandpoint_1.0.1/binaries directory in this case):
cd sandpoint_1.0.1/binaries find . ! -type d > ../prebuiltshiplist
On Windows, the DOS version of find is before the QNX version in your path. If you use cmd.exe, you should use:
%QNX_HOST%\usr\bin\find . ! -type d > ../prebuiltshiplist
but if you use bash or ksh, you should use:
$QNX_HOST/usr/bin/find . ! -type d > ../prebuiltshiplist
You can edit the resulting file to remove items that you don't want to ship.
The configuration file provides information for the shiplist locations, BSP name, documentation location, release notes (both location and name), source.xml location and the version of the BSP.
Comments start with a number sign (#) and continue until the end of the line. Each line is a name-value pair, using the keys given earlier. Here's an example:
####################################### name Freescale Sandpoint version 1.0.1 bsp_shortname freescale-sandpoint dst_dir sandpoint_1.0.1/package base QNX Momentics 6.3.0 SP1 src_root sandpoint_1.0.1/source img_root sandpoint_1.0.1/images doc_root sandpoint_1.0.1/docs prebuilt_root sandpoint_1.0.1/prebuilt relnote sandpoint_1.0.1/freescale-sandpoint_rel.html srcshiplist sandpoint_1.0.1/srcshiplist docshiplist sandpoint_1.0.1/docshiplist imgshiplist sandpoint_1.0.1/imgshiplist prebuiltshiplist sandpoint_1.0.1/prebuiltshiplist srcxml_file sandpoint_1.0.1/source.xml license sandpoint_1.0.0/license.txt #####################################
The IDE uses the source.xml to build and display information about a BSP. Here's an example for the Freescale Sandpoint board:
<!-- Unless otherwise specified, values/attributes are free-form strings --> <!-- type is currently either BSP or SourceOnly --> <sourcePackage type="BSP" id="bsp-freescale-sandpoint"> <title>Freescale Sandpoint</title> <release>1.0.1</release> <description>This package contains the source and build files for targeting QNX Neutrino on the Freescale Sandpoint reference board. This includes support for the MPC750, MPC755, MPC7400, MPC7410, MPC7450, MPC7447A, MPC7455, MPC8240, and MPC8245.</description> <vendor>QNX Software Systems</vendor> <qnxTargetVersion>6.3.0SP1</qnxTargetVersion> <qnxTargetCPU variant="ppcbe">PowerPC</qnxTargetCPU> <!-- type is currently only import, will be extended in the future. --> <bsp type="import"> <import id="sandpoint-flash">images/sandpoint-flash.build</import> <import id="sandpoint">src/hardware/startup/boards/sandpoint/build</import> <imageCombine iplEnable="true" iplFileName="ipl-sandpoint" iplPadSize="0x2000" finalEnable="true" finalFormat="srec" /> </bsp> </sourcePackage>
The packagebsp script produces one of the following zip files:
where bsp_shortname and version are the values you provided to the packagebsp script, and date is the current date, in the form yyyymmdd. For example, if you used the configuration file given earlier to package the binaries and source for the Freescale Sandpoint BSP on March 26, 2006, the filename would be freescale-sandpoint-1.0.1-20060326binsrc.zip.
If you include the source and all the optional parts, the zip file includes the following:
File or directory | Description |
---|---|
images/ | All buildfiles and the Makefile |
install/ | An empty directory where make installs the binaries that it builds from the source code |
prebuilt/ | Prebuilt binaries, libraries, and headers |
src/ | Source code |
Makefile | Control file for building the source code |
source.xml | The XML file that the IDE uses |
docs/usr/help/product/bsp_BSP_name/ | Documentation to be copied to $QNX_TARGET/usr/help/product |
BSP_name_rel.html | Release notes |
license.txt | The license for the BSP |
Working with a BSP and Packaging a Board Support Package chapters of Building Embedded Systems
QNX BSP Documentation Templates
![]() |
![]() |
![]() |
![]() |