Flyswatter2 PIC32MX How To
Connecting the Flyswatter2 and the Olimex Development Board
To hook up the Flyswatter2 and the PIC-P32MX board, you will need:
- Olimex PIC-32MX development board
- 20-pin ARM to 14-pin MIPS JTAG Adapter Board
- 9V DC Power Adapter
- 14-pin JTAG Ribbon Cable
- RS-232 Serial Cable with one male, one female connector
- USB Male A/Male B cable
Connect the MIPS JTAG Adapter Board to the Flyswatter2.
Connect the 14-pin ribbon cable to the Adapter Board.
Connect the JTAG cable to the PIC-P32MX.
Connect the RS232 Serial Cable.
Connect the USB cable to the Flyswatter2.
Plug the 9V power adapter into a wall outlet.
Plug the power adapter into the PIC-P32MX.
Connect the USB cable to your PC.
You should see a green LED light up on the Flyswatter2.
OpenOCD (Open On-Chip Debugger) is open-source software that interfaces with the Flyswatter2. OpenOCD provides debugging and in-system programming for embedded target devices. You will need to compile OpenOCD from source, and patch the source with one of the OpenOCD Patches for Flyswatter 2 support.
Whichever guide you use, be sure to install the patch! Both guides include instructions on downloading and installing the patch.
Compiling OpenOCD Linux - This set of instructions uses libFTDI, an open-source driver library for FTDI devices.
Now you are ready to run OpenOCD. If you installed the OpenOCD Ubuntu package, open a terminal window and type the following from any directory:
openocd -f interface/flyswatter2.cfg -f board/olimex_pic32mx.cfg
If you compiled OpenOCD yourself, navigate to the openocd-bin directory you created in the compile guide and type:
cd ~/openocd-bin sudo ./openocd -f interface/flyswatter2.cfg -f board/olimex_pic32mx.cfg
For general information on running OpenOCD, see Running OpenOCD on Linux. When you start OpenOCD, you should see this:
You cannot enter commands directly to OpenOCD. Open a new terminal window and type:
telnet localhost 4444
You will should see this prompt:
You can give commands to OpenOCD through this prompt.
Common OpenOCD Commands
To see a full list of OpenOCD commands, enter help in the telnet window.
Resets the PIC-P32MX. The output of the Reset command should look like this:
Sends a halt request to the PIC-P32MX. If the PIC-P32MX halts, you will see text output in the telnet window. (If the PIC-P32MX is already halted, you will see no output.)
You can also use halt followed by a time in milliseconds. OpenOCD waits for the target to halt the specified amount of time, then gives up if the target has not halted. You can use this to avoid OpenOCD hanging because the PIC-P32MX fails to halt. For example, to send a halt command with a timeout of one second, type:
Enter resume to end a halt. You will not see any text output in the telnet window.
Displays a numbered list of all of the PIC-P32MX's registers.
Run reg with a register number to display the contents of a register, in hexadecimal. The register number corresponds to the output of the reg command with no arguments, above. You must run the halt command before reading registers.
If you run reg while the PIC-P32MX is not halted, you will still see the value stored in the register. However, registers change contents very quickly while the device is running; by the time you see the value, the value actually in the register may be different. If you try to run reg while the device is not halted, you will see this:
Note that unlike with some other boards, OpenOCD provides no warning that the device is not halted. Be careful.
reg [entry] [value]
Sets the value of a register. The register number corresponds to the output of the reg command with no arguments, above. Make sure the PIC-P32MX is halted (with the halt command) before you change the value of a register!
You can enter registry values in either decimal, by typing a number by itself, or in hexadecimal, by prefacing the value with 0x.
GDB, the GNU Project Debugger is a debugging tool provided with the GNU Compiler Collection (GCC). GDB allows you to stop and start a running program, examine its functioning, and make changes. GDB is installed on Ubuntu 10.04 by default, but you will need a different version of GDB build for embedded targets. Follow the instructions on the GDB Debugger page below.
The GDB debugger page will walk you through installing GDB for use with OpenOCD, and loading and testing a simple program.