From e8b73ba7c3001319bf638bcc5ce372755adb49aa Mon Sep 17 00:00:00 2001 From: Rob Savoye Date: Wed, 14 Sep 1994 00:14:53 +0000 Subject: [PATCH] A generic ROM monitor interface abnd support for the WinBond w89k board and the Oki op59n board. --- gdb/op50-rom.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ gdb/w89k-rom.c | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 186 insertions(+) create mode 100644 gdb/op50-rom.c create mode 100644 gdb/w89k-rom.c diff --git a/gdb/op50-rom.c b/gdb/op50-rom.c new file mode 100644 index 0000000..419c875 --- /dev/null +++ b/gdb/op50-rom.c @@ -0,0 +1,91 @@ +#include "defs.h" +#include "gdbcore.h" +#include "target.h" +#include "monitor.h" + +void op50n_open(); +void general_open(); + +/* + * Define the monitor command strings. Since these are passed directly + * through to a printf style function, we need can include formatting + * strings. We also need a CR or LF on the end. + */ + +struct target_ops op50n_ops = { + "op50n", + "Oki's debug monitor for the Op50n Eval board", + "Debug on a Oki OP50N eval board.\n\ +Specify the serial device it is connected to (e.g. /dev/ttya).", + op50n_open, + monitor_close, + 0, + monitor_detach, + monitor_resume, + monitor_wait, + monitor_fetch_register, + monitor_store_register, + 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 */ + 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 op50n_cmds = { + "\r", /* monitor init string */ + "g\r", /* execute or usually GO command */ + "g\r", /* continue command */ + "t\r", /* single step */ + "b %x\r", /* set a breakpoint */ + "b %x\r", /* clear a breakpoint */ + "s %x %x\r", /* set memory to a value */ + "s %x\r", /* display memory */ + "", /* prompt memory commands use */ + "x %s %x\r", /* set a register */ + "", /* delimiter between registers */ + "x %s\r", /* read a register */ + "r\r", /* download command */ + "#", /* monitor command prompt */ + "", /* end-of-command delimitor */ + ".", /* optional command terminator */ + &op50n_ops /* target operations */ +}; + +void +op50n_open(args, from_tty) + char *args; + int from_tty; +{ + push_target(&op50n_ops); + push_monitor (&op50n_cmds); + general_open (args, "op50n", from_tty); +} + +void +_initialize_op50n () +{ + add_target (&op50n_ops); +} diff --git a/gdb/w89k-rom.c b/gdb/w89k-rom.c new file mode 100644 index 0000000..65078ce --- /dev/null +++ b/gdb/w89k-rom.c @@ -0,0 +1,95 @@ +#include "defs.h" +#include "gdbcore.h" +#include "target.h" +#include "monitor.h" + +void w89k_open(); +void general_open(); + +/* + * Define the monitor command strings. Since these are passed directly + * through to a printf style function, we need can include formatting + * strings. We also need a CR or LF on the end. + */ + +struct target_ops w89k_ops = { + "w89k", + "WinBond's debug monitor for the W89k Eval board", + "Debug on a WinBond W89K eval board.\n\ +Specify the serial device it is connected to (e.g. /dev/ttya).", + w89k_open, + monitor_close, + 0, + monitor_detach, + monitor_resume, + monitor_wait, + monitor_fetch_register, + monitor_store_register, + 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 */ + 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 w89k_cmds = { + "\r", /* monitor init string */ + "G\r", /* execute or usually GO command */ + "G\r", /* continue command */ + "T\r", /* single step */ + "BP %x\r", /* set a breakpoint */ + "BC %x\r", /* clear a breakpoint */ + "E %x %x\r", /* set memory to a value */ + "D %x\r", /* display memory */ + "", /* prompt memory commands use */ + "R %s %x\r", /* set a register */ + "", /* delimiter between registers */ + "R %s\r", /* read a register */ + "L\r", /* download command */ + "ROM>", /* monitor command prompt */ + "", /* end-of-command delimitor */ + "", /* optional command terminator */ + &w89k_ops /* target operations */ +}; + +void +w89k_open(args, from_tty) + char *args; + int from_tty; +{ + push_target (&w89k_ops); + push_monitor (&w89k_cmds); + general_open (args, "w89k", from_tty); +} + +void +_initialize_w89k () +{ + add_target (&w89k_ops); +} + + + + -- 2.7.4