Hi all,

I have put the first test version of rproxy on the mspgcc web site. This is a new program which sits between msp430-gdb and the TI Flash Emulation Tool (FET - also known as the parallel port JTAG tool). rproxy understands the gdb remote protocol over TCP/IP connections, and it understands how to control an MSP430 via. a FET. Used with Insight, or one of the other GUI front ends for gdb, this allows full debug support - quite similar to the existing IAR and Quadravox tools. Now we have s full suite of tools for the MSP430.

rproxy is based on the rproxy 0.7 program which can be found at
http://world.std.com/~qqi/labslave/rproxy.html. It was intended that the MSP430 code just be added to the existing rproxy code. However, the rproxy code has now been so heavily modified it looks like it has forked. Sorry. Forking is bad.

Because rproxy relies on proprietary code from TI the full source code cannot be opened at this time. The generic code (i.e. the modified rproxy code, less the MSP430 specific parts) will be made available when a few more things have been tidied up. You cannot build an MSP430 debugger with just that source code, but we hope it may be useful to people trying to build similar tools for other processors.

What is on offer right now is binary test versions of rproxy for Linux on i386 and Windows. They are being used, perhaps even as you read this, to debug real MSP430 programs. They support most of the gdb remote protocol, including some of the obscure stuff (like CRC32'ing a memory block).

For the Linux inclined we offer
http://mspgcc.sourceforge.net/rproxy-linux-20021030

For Windows users we have
http://mspgcc.sourceforge.net/rproxy-20021030.exe

which should be used with
http://mspgcc.sourceforge.net/HIL.dll DLL

Remember these are works in progress, but they are doing useful work for me. The source for HIL.dll can be found in CVS (this part is currently open source).

The following limitations should be noted:

The IAR and Quadravox tools both loose control of the MSP430 at times. rproxy does too, but it has the benefit that it doesn't seem to dump core with the same regularity :-) It should be very hard to loose control of the target device - only issues related to certain power saving states are supposed to be able to do it. This will be investigated, as it is real a pain.

gdb is a general purpose tool. We need to live with what is does. One odd thing it does is choose some strange block sizes in which to download code by the remote protocol. When it uses large blocks, writing to flash is reasonably fast. When it sends tiny blocks, writing to flash gets slowwww...... Some caching is currently being done, but improvements are needed. If I fully cache the data any write errors will not be reported in a timely manner. I am not clear what the best solution might be.

It is advisable to put the following in your .gdbinit file:

set remoteaddresssize 64
set remotetimeout 999999

to make rproxy behave nicely.

The linux version requires access to /dev/parport0. The default
permissions on many Linux distributions only allow root to do this. Change the permissions, and all should be well. The Linux binary was build on a RedHat 7.2 machine. The Win32 build was built with mingw32.

If you run rproxy without parameters it will display some help. A command like:

rproxy --port=3333 msp430

is what you need to get it going. If you then run msp430-gdb (with or without insight) and connect to a remote target by TCP/IP at port 3333 you should connect to rproxy. Special MSP430 features, like erasing the flash, are accessed through gdb's monitor commands. "monitor help" will tell you what they are. "monitor erase" is the most important one. "monitor identify" is handy, too. If you have trouble try

rproxy --port=3333 --debug msp430

or even

rproxy --port=3333 --debug --debug msp430

and you will see a little or a lot of trace information. I can't output debug about what is happening on the JTAG interface (I'm not allowed to), but rproxy displays quite extensive info about what is happening on the gdb interface side and internally.

Have fun.
Report problems.
Don't complain it isn't perfect - even I am not :-)

Regards,
Steve


Reply via email to