#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); }