Contents|Index|Previous|Next

Hitachi H8/300 boards

You can use the gdb remote serial protocol to communicate with a Hitachi H8/300 board. See The gdb remote serial protocol in Debugging with GDB in GNUPro Debugging Tools for more details.

Note:
The Hitachi LCEVB running CMON has the stub already built-in.

Use the following gdb command if you need to explicitly set the serial device.

    device port

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.

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 the example that follows, we use a board attached to serial port COM1.

1.
Call gdb with the name of your program as the argument.

    gdb filename

2.
gdb prompts you, as usual, with the following prompt.

(gdb)

3.
Use the following two special commands to begin your debugging session.

target hms port
S pecify cross-debugging to the Hitachi board, and then use with the next input to download your program to the board.

load filename
load displays the names of the program’s sections. (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 Commands to specify files in Debugging with GDB in GNUPro Debugging Tools. The following message then appears.

    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.15-96q1, 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. Now you can use all of the following gdb commands.

break
Set breakpoints.

run
Start your program.

print
Display data.

continue
Resume execution after stopping at a breakpoint.

help
Display full information about gdb commands.

Note:
Remember 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 to interrupt your program (don’t use CTRL-C on the DOS host—it has no way to pass an interrupt signal to the development board). Return to your program’s process with the(gdb) command prompt after your program finishes its hanging normally. The communications protocol provides no other way for gdb to detect program completion. In either case, gdb sees the effect of a reset on the development board as a “normal exit” of your program