You can use the GDB remote serial protocol to communicate with a Hitachi H8/300H board. You must first link your programs with the "stub" module `src/gdb/config/H8/stub.c'. This module manages the communication with GDB. See section `The GDB remote serial protocol' in Debugging with GDB, for more details. Note that the Hitachi LCEVB running CMON has the stub already built-in.
Use the special gdb
command `device port' if you need
to explicitly set the serial device. The default port is the
first available port on your host. This is only necessary on Unix
hosts, where it is typically something like `/dev/ttya'.
GDB has another special command to set the communications speed: `speed bps'.
The following sample session illustrates the steps needed to start a program under GDB control on an H8/300, using a DOS host. The example uses a sample H8 program called `t.x'. The procedure is the same for other Hitachi chips in the series.
First hook up your development board. In this example, we use a board
attached to serial port COM2
. Call GDB with the name of
your program as the argument. GDB prompts you, as usual, with
the prompt `(gdb)'. Use two special commands to begin your
debugging session: `target hms' to specify cross-debugging to the
Hitachi board, and the load
command to download your program to
the board. load
displays the names of the program's sections,
and a `*' for each 2K of data downloaded. (If you want to refresh
GDB data on symbols or on the executable file without downloading,
use the GDB commands file
or symbol-file
. These
commands, and load
itself, are described in section `Commands to specify files' in Debugging with GDB.)
C:\H8\TEST> gdb t.x GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.13-94q4, Copyright 1994 Free Software Foundation, Inc... (gdb) target hms com1 Connected to remote H8/300 HMS system. (gdb) load t.x .text : 0x8000 .. 0xabde *********** .data : 0xabde .. 0xad30 * .stack : 0xf000 .. 0xf014 *
At this point, you're ready to run or debug your program. From here on,
you can use all the usual GDB commands. The break
command
sets breakpoints; the run
command starts your program;
print
or x
display data; the continue
command
resumes execution after stopping at a breakpoint. You can use the
help
command at any time to find out more about GDB commands.
Remember, however, that operating system facilities aren't available on your development board; for example, if your program hangs, you can't send an interrupt--but you can press the RESET switch!
Use the RESET button on the development board:
In either case, GDB sees the effect of a RESET on the development board as a "normal exit" of your program.