How to Get Help

The first place to look for help is in our documentation, but if you still have problems, there are several other avenues of help.

Overview of the documentation

In the QNX Software Development Platform, the online documents are in HTML, which you can access in the IDE's help system. On self-hosted QNX Neutrino systems, you can also look at the documentation in the Photon helpviewer. You can download PDF versions of the documentation from our website, http://www.qnx.com.

The complete QNX SDP documentation set contains the following books, arranged here under each main component:

QNX Software Development Platform

Aside from the Welcome to the QNX Software Development Platform guide, this bookset includes:

10 Steps to Developing a QNX Program: Quickstart Guide
A tutorial that helps you install QNX Momentics on a host machine, install the QNX Neutrino RTOS on a target machine, set up communications between the two systems, and then use the IDE to develop a program on the host machine and run it on the target.
Installation Guide
Instructions for installing and uninstalling QNX SDP.
Release Notes
Important details about QNX SDP. For the most up-to-date version of these notes, go to our website, http://www.qnx.com.

QNX Momentics Tool Suite

Utilities Reference
Describes the Neutrino configuration files, utilities, and manager processes you'll use during development and at runtime.
IDE User's Guide
Describes the QNX Momentics Integrated Development Environment, how to set up and start using the tools to build Neutrino-based target systems, etc.
Phindows Connectivity
Tells you how to access Photon from a Windows machine.

QNX Neutrino Realtime Operating System

System Architecture
Describes the concepts and architecture of the QNX Neutrino microkernel, resource managers, processes, threads, message-passing services, and more.
QNX Neutrino User's Guide
Explains how to interact with a running Neutrino system. Covers both Photon and text-mode interfaces, as well as various system-administration topics.
Getting Started with QNX Neutrino: A Guide for Realtime Programmers
This book, by Rob Krten, will help you design and develop robust realtime systems — from tiny embedded control applications to large network-distributed systems — using the QNX Neutrino RTOS.
QNX Neutrino Programmer's Guide
Tells you how to get started writing programs, including interrupt handlers, etc.
Building Embedded Systems
Tells you how to get the OS running on your target embedded system, write an IPL, customize a startup program, etc.
Utilities Reference
Describes the Neutrino configuration files, utilities, and manager processes you'll use during development and at runtime.
QNX Neutrino Library Reference
Describes the C library data types and functions, including POSIX threads, kernel calls, resource manager functions, etc.
Writing a Resource Manager
Describes how to write a program that registers a name in the filesystem name space, which other processes then use to communicate with the resource manager. A resource manager is frequently (but not always) a device driver.
The QNX Neutrino Cookbook: Recipes for Programmers
This book, by Rob Krten and updated by QNX Software Systems, provides small, well defined pieces of code that you can modify and incorporate in your system.
Audio Developer's Guide
Describes how to write audio applications.
Addon Interfaces Library Reference
Describes the Addon Interfaces Library and how to use it to add extendability to applications that use standard interfaces.
Adaptive Partitioning User's Guide
Describes how to divide system resources (e.g. processor time) in a flexible way between competing processes.
Core Networking User's Guide
Describes the QNX Neutrino Core Networking stack and its manager, io-pkt.
High Availability Framework Developer's Guide
Describes how to use the High Availability Manager (HAM) to detect, isolate, and recover from software faults.
Instant Device Activation User's Guide
Describes how to start devices quickly when the system boots.
Multicore Processing User's Guide
Describes how to get the most performance possible out of a multicore system.
Persistent Publish/Subscribe Developer's Guide
Information about the Persistent Publish/Subscribe (PPS) system, a resource manager that makes it easy to disseminate information to interested processes.
System Analysis Toolkit User's Guide
Describes how to use the SAT with our instrumented microkernel. You can log every communication and state change within the microkernel, including interrupts, all parameters/return values from kernel calls, and scheduling decisions, resulting in a deeper and more detailed analysis of system elements. You can even perform kernel-level diagnostics remotely.
BSP guides
Describe how to get Neutrino running on your target board. We support boards in these processor families: ARM/XScale, MIPS, PowerPC, SH-4, and x86. You can download BSPs from our Foundry27 website, http://community.qnx.com
Driver Development Kit guides
Describe how to write drivers for QNX Neutrino. You'll find a separate DDK guide for audio, character, graphics, input, and Universal Serial Bus (USB) devices. You can download the DDKs from our website, but the QNX Software Development Platform includes the documentation.
Technical Notes
Deals with a series of topics (e.g. IP tunneling) that aren't covered in the basic documentation set.

Photon microGUI

Photon Programmer's Guide
Gives you a hands-on tour of the Photon Application Builder (PhAB). You'll learn how to quickly assemble a GUI from predefined widgets, link the GUI to an application, and generate C source to bring the GUI to life.
Photon Library Reference
Provides concise descriptions of Photon's and PhAB's global data structures and functions.
Widget Reference
Contains guidelines for programming widgets, along with concise descriptions of all global data structures, resources, and convenience functions associated with widgets. It also gives you practical examples of how to use Photon widgets and widget functions.
Building Custom Widgets
Explains how to create a custom widget and how to bind it into PhAB. If you need a widget whose features extend the standard capabilities of the Photon widget library, this guide is for you.
Photon Multilingual Input
Tells you how to input Chinese, Japanese, and Korean characters in Photon.

Advanced Graphics

Advanced Graphics Developer's Guide
Describes how to create graphical applications that use the QNX Graphics Framework API and the OpenGL ES APIs.
Composition Manager Developer's Guide
Describes how to use the QNX Composition Manager, a hardware-independent layer of abstraction that encompasses all aspects of window management, such as window creation, realization, and destruction.
Web Browser Engine Developer's Guide
Describes how to build a web browser using the Web Browser Engine, a high-performance embeddable web browser that's based on the WebKit open-source engine.

Dinkum C and C++

Dinkum C++ Library
A conforming implementation of the Standard C++ library.
Dinkum C99 Library
A conforming implementation of the Standard C library, as revised in 1999.
Dinkum EC++ Library
A conforming implementation of the Embedded C++ library as specified by the Embedded C++ Technical Committee.

Viewing the documentation

Within the IDE

Click Help-->Help Contents. There you'll find several booksets listed, including A Roadmap to the QNX Software Development Platform. The other documents listed, such as the Workbench User Guide and JDT Plug-in Developer Guide, pertain to the Eclipse platform and its various plugins.


IDE help menu


Getting help in the IDE.

Note that the IDE's internal help system has a builtin search facility. For details, see Using the QNX Help system in the Getting Started chapter of the IDE User's Guide.

The Photon Helpviewer

If you're using Neutrino self-hosted, you can access the documentation via our native Helpviewer.


helpviewer


Photon Helpviewer.

To open the Helpviewer, click the Help button in the Applications group on the shelf or select Help from the right-click menu on the desktop.

For more information, see Getting help with the Helpviewer in the Using the Photon microGUI chapter of the Neutrino User's Guide, as well as the entry for helpviewer in the Utilities Reference.

Keyword indexes

Nearly every book in the QNX documentation set has its own keyword index. At the top and bottom of the online documents, you'll find a link to the keyword index file (keywords-all.html).

Here's a quick way to get to the keyword-index files of the online documents:

What should I read first?

Many people simply don't read manuals cover to cover. They often browse or search the documentation for a specific topic, usually for information on how to do a certain task. But if you want to approach your tasks with enough knowledge to work effectively, it's a good idea to start with the System Architecture guide; it will help you understand Neutrino's unique features, particularly its message-based interprocess communication (IPC) and microkernel architecture.

Once you know how Neutrino works, you'll then want to know how to work with it; our 10 Steps to Developing a QNX Program: Quickstart Guide is a short tutorial that will get you started in a matter of minutes. Which document you'll need next depends on when you need it.

During development (on your host)

Most of the documents in the bookset are geared towards developing your Neutrino-based applications. Of these development books, some are how-to guides, and some are reference works.


Note: Some books are useful during development as well as at runtime. For instance, the Utilities Reference is a comprehensive document that includes descriptions of both development utilities (e.g. make), which you wouldn't normally use on your target, as well as runtime programs (e.g. devc-sersci), which you would run only on your target.

Here are the main how-to guides and their corresponding reference books:

How-to guide: Companion reference:
IDE User's Guide Utilities Reference (for underlying command-line utilities, such as make); QNX Neutrino Library Reference for API
QNX Neutrino User's Guide Utilities Reference
QNX Neutrino Programmer's Guide QNX Neutrino Library Reference
Getting Started with QNX Neutrino: A Guide for Realtime Programmers QNX Neutrino Library Reference
Photon Programmer's Guide Photon Library Reference; Photon Widget Reference
Building Embedded Systems Utilities Reference; QNX Neutrino Library Reference
Writing a Resource Manager QNX Neutrino Library Reference
The QNX Neutrino Cookbook: Recipes for Programmers QNX Neutrino Library Reference

At runtime (on your target)

The most runtime-oriented document in your bookset is the QNX Neutrino User's Guide, which describes how to use and interact with a running Neutrino system. The book covers both Photon and text-mode interfaces, as well as various system-administration topics.

Other runtime-oriented documents include the Utilities Reference and the IDE User's Guide (for information on diagnostic tools you'd use on a running system).

Where key features are documented

The following list may help you learn which document to look in when you want information on certain key features or components of the OS and tools.


Note: See the System Architecture guide for information on almost every topic in this list.

Adaptive partitioning
Adaptive Partitioning User's Guide
Asymmetric multiprocessing (AMP)
Multicore Processing in the System Architecture guide
Audio support
Audio Developer's Guide (for writing audio applications); Audio DDK (for writing audio device drivers); io-audio manager and the deva-* drivers in the Utilities Reference.
Bound multiprocessing (BMP)
Multicore Processing in the System Architecture guide; the Multicore Processing User's Guide; procnto* in the Utilities Reference.
BSPs
See our Foundry27 website, http://community.qnx.com
Buildfiles
Making an OS Image in Building Embedded Systems; mkifs in the Utilities Reference.
CD-ROM
Working with Filesystems in the QNX Neutrino User's Guide; cam-cdrom.so in the Utilities Reference.
Channels
Channel*, Msg*, and Connect* functions in the QNX Neutrino Library Reference; Message Passing in Getting Started with QNX Neutrino: A Guide for Realtime Programmers; Writing a Resource Manager.
Compiling
10 Steps to Developing a QNX Program: Quickstart Guide; Developing C/C++ Programs in the IDE User's Guide; Compiling and Debugging in the QNX Neutrino Programmer's Guide; make and qcc in the Utilities Reference.
Compression
Making an OS Image in Building Embedded Systems; deflate in the Utilities Reference.
CPU time, sharing among competing processes
Adaptive Partitioning User's Guide
Data server
Setting Up an Embedded Web Server in the QNX Neutrino User's Guide; ds in the Utilities Reference.
DDKs
Driver Development Kits (DDKs). The QNX Software Development Platform includes the documentation, but if you want the DDKs, you must download them from our website.
Debugger
10 Steps to Developing a QNX Program: Quickstart Guide; Debugging Programs in the IDE User's Guide; Compiling and Debugging in the QNX Neutrino Programmer's Guide; gdb and other debugging utilities in the Utilities Reference.
Device management
devctl() in the QNX Neutrino Library Reference; Resource Managers in Getting Started with QNX Neutrino: A Guide for Realtime Programmers; Writing a Resource Manager; dev* drivers in the Utilities Reference; Instant Device Activation User's Guide.
Editors
10 Steps to Developing a QNX Program: Quickstart Guide; IDE Concepts in the IDE User's Guide; Using Editors in the QNX Neutrino User's Guide; elvis, ped, qed, sed, and vi in the Utilities Reference.
Embedded systems
Building Embedded Systems.
Endian issues
Freedom from Hardware and Platform Dependencies in the QNX Neutrino Programmer's Guide.
Environment, configuring
Controlling How Neutrino Starts and Configuring Your Environment chapters in the QNX Neutrino User's Guide.
Environment variables
Commonly Used Environment Variables appendix in the Utilities Reference; environ() in the QNX Neutrino Library Reference; Using the Photon microGUI and Configuring Your Environment chapters in the QNX Neutrino User's Guide.
Event handling (OS)
MsgDeliverEvent() in the QNX Neutrino Library Reference; Message Passing in Getting Started with QNX Neutrino: A Guide for Realtime Programmers; Writing an Interrupt Handler in the QNX Neutrino Programmer's Guide.
Event handling (Photon)
Events in the Photon Programmer's Guide; phrelay in the Utilities Reference.
Faults, recovering from
High Availability Framework Developer's Guide.
File handling
creat() and related functions via its “See also” section in the QNX Neutrino Library Reference; basename, cat, etc. in the Utilities Reference.
Filesystems
Working with Filesystems in the QNX Neutrino User's Guide; RAM-disk Filesystem, TAR Filesystem, and Filesystems in The QNX Neutrino Cookbook.
Fonts
Fonts chapter and Photon in Embedded Systems appendix in the Photon Programmer's Guide.
Graphics
Graphics DDK; devg-* drivers in the Utilities Reference; Photon Programmer's Guide; Advanced Graphics Developer's Guide; Composition Manager Developer's Guide
Hardware
Connecting Hardware in the QNX Neutrino User's Guide.
HID (human input devices)
hidview and devh-* drivers in the Utilities Reference.
Helpviewer (Photon)
Using the Photon microGUI in the QNX Neutrino User's Guide; helpviewer in the Utilities Reference.
I/O management
iofunc*, Interrupt*, and open() and related functions via open()'s “See also” section in the QNX Neutrino Library Reference; Resource Managers in Getting Started with QNX Neutrino: A Guide for Realtime Programmers; Writing a Resource Manager.
IPC (interprocess communication)
pthread_mutex*, SyncMutex*, sem_*, SyncSem*, pthread_cond*, and SyncCondvar* in the QNX Neutrino Library Reference. See also “Message Passing,” below.
IPL (Initial Program Loader)
Writing an IPL Program in Building Embedded Systems.
Images (OS)
Making an OS Image in Building Embedded Systems; mkifs in the Utilities Reference.
Images (graphical)
Raw Drawing and Animation in the Photon Programmer's Guide.
Input
Input DDK; devh-* and devi-* drivers in the Utilities Reference.
Instrumented kernel
System Analysis Toolkit User's Guide.
Interrupt handling
InterruptAttach() and related functions in its “See also” section in the QNX Neutrino Library Reference; Interrupts in Getting Started with QNX Neutrino: A Guide for Realtime Programmers; Writing an Interrupt Handler in the QNX Neutrino Programmer's Guide.
Kernel calls
Channel*, Clock*, Connect*, Debug*, Interrupt*, Msg*, Sched*, Signal*, Sync*, Thread*, Timer*, and TraceEvent() in the QNX Neutrino Library Reference.
Keyboard support
Using the Command Line in the QNX Neutrino User's Guide; mkkbd and related utilities in its “See also” section in the Utilities Reference.
Libraries
Compiling and Debugging in the QNX Neutrino Programmer's Guide; Building OS and Flash Images in the IDE User's Guide.
Linker
Compiling and Debugging in the QNX Neutrino Programmer's Guide; qcc and related utilities in its “See also” section in the Utilities Reference.
Makefile structure
Developing C/C++ Programs in the IDE User's Guide; Conventions for Recursive Makefiles and Directories in the QNX Neutrino Programmer's Guide.
Memory management
mem*, mmap*, posix_mem*, and malloc() in the QNX Neutrino Library Reference; Heap Analysis in the QNX Neutrino Programmer's Guide; Finding Memory Errors in the IDE User's Guide.
Message passing
Msg*, Connect*, and Channel* in QNX Neutrino Library Reference. See also “IPC,” above.
Message queues
mq_* functions in the QNX Neutrino Library Reference; mqueue and mq in the Utilities Reference.
Multicore systems
Multicore Processing in the System Architecture guide; the Multicore Processing User's Guide; procnto* in the Utilities Reference.
Native networking (Qnet)
See “Transparent distributed processing,” below.
Network drivers
io-pkt*, devn-*, devnp-* drivers in the Utilities Reference; QNX Neutrino Core Networking User's Guide
Permissions (on files, directories)
Managing User Accounts and Working with Files chapters in the QNX Neutrino User's Guide; chmod(), stat(), and umask() in the QNX Neutrino Library Reference; chmod in the Utilities Reference.
Process manager
procnto* in Utilities Reference; procmgr_* in the QNX Neutrino Library Reference.
Processes
Processes and Threads in Getting Started with QNX Neutrino: A Guide for Realtime Programmers; Processes in the QNX Neutrino Programmer's Guide; The /proc Filesystem in The QNX Neutrino Cookbook; exec*, fork*, and spawn* in the QNX Neutrino Library Reference.
Profiler (application)
Profiling an Application in the IDE User's Guide.
Profiler (system)
Analyzing Your System with Kernel Tracing in the IDE User's Guide.
Pulses
MsgSendPulse(), MsgReceivePulse(), and pulse_* in the QNX Neutrino Library Reference; Message Passing in Getting Started with QNX Neutrino: A Guide for Realtime Programmers; “Handling private messages and pulses” in the Handling Other Messages chapter of Writing a Resource Manager.
QoS (Quality of Service)
Quality of Service and multiple paths in the Native Networking (Qnet) chapter in System Architecture; netmgr_ndtostr() in the QNX Neutrino Library Reference.
RAM disk
io-blk.so (using the ramdisk=size option), devb-ram, and devf-ram in the Utilities Reference.
Realtime scheduling
Sched* functions and sched_param structure in the QNX Neutrino Library Reference.
Resource management
Resource Managers in Getting Started with QNX Neutrino: A Guide for Realtime Programmers; Writing a Resource Manager; resmgr_* and iofunc_* in the QNX Neutrino Library Reference; The QNX Neutrino Cookbook
Resources, sharing among competing processes
Adaptive Partitioning User's Guide
Symmetric multiprocessing (SMP)
Multicore Processing in the System Architecture guide; the Multicore Processing User's Guide; procnto* in the Utilities Reference.
Self-hosted development
Compiling and Debugging in the QNX Neutrino Programmer's Guide.
Signal handling
sigaction() and related functions via its “See also” section in the QNX Neutrino Library Reference.
Startup programs
Customizing Image Startup Programs in Building Embedded Systems; startup-* in the Utilities Reference.
Synchronization
Sync* functions in the QNX Neutrino Library Reference.
System information
pidin in the Utilities Reference; Analyzing Your System with Kernel Tracing in the IDE User's Guide; Fine-Tuning Your System in the QNX Neutrino User's Guide; The /proc Filesystem in The QNX Neutrino Cookbook.
Target agent (qconn)
qconn in the Utilities Reference; IDE Concepts in the IDE User's Guide.
Threads
pthread_* and Thread* in the QNX Neutrino Library Reference; Processes and Threads in Getting Started with QNX Neutrino: A Guide for Realtime Programmers; Programming Overview in the QNX Neutrino Programmer's Guide.
Time
Configuring Your Environment in the QNX Neutrino User's Guide; Clock*, time(), and related functions via their “See also” sections in the QNX Neutrino Library Reference.
Timestamps (for files)
touch in the Utilities Reference; utime() and related functions via its “See also” section in the QNX Neutrino Library Reference.
Timers
alarm(), Timer*, and timer_* in the QNX Neutrino Library Reference; Clocks, Timers, and Getting a Kick Every So Often in Getting Started with QNX Neutrino: A Guide for Realtime Programmers.
Transparent distributed processing
Using Qnet for Transparent Distributed Processing in the QNX Neutrino User's Guide; Transparent Distributed Processing via Qnet in the QNX Neutrino Programmer's Guide; lsm-qnet.so in the Utilities Reference; netmgr_* in the QNX Neutrino Library Reference.
USB
Connecting Hardware in the QNX Neutrino User's Guide; devu-*, devh-usb.so, devi-hid, and io-usb in the Utilities Reference; USB DDK.
Unicode
wc*() (wide-character functions) in the QNX Neutrino Library Reference; Unicode Multilingual Support in the Photon Programmer's Guide.
Version control
Managing Source Code in the IDE User's Guide; Using CVS in the QNX Neutrino User's Guide; cvs in the Utilities Reference; Version Control with Subversion (O'Reilly & Associates).
Web browsers
Web Browser Engine Developer's Guide
Web server (slinger)
Setting Up an Embedded Web Server in the QNX Neutrino User's Guide; slinger in the Utilities Reference.
XIP (execute in place)
Building OS and Flash Images in the IDE User's Guide; Writing an IPL Program in Building Embedded Systems.

Related reading

On POSIX

The latest POSIX standards documents are available online here:

http://www.opengroup.org/onlinepubs/007904975/nframe.html

Note: For information about the many POSIX drafts and standards, see the IEEE website at http://www.ieee.org/.

In addition to the POSIX standards themselves, you might find the following books useful:

On TCP/IP


Note: Some of the advanced API features mentioned in these TCP/IP books might not be supported.

Getting quick help with the use command

Similar to the UNIX man command, Neutrino presents a simple usage message for each command-line utility. At the OS system prompt, type:

use utility_name

and you'll see a brief description as well as the command-line options for that utility.

Hover help in the IDE

When working on your projects in the IDE's editor, whenever you hover your mouse pointer over a function name in a line of code, you'll see a popup text box containing that function's purpose and synopsis (provided that it's a documented Neutrino function).

For details, see the chapter on C/C++ development in the IDE User's Guide.

Visit http://www.qnx.com

The QNX Software Systems website (http://www.qnx.com) offers help on using the QNX Software Development Platform through such facilities as:

Our Foundry27 community website (http://community.qnx.com) includes:

For general help with Eclipse, the open platform for our IDE, visit the Eclipse consortium website (http://www.eclipse.org). There you'll find valuable support in the form of newsgroups, mailing lists, articles, and more.

Support plans

You can access a wide range of support resources, depending on the particular support plan that you purchase.

For more information about our technical support offerings, including email addresses and telephone numbers, please see the Support section of our website (http://www.qnx.com).

For more information about setting up your myQNX account and registering your products and support plans, see Accessing Online Technical Support. There's a printed copy in the QNX Software Development Platform box, and a PDF version on the DVD and on our website.

Training

QNX training services offers many hands-on courses at your choice of location (QNX headquarters, various training centers around the world, or your site). For details, including the current training schedule, see the Training area in the Services section of our website (http://www.qnx.com).

Custom engineering and consulting

Depending on the nature of your particular project, you may choose to engage us to help in areas such as:

For more information, see contact your local sales representative.