From b04a78d48726802327923f5a4d6b5f57fe69c798 Mon Sep 17 00:00:00 2001 From: Rob Savoye Date: Thu, 12 Jan 1995 00:56:53 +0000 Subject: [PATCH] * array-rom.c: Add support for most commands. * monitor.c: Add GDB remote protocol for the hybrid environment on the Array board. --- gdb/ChangeLog | 7 +++ gdb/array-rom.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 116 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b5f84ef3e05..26749106999 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +Wed Jan 11 17:53:26 1995 Rob Savoye + + * array-rom.c: Add support for most commands. + + * monitor.c: Add GDB remote protocol for the hybrid environment on + the Array board. + Wed Jan 11 00:44:01 1995 Jeff Law (law@snake.cs.utah.edu) * command.c (show_user_1): Use print_command_line to show a user diff --git a/gdb/array-rom.c b/gdb/array-rom.c index 368b6009d8c..ccf29bdf80d 100644 --- a/gdb/array-rom.c +++ b/gdb/array-rom.c @@ -1,5 +1,4 @@ -/* Remote target glue for the WinBond ROM monitor running on the "Cougar" -Array eval board. +/* Remote target code for the Array Tech LSI33k based RAID disk controller board. Copyright 1988, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. @@ -28,6 +27,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ extern int baud_rate; void array_open(); +void gdb_open(); void monitor_open(); /* @@ -146,6 +146,108 @@ struct monitor_ops array_cmds = { array_regnames /* registers names */ }; +struct target_ops gdb_ops = { + "gdb", + "Debug using the standard GDB remote protocol for the Array Tech target.", + "Debug using the standard GDB remote protocol for the Array Tech target.\n\ +Specify the serial device it is connected to (e.g. /dev/ttya).", + gdb_open, + monitor_close, + monitor_attach, + monitor_detach, + monitor_resume, + monitor_wait, + monitor_fetch_registers, + monitor_store_registers, + monitor_prepare_to_store, + monitor_xfer_inferior_memory, + monitor_files_info, + monitor_insert_breakpoint, + monitor_remove_breakpoint, /* Breakpoints */ + 0, + 0, + 0, + 0, + 0, /* Terminal handling */ + monitor_kill, + monitor_load, /* load */ + 0, /* lookup_symbol */ + monitor_create_inferior, + monitor_mourn_inferior, + + 0, /* can_run */ + 0, /* notice_signals */ + 0, /* to_stop */ + process_stratum, + 0, /* next */ + 1, + 1, + 1, + 1, + 1, /* all mem, mem, stack, regs, exec */ + 0, + 0, /* Section pointers */ + OPS_MAGIC, /* Always the last thing */ +}; + +struct monitor_ops gdb_cmds = { + 0, /* 1 for ASCII, 0 for binary */ + "$?#b8+\n", /* monitor init string */ + "go %x", /* execute or usually GO command */ + "c", /* continue command */ + "s", /* single step */ + "brk %x", /* set a breakpoint */ + "unbrk %x", /* clear a breakpoint */ + 0, /* 0 for number, 1 for address */ + { + "M%8x,%4x:%8x", /* set memory */ + "", /* delimiter */ + "", /* the result */ + }, + { + "m%8x,%4x", /* get memory */ + "", /* delimiter */ + "", /* the result */ + }, + { + "G%8x", /* set registers */ + "", /* delimiter between registers */ + "", /* the result */ + }, + { + "g", /* get registers */ + "", /* delimiter between registers */ + "", /* the result */ + }, + "sload -a tty(0)\r\n", /* download command */ + ">> ", /* monitor command prompt */ + "", /* end-of-command delimitor */ + "", /* optional command terminator */ + &gdb_ops, /* target operations */ + "none,srec,default", /* load types */ + "none", /* load protocols */ + "4800", /* supported baud rates */ + 2, /* number of stop bits */ + array_regnames /* registers names */ +}; + +void +gdb_open(args, from_tty) + char *args; + int from_tty; +{ + target_preopen(from_tty); + push_target (&gdb_ops); + push_monitor (&gdb_cmds); + monitor_open (args, "gdb", from_tty); +} + +void +_initialize_gdb_proto () +{ + add_target (&gdb_ops); +} + void array_open(args, from_tty) char *args; @@ -165,3 +267,8 @@ _initialize_array () /* this is the default, since it's the only baud rate supported by the hardware */ baud_rate = 4800; } + + + + + -- 2.30.2