aboutsummaryrefslogtreecommitdiff
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/w89k-rom.c
parentTue Sep 13 16:04:07 1994 Steve Chamberlain (sac@jonny.cygnus.com) (diff)
downloadbinutils-gdb-e8b73ba7c3001319bf638bcc5ce372755adb49aa.tar.gz
binutils-gdb-e8b73ba7c3001319bf638bcc5ce372755adb49aa.tar.bz2
binutils-gdb-e8b73ba7c3001319bf638bcc5ce372755adb49aa.zip
A generic ROM monitor interface abnd support for the WinBond w89k board
and the Oki op59n board.
Diffstat (limited to 'gdb/w89k-rom.c')
-rw-r--r--gdb/w89k-rom.c95
1 files changed, 95 insertions, 0 deletions
diff --git a/gdb/w89k-rom.c b/gdb/w89k-rom.c
new file mode 100644
index 00000000000..65078ced954
--- /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);
+}
+
+
+
+