aboutsummaryrefslogtreecommitdiff
path: root/gdb/op50-rom.c
diff options
context:
space:
mode:
authorRob Savoye <rob@cygnus>1994-09-14 00:14:53 +0000
committerRob Savoye <rob@cygnus>1994-09-14 00:14:53 +0000
commite8b73ba7c3001319bf638bcc5ce372755adb49aa (patch)
treec8395955d649328968b5d475a3ba68f591f6206e /gdb/op50-rom.c
parentcf345e3687631021682e36e0a9ed193b09261b40 (diff)
downloadgdb-e8b73ba7c3001319bf638bcc5ce372755adb49aa.zip
gdb-e8b73ba7c3001319bf638bcc5ce372755adb49aa.tar.gz
gdb-e8b73ba7c3001319bf638bcc5ce372755adb49aa.tar.bz2
A generic ROM monitor interface abnd support for the WinBond w89k board
and the Oki op59n board.
Diffstat (limited to 'gdb/op50-rom.c')
-rw-r--r--gdb/op50-rom.c91
1 files changed, 91 insertions, 0 deletions
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);
+}