Debug Firmware for MSP-FET430UIF/eZ430U
D/FW is an open source, experimental, and unofficial firmware for MSP-FET430UIF and eZ430U debug interface and associated host side control programs. Host side programs are designed to work with any modern UNIX operating systems (e.g. Linux, *BSD).
Two firmwares included in the distribution.For hosts with big endian CPU, host side programs need a few changes.
FET | Device | TAP | Target Board | Comments(test by) |
---|---|---|---|---|
FETUIF | F169 | JTAG | MSP-TS430PM64 | |
FETUIF | F2274 | JTAG | MSP-TS430DA38 | |
FETUIF | F2274 | SBW | MSP-TS430DA38 | |
FETUIF | F2274 | SBW | eZ430-RF2500T | |
FETUIF | F1612 | JTAG | eZ430U(Rev2.0) | Soldered TP7..TP1 |
FETUIF | F2618 | CPUXV1/JTAG | MSP-TS430PM64 | |
FETUIF | F5529 | CPUXV2/JTAG | MSP-TS430PN80USB | |
FETUIF | F5529 | CPUXV2/SBW | MSP-TS430PN80USB | |
FETUIF | F6137 | CPUXV2/SBW | eZ430-Chronos | |
eZ430U | F2012 | SBW | eZ430-T2012 | |
eZ430U | F2274 | SBW | eZ430-RF2500T | |
eZ430U | F6137 | CPUXV2/SBW | eZ430-Chronos | |
F2274 | F1612 | JTAG | eZ430U(Rev2.0) | F2274@R2500T |
F2274 | F2274 | SBW | eZ430-RF2500T | F2274@R2500T |
FETUIF | CC2511 | CC8051 | CC2511DK_Dongle | Chipcon RF |
F2274/DFW can handle everything FET430UIF/DFW can, while eZ430U/DFW can only do SBW. To use F2274/DFW, you need 3V serial interface to connect host computer. You can use eZ430/PTFW for this purpose.
|
|
|
dfw.fetuif.ihex
, dfw.ez430u.ihex
and
dfw.ez430u1p1.ihex
in
dfw
directory is pre-compiled binary (in Intel HEX format) for
FET430UIF, eZ430U and eZ430U Rev1.1, respectively. Write one
of these into your FET by a FET you currently have.
Makefile
in the distribution's top directory
and correct your BFD library's location.
make
will make dmwt command and other utilities.
examples/*/Makefile
contains examples how to use dmwt.
(cd gdbproxy; ./configure && make)
will make gdbproxy.
dmwt
command will program target cpu via JTAG/SBW (or CC8051).
This is also used to update FET's firmware.
Usage: dmwt [-vdf] [-p /dev/cu.usbmodemXXX] [-c TARGET_OPTIONS] [-b name.txt from-addr] [object] ``object'' can be in either ELF, Intel HEX, or TITXT format. /dev/cu.usbmodemXXX might be /dev/ttyACMXXX or /dev/ttyXXX $ dmwt # will print help message $ dmwt -f dfw.fetuif.elf # update firmware $ dmwt -c TARGET_OPTIONS a.out $ dmwt -p /dev/cu.usbmodem001 -c "SBW" a.out $ dmwt -vc "SBW" a.out # verbose mode $ dmwt -c "" a.out # program a.out with JTAG. $ dmwt -c "SBW" a.out # program a.out with SBW. $ dmwt -c "VCC 3000 UNLOCKA" a.out # sets VCC 3.0V, unlock INFO_A $ dmwt -c "CPUXV1" a.out $ dmwt -c "CPUXV2" a.out $ dmwt -c "CC8051" main.hex
examples/*/Makefile
has more examples.
$ msp430-gdbproxy --help uifdfw $ msp430-gdbproxy --port=2000 uifdfw --c TARGET_OPTIONS $ msp430-gdbproxy --port=2000 uifdfw --c "CPUXV2" --debug $ msp430-gdbproxy --port=2000 uifdfw --c "SBW" # msp430/SBW $ msp430-gdbproxy --port=2000 uifdfw --c "CPUXV1" # CPUXV1/JTAG $ msp430-gdbproxy --port=2000 uifdfw --c "CPUXV2 SBW" # CPUXV2/SBW
.gdbinit
set remoteaddresssize 64 set remotetimeout 999999 target remote localhost:2000 define reload monitor erase monitor flash load monitor memory set $pc = *0xfffe end
TARGET_OPTIONS
are common among dfw tools
which specifies target cpu's character.
MSP430 : (default) msp430x1xx, msp430x2xx, msp430x4xx CPUXV1 : msp430x2xx, msp430x4xx with CPUX CPUXV2 : msp430x5xx, cc430x6xx CC8051 : cc111x, cc251x, etc. VCC xxxx : sets VCC to XXXX mV (e.g., VCC 3300), FET430UIF only. JTAG : (default) SBW : FastFlash : (default) SlowFlash : for relatively old devices without FastFlash feature LOCKA : (default) locks INFO_A memory UNLOCKA : unlocks INFO_A memory FCTL addr : sets FCTL base address for CPUXV2 target. FWS n : sets flash word size for CC8051 target.See
cmd.c
and target_*.c
for details.
Usage: bufet [-vd] [-p /dev/cu.usbmodemXXX] [-c TARGET_OPTIONS] [fet_eeprom.txt fet_flash.txt]To make backup file:
$ ./bufetor
$ mkdir FET_backup $ cd FET_backup $ ../bufet
bufet
will create fet_eeprom.txt
and fet_flash.txt
in the current directory. Those files are in TITXT format. After making backup
files, you might want to compress these files using titxt_compress
command to save disk space and restore time.
To restore from backup file,
$ ../bufet fet_eeprom.txt fet_flash.txtNote that reading/writing eeprom is very slow.