User`s guide

What is MPLAB
®
IDE?
© 2006 Microchip Technology Inc. DS51519B-page 17
1.5 TARGET DEBUGGING
In a development environment, the execution of the code is tested on a debugger. The
debugger can be a software program that simulates the operation of the microcontroller
for testing, or it can be special instrumentation to analyze the program as it executes in
the application.
Simulators are built into MPLAB IDE so a program can be tested without any additional
hardware. A simulator is a software debugger, and the debugger functions for the sim-
ulator are almost identical to the hardware debuggers, allowing a new tool to be learned
with ease. Usually a simulator runs somewhat slower than an actual microcontroller,
since the CPU in the PC is being used to simulate the operations of the microcontroller.
In the case of MPLAB IDE, there are many simulators for each of the PICmicro MCU
and the dsPIC DSC processors.
There are two types of hardware that can be used with MPLAB IDE: programmers and
hardware debuggers. A programmer simply transfers the machine code from the PC
into the internal memory of the target microcontroller. The microcontroller can then be
plugged into the application and, hopefully, it will run as designed.
Usually, however, the code does not function exactly as anticipated, and the engineer
is tasked with reviewing the code and its operation in the application to determine how
to modify the original source code to make it execute as desired. This process is called
debugging. As noted previously, the simulator can be used to test how the code will
operate, but once a microcontroller is programmed with the firmware, many things out-
side the scope of the simulator come into play. Using just a programmer, the code could
be changed, reprogrammed into the microcontroller and plugged into the target for
retest, but this could be a long, laborious cycle if the code is complex, and it is difficult
to understand exactly what is going wrong in the hardware.
This is where a hardware debugger is useful. Hardware debuggers can be in-circuit
emulators, which use specialized hardware in place of the actual target microcontroller,
or they can be in-circuit debuggers, which use microcontrollers that have special
built-in debugging features. A hardware debugger, like a simulator, allows the engineer
to inspect variables at various points in the code, and single step to follow instructions
as the hardware interacts with its specialized circuitry.
Debugging usually becomes urgent near the end of the projected design cycle. As
deadlines loom, getting the application to function as originally designed is the last step
before going into deployment of the product, and often has the most influence on pro-
ducing delays in getting a product out. That's where an integrated development envi-
ronment is most important. Doing fine “tweaks” to the code, recompiling, downloading
and testing all require time. Using all tools within a single environment will reduce the
time around the “cycle.” These last steps, where critical bugs are worked out, are a test
for the embedded systems designer. The right tool can save time. With MPLAB IDE
many tools can be selected, but they all will have a similar interface, and the learning
curve from simulator to low-cost in-circuit debugger to powerful in-circuit emulator is
small.