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:
-
Select ,
or simply click the New button () to the right of the launch bar.
-
Expand QNX System Builder, then select QNX System Builder Project and click
Next.
-
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.
-
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.
-
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:
-
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.
-
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.
-
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.
- Staging
- 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.
CAUTION:
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:
- Offset
- 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.
- Size
- 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.
- Format
- 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.