Q N X ® M O M E N T I C S ® D E V E L O P M E N T S U I T E V 6 . 3
INTEGRATED DEVELOPMENT
ENVIRONMENT
USER’S GUIDE
QNX Momentics PE 6.3
IDE User’s Guide
For Windows, Linux, Solaris
, and QNX Neutrino hosts
2005, QNX Software Systems Ltd.
QNX Software Systems Ltd.
175 Terence Matthews Crescent
Kanata, Ontario
K2M 1W8
Canada
Voice: +1 613 591-0931
Fax: +1 613 591-3579
Email: info@qnx.com
Web: http://www.qnx.com/
2002 – 2005, QNX Software Systems Ltd. All rights reserved.
Publishing history
May 2004
First edition
Electronic edition published January 2005.
Technical support options
To obtain technical support for any QNX product, visit the Technical Support section in the Services area on our website
(www.qnx.com). You’ll find a wide range of support options, including our free web-based Developer Support Center.
QNX, Momentics, Neutrino, and Photon microGUI are registered trademarks of QNX Software Systems Ltd. in certain jurisdictions. All other trademarks and
trade names belong to their respective owners.
Printed in Canada.
Part Number: 002501
Contents
About This Guide xvii
Typographical conventions
xix
How to use this guide
Assumptions xxiii
Note to Windows users xxiii
xxi
1
IDE Concepts
What is an IDE?
3
1
An IDE for building embedded systems
Starting the IDE
4
Starting the IDE from the command line
3
4
Workbench
5
Workbench menus
6
Help system
7
Opening the IDE Help
Navigating the Help
Help bookmarks
Tips and tricks
9
9
9
7
7
12
10
Views
Editors
Perspectives
Views and editors
10
11
Projects and workspace
Specifying a workspace location
How the IDE looks at projects
12
13
January 31, 2005
Contents
iii
2005, QNX Software Systems Ltd.
14
14
15
15
Host and target machines
Target agent (the qconn daemon)
Launcher
Resources
Wizards
Keyboard shortcuts
Preferences
16
Version coexistence
15
15
17
Specifying which OS version to build for
Environment variables
19
18
Preparing Your Target
Host-target communications
23
21
IP communications
Serial communications
Example: Serial debugging via PPP
23
24
25
Connecting with Phindows
29
Developing C/C++ Programs
33
The C/C++ Development perspective
31
Wizards and Launch Configurations
34
2
3
Controlling your projects
35
34
Opening files
Opening projects
Filtering files
Outlines of source and executable files
35
36
37
Creating projects
Building projects
38
39
40
Build terminology
Turning off the autobuild feature
Configuring project build order
Creating personal build options
45
Running projects
40
43
44
iv
Contents
January 31, 2005
2005, QNX Software Systems Ltd.
Deleting projects
Writing code
48
47
49
48
C/C++ Editor layout
Finishing function names
Inserting code snippets
50
Adding #include directives
Hover help
Commenting-out code
Customizing the C/C++ Editor
Using other editors
53
Creating files from scratch
51
52
51
53
55
More development features
55
56
Tracking remaining work
Code synopsis
59
Checking your build
Accessing source files for functions
Opening headers
61
60
61
65
4
Managing Source Code
CVS and the IDE
67
Local history feature
Project files (.project and .cdtproject)
Core Eclipse documentation on using CVS in the IDE
68
68
68
Importing existing source code into the IDE
70
71
75
Projects within projects?
Filesystem drag-and-drop
CVS repository
Import wizard
Linked resources
76
81
81
Using container projects
82
Creating a container project
Setting up a build configuration
Editing existing configurations
82
85
86
January 31, 2005
Contents v
2005, QNX Software Systems Ltd.
Importing a BSP or other QNX source packages
90
90
93
Step 1: Use File→Import. . .
92
Step 2: Select the package
Step 3: Select the source projects
Step 4: Select a working set
Step 5: Build
Exporting projects
95
97
94
Using the Export. . . command
97
5
Debugging Programs 103
Introduction
Debugging your program 106
105
Building an executable for debugging
108
Starting your debugging session
106
Controlling your debug session
109
Using the controls
Debug launch controls
Disassembly mode
110
114
115
119
116
116
More debugging features
Inspecting variables
Using breakpoints and watchpoints
Evaluating your expressions
126
Inspecting your registers
127
Inspecting a process’s memory
Inspecting shared-library usage
Monitoring signal handling
Viewing your output
133
Debugging with GDB 134
132
128
131
6
Building OS and Flash Images 137
Introducing the QNX System Builder
139
Toolbar buttons
Binary Inspector
141
142
vi
Contents
January 31, 2005
2005, QNX Software Systems Ltd.
Boot script files
Builder projects
The scope of the Builder
143
144
144
Overview of images
145
The components of an image, in order of booting
Types of images you can create
Project layout
Overview of workflow 154
148
153
145
Creating a project for an OS image
Creating a project for a flash filesystem image
Building an OS image
Downloading an image to your target
156
157
155
155
Downloading via a serial link
Downloading via TFTP
159
Downloading using other methods
157
161
Configuring your Builder projects
Managing your images
163
Configuring image properties
Configuring project properties
162
166
171
Optimizing your system 176
Optimizing all libraries in your image
178
Optimizing a single library
Restoring a slimmed-down library
179
177
Moving files between the host and target
179
Moving files to the target
Moving files from the target to the host
180
181
7
Developing Photon Applications 183
What is PhAB?
Using PhAB 187
185
PhAB and the IDE
186
Creating a QNX Photon Appbuilder project
Closing PhAB 188
187
January 31, 2005
Contents vii