4.1   Introduction

The project facility is a key element of the Tornado development environment. It provides graphical and automated mechanisms for creating applications that can be downloaded to VxWorks, for configuring VxWorks with selected features, and for creating applications that can be linked with a VxWorks image and started when the target system boots. The project facility provides mechanisms for:


*

NOTE: For a tutorial introduction to the project facility and its use with the integrated version of the VxWorks target simulator and other Tornado tools, see the Tornado Getting Started Guide.


*

WARNING: Use of the project facility for configuring and building applications is largely independent of the methods used prior to Tornado 2.0 (which included manually editing the configuration files config.h or configAll.h). The project facility provides the recommended and simpler means for configuration and building, although the manual method may still be used (see VxWorks Programmer's Guide: Configuration and Build).

To avoid confusion and errors, the two methods should not be used together for the same project. The one exception is for any configuration macro that is not accessible through the project facility GUI (which may be the case, for example, for some BSP driver parameters). You can use a Find Object dialog box to determine if a macro is accessible or not (see Finding VxWorks Components and Configuration Macros). If it is not accessible through the GUI, a configuration file must be edited, and the project facility will implement the change in the subsequent build.

The order of precedence for determining configuration is (in descending order):

        project facility
        config.h
        configAll.h

For any macro that is exposed through the project facility GUI, changes made after creation of a project in either of the configuration files will not appear in the project.

Terminology

There are several key terms that you must understand before you can use the project facility effectively:

Downloadable application
A downloadable application consists of one or more relocateable object modules,1 which can be downloaded and dynamically linked to VxWorks, and then started from the shell or debugger. A novel aspect of the Tornado development environment is the dynamic loader, which allows objects to be loaded onto a running system. This provides much faster debug cycles compared with having to rebuild and re-link the entire operating system. A downloadable application can consist of a single file containing a simple "hello world" routine, or a complex application consisting of many files and modules that are partially linked as a single object (which is created automatically by the project facility as projectName.out).

Bootable application
A bootable application consists of an application linked to a VxWorks image. The VxWorks image can be configured by including and excluding components of the operating system, as well as by resetting operating system parameters. A bootable application starts when the target is booted.

Project
A project consists of the source code files, build settings, and binaries that are used to create a downloadable application, a custom VxWorks image, or a bootable application. The project facility provides a simple means of defining, modifying, and maintaining a variety of build options for each project. Each project requires its own directory.

When you first create a project, you define it as either a downloadable application or a bootable application. In this context, custom-configured VxWorks images that are not linked to application code can be considered bootable applications.

Workspace
A workspace is a logical and graphical "container" for one or more projects. It provides you with a useful means for working with related material, such as associating the downloadable application modules, VxWorks images, and bootable applications that are developed for a given product; or sharing projects amongst different developers and products; and so on.

Component
A component is a VxWorks facility that can be built into, or excluded from, a custom version of VxWorks or a bootable application. Many components have parameters that can be reset to suit the needs of an application. For example, various file system components can be included in, or excluded from, VxWorks; and they each include a parameter that defines the maximum number of open files.

Toolchain
A toolchain is a set of cross-development tools used to build applications for a specific target processor. The toolchains provided with Tornado are based on the GNU preprocessor, compiler, assembler, and linker (see the GNU Toolkit User's Guide). However, many third-party toolchains are also available. The tool options are exposed to the user through various elements of the project facility GUI.

BSP
A Board Support Package (BSP) consists primarily of the hardware-specific VxWorks code for a particular target board. A BSP includes facilities for hardware initialization, interrupt handling and generation, hardware clock and timer management, mapping of local and bus memory space, and so on. BSPs also include project files that facilitate creation of projects for bootable applications and custom VxWorks images.2

Project Facility GUI

The main components of the project facility GUI are:

  • A project selection window, which allows you to begin creation of a new project, or open an existing project.

  • An application wizard that guides you through creation of a new project.

  • A workspace window, which provides you with a view of projects, and the files, VxWorks components, and build options that make them up. The workspace window also provides access to commands for adding and deleting project files, creating new projects, configuring VxWorks components, defining builds, downloading object files, and so on.

  • A build toolbar, which provides access to all the major build commands.

As its name implies, the Workspace window provides the framework for the project facility. The window displays information about projects files, VxWorks components (if any), and build options in three tabbed views: Files, VxWorks, and Builds (Figure 4-1).

The workspace allows you to:

  • Display information about the files, VxWorks components, and build options that make up a project, or set of projects.

  • Add, open for editing, compile, and delete source code files.

  • Download applications to the target.

  • Scale and customize VxWorks by adding and deleting components, as well as display component dependencies and view object sizes.

  • Specify and modify one or more builds for a project, display detailed build information, and modify build options.

  • Add, delete, rename, or build a project.

A context-sensitive menu is available in each of the workspace views. A right-mouse click displays the menu. The first section of the menu provides commands relevant to the GUI object you have selected. The second section displays commands relevant to the current page of the window. And the third section displays global commands that are relevant to the entire workspace (Figure 4-2).

Many of the context menu options are also available under the File, Project, and Build menus.

Tornado will use your default editor. For information about using an alternate editor, integrating configuration management tools (such as ClearCase) with the project facility, and other customization options, see 8. Customization.


1:  The text and data sections of a relocateable object module are in transitory form. Because of the nature of a cross-development environment, some addresses cannot be known at time of compilation. These sections are modified (relocated or linked) by the Tornado object-module loader when it inserts the modules into the target system.

2:  Beginning with the 2.0 release of Tornado.