-/* sh-stub.c -- debugging stub for the Hitachi-SH.
+/* sh-stub.c -- debugging stub for the Renesas-SH.
NOTE!! This code has to be compiled with optimization, otherwise the
function inlining which generates the exception handlers won't work.
#include <string.h>
#include <setjmp.h>
-/* Hitachi SH architecture instruction encoding masks */
+/* Renesas SH architecture instruction encoding masks */
#define COND_BR_MASK 0xff00
#define UCOND_DBR_MASK 0xe000
#define UCOND_DISP 0x0fff
#define UCOND_REG 0x0f00
-/* Hitachi SH instruction opcodes */
+/* Renesas SH instruction opcodes */
#define BF_INSTR 0x8b00
#define BT_INSTR 0x8900
#define TRAPA_INSTR 0xc300
#define SSTEP_INSTR 0xc3ff
-/* Hitachi SH processor register masks */
+/* Renesas SH processor register masks */
#define T_BIT_MASK 0x0001
static char *mem2hex (char *, char *, int);
static char *hex2mem (char *, char *, int);
static int hexToInt (char **, int *);
-static unsigned char *getpacket (unsigned char *);
+static unsigned char *getpacket (void);
static void putpacket (char *);
static void handle_buserror (void);
static int computeSignal (int exceptionVector);
stepData instrBuffer;
char stepped;
static const char hexchars[] = "0123456789abcdef";
-char remcomInBuffer[BUFMAX];
-char remcomOutBuffer[BUFMAX];
+static char remcomInBuffer[BUFMAX];
+static char remcomOutBuffer[BUFMAX];
char highhex(int x)
{
/* scan for the sequence $<data>#<checksum> */
char *
-getpacket (buffer)
- char *buffer;
+getpacket (void)
{
+ unsigned char *buffer = &remcomInBuffer[0];
unsigned char checksum;
unsigned char xmitcsum;
int count;
/* send the packet in buffer. */
static void
-putpacket (register char *buffer)
+putpacket (char *buffer)
{
- register int checksum;
- register int count;
+ int checksum;
+ int count;
/* $<packet info>#<checksum>. */
do
while (1)
{
remcomOutBuffer[0] = 0;
- ptr = getpacket (remcomInBuffer);
+ ptr = getpacket ();
switch (*ptr++)
{
mem2hex ((char *) registers, remcomOutBuffer, NUMREGBYTES);
break;
case 'G': /* set the value of the CPU registers - return OK */
- hex2mem (&ptr, (char *) registers, NUMREGBYTES);
+ hex2mem (ptr, (char *) registers, NUMREGBYTES);
strcpy (remcomOutBuffer, "OK");
break;
}
void
-gdb_mode()
+gdb_mode (void)
{
ingdbmode = GDBCOOKIE;
breakpoint();
/* Note:
- The Hitachi SH family uses two exception architectures:
+ The Renesas SH family uses two exception architectures:
SH1 & SH2:
static void
-exceptions()
+exceptions (void)
{
code_for_catch_exception (CPU_BUS_ERROR_VEC);
code_for_catch_exception (DMA_BUS_ERROR_VEC);
void handleError (char theSSR);
void
-nop ()
+nop (void)
{
}
void
-init_serial()
+init_serial (void)
{
int i;
}
int
-putDebugCharReady()
+putDebugCharReady (void)
{
return (SSR1 & SCI_TDRE);
}