Structure and contents of a QNX SDP 6.6 BSP

BSPs can be extracted to, and built from, any directory. You can do this with the QNX Momentics IDE or with the command line.

BSPs and the QNX SDP 6.6 host installation

QNX BSPs are packaged to operate independently of the host and target environments of a standard QNX SDP 6.6 installation. BSPs can be extracted to, and built from, any directory.

When the BSP attempts to build a target image (for example, if your IFS build file includes a component that is not contained within the BSP itself) the BSP may scan QNX SDP's /target directory for binaries or libraries, but it won't overwrite anything in your QNX SDP 6.6 installation's /host or /target directories. Any binaries, libraries, or images that were generated when the BSP was built will remain in the BSP directory from which where they were extracted.

Using the QNX Momentics IDE or the command line

You can use the QNX Momentics Integrated Development Environment (IDE), or the command line, to work with QNX BSPs. The procedures for importing, extracting, building, and modifying QNX BSPs using either method are documented in the Building Embedded Systems guide. For instructions on how to use the IDE to work with your BSP, see "Using BSPs in the IDE". For instructions on how to use the command line to work with your BSP, "Using BSPs on the command line".

Note: If you are working with the IDE and modify your BSP, you will still need to use the command line to build the BSP.

Location of the BSP contents

If you used the QNX Momentics IDE to extract the BSP contents, these contents will be found in the location you specified when importing the BSP. By default, it will be in a sub-directory within the ide- 5.0-workspace directory of your host environment. If you manually extracted the BSP, using the command-line unzip utility, the BSP contents will be in the directory where you extracted the BSP archive.

Whether you use the IDE or the command line, the stucture and contents of the BSP are the same. Typically, extracting a BSP's .zip archive creates the following directories:
  • /src
  • /prebuilt
  • /install
  • /images

/src

The /src directory contains all source code that ships with the BSP. Source code is organised into sub-directories, such as /hardware, /lib, /utils, etc. When the BSP is built, all the source code within the BSP (including the source code in these sub-directories) is built.

/prebuilt

The BSP archive is provided with all of the BSP components prebuilt and stored in the /prebuilt directory. If you build the BSP, the contents of the /prebuilt directory are copied to the BSP's /install directory.

/install

The /install directory is empty until the BSP is built. When the BSP is built, the entire contents of the /prebuilt directory are copied into the /install directory. When the IFS image is being generated, the/install directory is the first location scanned for components that are specified in the BSP's build file. If the IFS generation process doesn't find a component in the/install directory, it scans the QNX SDP 6.6 host's /target directory for the component.

Note: If you want to modify BSP components by changing or building any of the BSP source code, you must use the make install command when building the relevant source code. This command will cause your modified components to be copied into the BSP's /install directory, overwriting the prebuilt versions that were supplied with the BSP.

/images

The/images is the location of:

The table below shows the default locations of common BSP components. ${BSP_ROOT_DIR} is the name of the directory where you extracted the BSP archive. ${CPU_VARIANT} is the specific CPU architecture that this BSP is targeted for. For SDP 6.6, the supported CPU variants are armle-v7 and x86.

File Location
Prebuilt OS image ${BSP_ROOT_DIR}/images
IPL and/or startup binaries ${BSP_ROOT_DIR}/install/${CPU_VARIANT}/boot/sys
Source code for device drivers, libraries, and utilities

${BSP_ROOT_DIR}/src/hardware/…

${BSP_ROOT_DIR}/src/lib/…

${BSP_ROOT_DIR}/src/utils/…

Prebuilt libraries

${BSP_ROOT_DIR}/prebuilt/${CPU_VARIANT}/lib/dll}

${BSP_ROOT_DIR}/prebuilt/${CPU_VARIANT}/usr/lib}

Prebuilt binaries

${BSP_ROOT_DIR}/prebuilt/${CPU_VARIANT}/sbin

${BSP_ROOT_DIR}/prebuilt/${CPU_VARIANT}/bin

${BSP_ROOT_DIR}/prebuilt/${CPU_VARIANT}/usr/bin

Generic header files (not architecture- specific) ${BSP_ROOT_DIR}/install/usr/include

About the prebuilt boot image

After you have extracted the BSP (but before you've built it), you will find a prebuilt QNX IFS image in the BSP's /images directory. This prebuilt IFS image is provided as a convenience. It allows you to quickly verify the operation of the QNX OS on your target board, by simply transferring the prebuilt image directly to your target, skipping the step of building the BSP.

Note: When you actually build the BSP, this prebuilt image will be overwritten by a new IFS that gets generated as part of the BSP build process. You may, therefore, want to make a copy of the prebuilt image for future reference. If you forget to make a copy of the prebuilt image, you can still recover it, by simply extracting the BSP from the original .zip archive into a new directory.