The GNU PIC Programmer and In-Circuit Debugger
Sylvain Giroudon, June 2003
GPICD is an open-source programmer and in-circuit debugger (ICD) for
the Microchip PIC microcontroller family. This tool with a
parallel-port based ICSP programming interface.
GPICD is composed of the following elements:
GPICD supports the PIC16F(x)xx microcontroller familly.
- The Hardware Interface : a simple
programming+ICD interface you connect to the parallel port of your
computer. You can use the native GPICD interface proposed in this
manual, or any other parallel-port based ICSP interface such as the one
described by Microchip in the application note AN589.
- The CLI (Command Line Interpreter)
allows to read and write the program and EEPROM memories of
the target PIC by simply invoking a
command from the OS shell. An interactive
usage is also possible with this tool.
- The GUI (Graphical User Interface) is a
cool debugging graphical environment with source
watch, breakpoints, etc. You can also configure the hardware interface
from this GUI.
The hardware interface is addressed by the software tools through the "ppdev" device driver that comes
with any Linux distributions. Thus, it should work with any parallel
port interfaces supported by the Linux kernel.
-1- The first instruction of a debugged program must be a NOP (program
memory address 0).
-2- In order for the ICD monitor to work properly, the debugged program
should not use the registers at addresses 0x70 to 0x76. However, it is
permitted to use these register locations from an interrupt routine.
-3- Only one breakpoint can be set at a time.
-4- It is not permitted to put a breakpoint within an interrupt routine.
-5- Halting the program within an interrupt routine leads to a chaotic
Sylvain Giroudon 2003
$Revision: 1.8 $
$Date: 2004/12/08 10:04:33 $