* corelow.c, exec.c, inftarg.c, m3-nat.c, op50-rom.c, procfs.c,
[deliverable/binutils-gdb.git] / gdb / w89k-rom.c
CommitLineData
e8b73ba7
RS
1#include "defs.h"
2#include "gdbcore.h"
3#include "target.h"
4#include "monitor.h"
5
27e889bf
RS
6extern int baud_rate;
7
e8b73ba7 8void w89k_open();
27e889bf
RS
9void monitor_open();
10
11/*
12 * this array of registers need to match the indexes used by GDB. The
13 * whole reason this exists is cause the various ROM monitors use
14 * different strings than GDB does, and doesn't support all the
15 * registers either. So, typing "info reg sp" becomes a "r30".
16 */
17static char *w89k_regnames[] = {
18 "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9",
19 "r10", "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19",
20 "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29",
7804e5bc 21 "r30", "r31", "sar", "pc", "", "", "",
27e889bf
RS
22 "eiem", "iir", "iva", "ior", "ipsw","", "", "", "", "",
23 "", "", "", "", "", "", "", "ccr", "", "",
24 "tr0", "tr1", "", "", "", "", "",
25 "", "", "", "", "", "", "", "",
26 "", "", "", "", "", "", "", "",
27 "", "", "", "", "", "", "", "",
28 "", "", "", "", "", "", "", "",
29 "", "", "", "", "", "", "", "",
30 "", "", "", "", "", "", "", "",
31 "", "", "", "", "", "", "", "",
32 "", "", "", "", "", "", "", ""
33};
e8b73ba7
RS
34
35/*
36 * Define the monitor command strings. Since these are passed directly
37 * through to a printf style function, we need can include formatting
38 * strings. We also need a CR or LF on the end.
39 */
40
41struct target_ops w89k_ops = {
42 "w89k",
43 "WinBond's debug monitor for the W89k Eval board",
44 "Debug on a WinBond W89K eval board.\n\
45Specify the serial device it is connected to (e.g. /dev/ttya).",
46 w89k_open,
47 monitor_close,
7804e5bc 48 monitor_attach,
e8b73ba7
RS
49 monitor_detach,
50 monitor_resume,
51 monitor_wait,
52 monitor_fetch_register,
53 monitor_store_register,
54 monitor_prepare_to_store,
55 monitor_xfer_inferior_memory,
56 monitor_files_info,
57 monitor_insert_breakpoint,
58 monitor_remove_breakpoint, /* Breakpoints */
59 0,
60 0,
61 0,
62 0,
63 0, /* Terminal handling */
64 monitor_kill,
65 monitor_load, /* load */
66 0, /* lookup_symbol */
67 monitor_create_inferior,
68 monitor_mourn_inferior,
69 0, /* can_run */
70 0, /* notice_signals */
71 process_stratum,
72 0, /* next */
73 1,
74 1,
75 1,
76 1,
77 1, /* all mem, mem, stack, regs, exec */
78 0,
79 0, /* Section pointers */
80 OPS_MAGIC, /* Always the last thing */
81};
82
83struct monitor_ops w89k_cmds = {
27e889bf 84 1, /* 1 for ASCII, 0 for binary */
7804e5bc 85 "\n", /* monitor init string */
e6fa5bd6 86 "g = %x\n", /* execute or usually GO command */
7804e5bc
RS
87 "g\n", /* continue command */
88 "t\n", /* single step */
89 "bp %x\n", /* set a breakpoint */
90 "bc %x\n", /* clear a breakpoint */
91 0, /* 0 for number, 1 for address */
51d6a954
RS
92 {
93 "e %x %x\n", /* set memory */
94 "", /* delimiter */
95 "", /* the result */
96 },
97 {
98 "db %x %x\n", /* get memory */
99 "", /* delimiter */
100 "", /* the result */
101 },
e6fa5bd6 102 {
51d6a954 103 "r %s %x\n", /* set a register */
27e889bf
RS
104 "", /* delimiter between registers */
105 "", /* the result */
106 },
107 {
e6fa5bd6 108 "r %s\n", /* get a register */
27e889bf
RS
109 "", /* delimiter between registers */
110 "", /* the result */
111 },
112 "U\r", /* download command */
e8b73ba7
RS
113 "ROM>", /* monitor command prompt */
114 "", /* end-of-command delimitor */
7804e5bc 115 "", /* optional command terminator */
27e889bf 116 &w89k_ops, /* target operations */
21ed3dcd 117 "srec,xmodem-ascii,xmodem-srec,default",/* load types */
27e889bf 118 w89k_regnames /* registers names */
e8b73ba7
RS
119};
120
121void
122w89k_open(args, from_tty)
123 char *args;
124 int from_tty;
125{
27e889bf 126 target_preopen(from_tty);
e8b73ba7
RS
127 push_target (&w89k_ops);
128 push_monitor (&w89k_cmds);
27e889bf 129 monitor_open (args, "w89k", from_tty);
e8b73ba7
RS
130}
131
132void
133_initialize_w89k ()
134{
135 add_target (&w89k_ops);
27e889bf
RS
136
137 /* this is the default, since it's the only baud rate supported by the hardware */
138 baud_rate = 9600;
e8b73ba7
RS
139}
140
141
142
143
This page took 0.034856 seconds and 4 git commands to generate.