Creating a QNX System Builder project

To build an OS image, you need to define a QNX System Builder project. The IDE provides a wizard to set up this project based on your buildfile preferences.

To create a new QNX System Builder project:
  1. Select File > New > Project..., or simply click the New button (Icon: New button) to the right of the launch bar.
  2. Expand QNX System Builder, then select QNX System Builder Project and click Next.
  3. Type a name in the Project name field.

    Note: The project name must not contain any spaces or non-standard characters. The make utility (which is used for building) doesn't like directory and file names with such characters. Although the IDE might accept them, the build won't work.

    In the same dialog, you can also override the project storage location and specify the working sets that you want the project to belong to. When you're finished filling in the fields, click Next.

  4. In the Build File Initialization dialog, choose from the following options:
    Create a new buildfile
    To create a simple buildfile, select your target platform from the dropdown list.
    Import from a BSP project
    To use an existing BSP project buildfile, select the buildfile from the dropdown list.
    Copy an existing buildfile
    Click Browse… to locate an existing buildfile. Refer to your BSP User's Guide to learn the name and .build file path for your board.
    Note: Creating a buildfile requires a working knowledge of boot script grammar, as described in the mkifs utility reference and the Building Embedded Systems guide.
  5. Click Next if you want to customize the buildfile; the following section discusses customization options. Otherwise, click Finish to create the project. In the latter case, the IDE displays a new listing for the project and opens the buildfile for editing.

Creating a generic buildfile

If you chose to customize the buildfile, you can use the wizard's Build File Template dialog to create a generic minimal buildfile:
  1. In the Boot file dropdown in the Generic build file panel (which is at the bottom of the window), select the format of the bootstrap file.

    This file calls the startup script, which sets up the environment and transfers control to procnto, which is the QNX Neutrino microkernel and process manager. To learn how image components work together during startup, see The boot process in Building Embedded Systems.

    The format affects the virtual attribute of the .bootstrap entry found near the top of the buildfile.

  2. In the Startup dropdown, select the type of startup script.

    This setting determines the name of the startup script and thus, the .bootstrap file contents.

  3. Click Next if you want to create a combined image; this step is explained in the next section. Otherwise, click Finish to create the project and open its buildfile for editing.

Creating a combined image

You can create combined images by joining together several components—an Initial Program Loader (IPL), an OS image, and one or more flash images—into a single system image. For example, you can combine an IPL with an OS image and download the resulting image to the target board through Uboot.

The wizard's Image Combination Details dialog lets you control how images are combined with your QNX System Builder project. Under the Build Image panel, you can fill in the following fields:
Image name
The image name. By default, the IDE uses the same name assigned to the project.
The location where the IDE looks for files that go into the image. You can enter a filesystem location or click Browse... to browse available BSPs for a staging directory.
If you check the Combine image with IPL box, the IDE enables the following fields:
IPL file
The fully qualified name of an IPL file that you want to prepend to (i.e., concatenate at the front of) an IFS. You can enter a filename or browse available BSPs for an IPL file.
Pad IPL to
A dropdown list that lets you choose the amount of padding required for the IPL file that you want to prepend. Select a value equal to or greater than the size of the IPL. The IPL and the padding provide the start of the IFS.
If the padding is less than the IPL size, the image won't contain the complete IPL.
If you want to burn the image into ROM at a given memory location, check Create ROM image. The IDE enables the following fields:
A board-specific offset, in hexadecimal, that indicates the distance from the beginning of the image to where the IFS starts. You typically use this setting for S-Record images.
A numeric value for the ROM size. To determine the amount of ROM you need, compile the code to create a HEX file version of it; this file's size is the amount of ROM needed.
A dropdown list of image formats. If you want to download an image to the target, the resulting ROM image will be copied to the format you choose.

When you're finished filling in these fields, click Next if you want to add project references; this step is explained in the next section. Otherwise, click Finish.

Adding project references

The wizard's Project References dialog lets you add project references to your QNX System Builder project. Simply check the boxes for any existing projects on which your new project depends, then click Finish.

What happens when you click Finish

When you click Finish in the QNX System Builder Project wizard, the IDE:
  • Creates the project (including the necessary buildfile and makefile) and makes it visible in the Project Explorer.
  • Adds an entry for the project in the Launch Configuration dropdown in the launch bar.
  • Opens the buildfile in the editor pane.