Usage: ./goodfet.pic verb [objects] ./goodfet.pic devid ./goodfet.pic read 0x$addr ./goodfet.pic dump $foo.hex [0x$start 0x$stop] [pretty] ./goodfet.pic config ./goodfet.pic reset ./goodfet.pic program $foo.hex ./goodfet.pic verify $foo.hex ./goodfet.pic write 0x$address 0x$value ./goodfet.pic write_config 0x$reg_address (or $reg_name) [$0x0000] ./goodfet.pic erase [0x$page] ./goodfet.pic six [instruction] ./goodfet.pic sixfile [$foo.txt] ./goodfet.pic regout Note: use - for stdout. Warning: only formally supports dsPIC33F/PIC24H, but read/write flash memory works with PIC24F.
To dump the device and application IDs and hardware revision number of an attached dsPIC33F/PIC24H chip, use the goodfet.pic client:
$ ./goodfet.pic devid
To read the configuration registers, with labels for recognized addresses,
$ ./goodfet.pic configN.B., should only work with PIC24H and dsPIC33F chip family. Much more documentation is needed for the programmer and is forthcoming. For now, here are some quick examples. To bulk erase program memory (this is necessary before programming),
$ ./goodfet.pic erase
Then to program the device with a code file, foo.hex,
$ ./goodfet.pic program foo.hex
To verify programming results,
$ ./goodfet.pic verify foo.hex
Please note that only addresses in given hex file are verified. A quick visual check of results might be a dump of the first few instruction words.
$ ./goodfet.pic - 0x200 0x220 pretty
This command prints (24-bit width) contents of program memory at addresses 0x200 through 0x220 to stdout.
This client (and corresponding app) are alpha releases. Or rather, I use them in a production environment, but they are only thoroughly tested on my own research hardware. At present, usability features are minimal or absent.
Contact Scott Livingston (slivingston [at] caltech) with any comments, questions, requests, etc.