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