In order to support CPUX and Xv2 devices, some refactoring is needed:
* split jtaglib into files concerning low-level JTAG/SBW physical layer
stuff, and a file containing the actual debug routines. the latter is
implemented in a separate file per CPU type (CPUX and Xv2 currently empty)
* use a lookup table dependig on the JTAG ID or CPU type to select which
function to use
* move the 'struct device' dependency in pif and mehfet to jtdev, as it
is needed everywhere, especially for device identification
In a next step, the following actions can be performed:
* Unify the read and write callbacks in pif and mehfet (used in readmem
and writemem of struct device) to remove the redundancy
* Unify the init_device function in pif and mehfet to properly detect
the device type, as done in v3hil. The device base type does query
this data independenly, however, which feels unwanted.
In some macOS configurations, macOS 10.13.5 on Macmini4,1 in my case,
rf2500hidapi transport fails to open RF2500 device with unknown
reason. This CL enables mspdebug to fallback to libusb backend in such
situation.
This is extremely slow at programming things, but is very useful for
unbricking an MSP-FET430UIF if you have a bus pirate and no other
programmers around.
This commit moves the definitions of UNAME_* above the initial check
of the OS environment variable. Previously, UNAME_O would not be set
in the case where OS is Windows_NT. Builds would incorrectly use Windows
OS_LIBS and OS_CFLAGS in a Cygwin build environment. The tree now builds
cleanly with Cygwin's libusb-1.0 and libreadline development packages
installed.
Using Cygwin's serial port mappings for MSP-FET430UIF:
$ mspdebug -d /dev/ttyS1 uif
MSPDebug version 0.24 - debugging tool for MSP430 MCUs
Copyright (C) 2009-2016 Daniel Beer <dlbeer@gmail.com>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Chip info database from MSP430.dll v3.3.1.4 Copyright (C) 2013 TI, Inc.
Trying to open /dev/ttyS1 at 460800 bps...
Initializing FET...
FET protocol version is 20408002
Set Vcc: 3000 mV
Configured for Spy-Bi-Wire
Device ID: 0x0580
Code start address: 0x5c00
Code size : 262144 byte = 256 kb
RAM start address: 0x1c00
RAM end address: 0x5bff
RAM size : 16384 byte = 16 kb
Device: MSP430F5438A
Number of breakpoints: 8
fet: FET returned NAK
warning: device does not support power profiling
Chip ID data:
ver_id: 8005
ver_sub_id: 0000
revision: 13
fab: 55
self: 5555
config: 13
Device: MSP430F5438A
[...]
Adds a new command, !, that drops to an interactive OS shell, or
(optionally) executes specified commands using the OS shell.
Signed-off-by: Tamas TEVESZ <ice@extreme.hu>
This driver supports the USB bootstrap loader. An initial version query
is performed on startup. If the running loader is not sufficiently
featureful, a software image for an upgraded BSL is loaded into the
chip's RAM and executed.
Ctrl+C handling is done in ctrlc.c, and a break condition now persists
until the interactive reader begins to process the next command. The
condition is cleared by calling ctrlc_clear().
The devicelist table maps chip ID bytes to an enum of devicetype_t. A
separate table provides configuration data for each value of
devicetype_t.
Original patch submitted by Stanimir Bonev <bonev_st@abv.bg>.
Constructors and device class definitions are now contained in fet.c.
The methods which implement the device interface are in fet_core.c, and
these are independent of how the device object is constructed.
The "olimex" transport has been divided into "cp210x" and "cdc_acm",
each of which take a specific vendor/product combination in their
constructor. Support for the MSP430-JTAG-ISO-MK2 has been moved into its
own driver instance.
The transport/ subdirectory now contains implementations of the
transport_t interface, which has been expanded to include flush and
set_modem operations.