-/* Remote target glue for the Hitachi SH-3 ROM monitor.
- Copyright 1995, 1996, 2000, 2001 Free Software Foundation, Inc.
+/* Remote target glue for the Renesas SH-3 ROM monitor.
+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001
+ Free Software Foundation, Inc.
This file is part of GDB.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
#include "defs.h"
#include "gdbcore.h"
#include "srec.h"
#include "arch-utils.h"
#include "regcache.h"
+#include "gdb_string.h"
-static serial_t parallel;
+#include "sh-tdep.h"
+
+static struct serial *parallel;
static int parallel_in_use;
static void sh3_open (char *args, int from_tty);
break;
case 'S':
if (regname[1] == 'S' && regname[2] == 'R')
- regno = gdbarch_tdep (current_gdbarch)->SSR_REGNUM;
+ regno = SSR_REGNUM;
else if (regname[1] == 'P' && regname[2] == 'C')
- regno = gdbarch_tdep (current_gdbarch)->SPC_REGNUM;
+ regno = SPC_REGNUM;
break;
}
}
}
static void
-sh3_load (serial_t desc, char *file, int hashmark)
+sh3_load (struct serial *desc, char *file, int hashmark)
{
if (parallel_in_use)
{
{
monitor_printf ("il;s:x\r");
monitor_expect ("\005", NULL, 0); /* Look for ENQ */
- SERIAL_WRITE (desc, "\006", 1); /* Send ACK */
+ serial_write (desc, "\006", 1); /* Send ACK */
monitor_expect ("LO x\r", NULL, 0); /* Look for filename */
load_srec (desc, file, 0, 80, SREC_ALL, hashmark, NULL);
monitor_expect ("\005", NULL, 0); /* Look for ENQ */
- SERIAL_WRITE (desc, "\006", 1); /* Send ACK */
+ serial_write (desc, "\006", 1); /* Send ACK */
monitor_expect_prompt (NULL, 0);
}
}
sh3_cmds.getreg.term_cmd = ".\r"; /* getreg.term_cmd */
sh3_cmds.dump_registers = "r\r"; /* dump_registers */
sh3_cmds.register_pattern = "\\(\\w+\\)=\\([0-9a-fA-F]+\\( +[0-9a-fA-F]+\\b\\)*\\)";
- sh3_cmds.supply_register = sh3_supply_register; /* supply_register */
+ sh3_cmds.supply_register = sh3_supply_register;
sh3_cmds.load_routine = sh3_load; /* load_routine */
sh3_cmds.load = NULL; /* download command */
sh3_cmds.loadresp = NULL; /* Load response */
if (parallel_port_name)
{
- parallel = SERIAL_OPEN (parallel_port_name);
+ parallel = serial_open (parallel_port_name);
if (!parallel)
- perror_with_name ("Unable to open parallel port.");
+ perror_with_name (_("Unable to open parallel port."));
parallel_in_use = 1;
}
+
/* If we connected successfully, we know the processor is an SH3. */
- set_architecture_from_arch_mach (bfd_arch_sh, bfd_mach_sh3);
+ {
+ struct gdbarch_info info;
+ gdbarch_info_init (&info);
+ info.bfd_arch_info = bfd_lookup_arch (bfd_arch_sh, bfd_mach_sh3);
+ if (!gdbarch_update_p (info))
+ error (_("Target is not an SH3"));
+ }
}
if (parallel_port_name)
{
- parallel = SERIAL_OPEN (parallel_port_name);
+ parallel = serial_open (parallel_port_name);
if (!parallel)
- perror_with_name ("Unable to open parallel port.");
+ perror_with_name (_("Unable to open parallel port."));
parallel_in_use = 1;
}
/* If we connected successfully, we know the processor is an SH3E. */
- set_architecture_from_arch_mach (bfd_arch_sh, bfd_mach_sh3);
+ {
+ struct gdbarch_info info;
+ gdbarch_info_init (&info);
+ info.bfd_arch_info = bfd_lookup_arch (bfd_arch_sh, bfd_mach_sh3);
+ if (!gdbarch_update_p (info))
+ error (_("Target is not an SH3"));
+ }
}
static void
monitor_close (quitting);
if (parallel_in_use)
{
- SERIAL_CLOSE (parallel);
+ serial_close (parallel);
parallel_in_use = 0;
}
}
+extern initialize_file_ftype _initialize_sh3_rom; /* -Wmissing-prototypes */
+
void
_initialize_sh3_rom (void)
{
init_monitor_ops (&sh3_ops);
sh3_ops.to_shortname = "sh3";
- sh3_ops.to_longname = "Hitachi SH-3 rom monitor";
+ sh3_ops.to_longname = "Renesas SH-3 rom monitor";
sh3_ops.to_doc =
-#ifdef _WINDOWS
- /* On windows we can talk through the parallel port too. */
- "Debug on a Hitachi eval board running the SH-3 rom monitor.\n"
- "Specify the serial device it is connected to (e.g. com2).\n"
+ /* We can download through the parallel port too. */
+ "Debug on a Renesas eval board running the SH-3E rom monitor.\n"
+ "Specify the serial device it is connected to.\n"
"If you want to use the parallel port to download to it, specify that\n"
- "as the second argument. (e.g. lpt1)";
-#else
- "Debug on a Hitachi eval board running the SH-3 rom monitor.\n\
-Specify the serial device it is connected to (e.g. /dev/ttya).";
-#endif
+ "as an additional second argument.";
sh3_ops.to_open = sh3_open;
sh3_ops.to_close = sh3_close;
init_monitor_ops (&sh3e_ops);
sh3e_ops.to_shortname = "sh3e";
- sh3e_ops.to_longname = "Hitachi SH-3E rom monitor";
+ sh3e_ops.to_longname = "Renesas SH-3E rom monitor";
sh3e_ops.to_doc =
-#ifdef _WINDOWS
- /* On windows we can talk through the parallel port too. */
- "Debug on a Hitachi eval board running the SH-3E rom monitor.\n"
- "Specify the serial device it is connected to (e.g. com2).\n"
+ /* We can download through the parallel port too. */
+ "Debug on a Renesas eval board running the SH-3E rom monitor.\n"
+ "Specify the serial device it is connected to.\n"
"If you want to use the parallel port to download to it, specify that\n"
- "as the second argument. (e.g. lpt1)";
-#else
- "Debug on a Hitachi eval board running the SH-3E rom monitor.\n\
-Specify the serial device it is connected to (e.g. /dev/ttya).";
-#endif
+ "as an additional second argument.";
sh3e_ops.to_open = sh3e_open;
sh3e_ops.to_close = sh3_close;