Debugging an embedded system

When you're developing embedded systems under some operating systems, you often need to use a hardware debugger, a physical device that connects to target hardware via a JTAG (Joint Test Action Group) interface. This is necessary for development of drivers, and possibly user applications, because they're linked into the same memory space as the kernel. If a driver or application crashes, the kernel and system may crash as a result. This makes using software debuggers difficult, because they depend on a running system.

Debugging target systems with QNX Neutrino is different because its architecture is significantly different from other embeddable realtime operating systems:

Under QNX Neutrino, you typically use:

In other words, you rarely have to use a JTAG hardware debugger, especially if you're using one of our board support packages.