summaryrefslogtreecommitdiffstats
path: root/firmware/debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/debug.c')
-rw-r--r--firmware/debug.c193
1 files changed, 0 insertions, 193 deletions
diff --git a/firmware/debug.c b/firmware/debug.c
index bc382335b6..34f89908a3 100644
--- a/firmware/debug.c
+++ b/firmware/debug.c
@@ -30,9 +30,6 @@
#ifdef DEBUG
static char debugmembuf[200];
-#if CONFIG_CPU == SH7034
-static char debugbuf[400];
-#endif
#endif
#include "kernel.h"
@@ -40,194 +37,6 @@ static char debugbuf[400];
#include "debug.h"
#ifdef DEBUG
-#if CONFIG_CPU == SH7034 /* these are still very SH-oriented */
-void debug_init(void)
-{
- /* Clear it all! */
- SSR1 &= ~(SCI_RDRF | SCI_ORER | SCI_PER | SCI_FER);
-
- /* This enables the serial Rx interrupt, to be able to exit into the
- debugger when you hit CTRL-C */
- SCR1 |= 0x40;
- SCR1 &= ~0x80;
- IPRE |= 0xf000; /* Set to highest priority */
-}
-
-static int debug_tx_ready(void)
-{
- return (SSR1 & SCI_TDRE);
-}
-
-static void debug_tx_char(char ch)
-{
- while (!debug_tx_ready())
- {
- ;
- }
-
- /*
- * Write data into TDR and clear TDRE
- */
- TDR1 = ch;
- SSR1 &= ~SCI_TDRE;
-}
-
-static void debug_handle_error(char ssr)
-{
- (void)ssr;
- SSR1 &= ~(SCI_ORER | SCI_PER | SCI_FER);
-}
-
-static int debug_rx_ready(void)
-{
- char ssr;
-
- ssr = SSR1 & ( SCI_PER | SCI_FER | SCI_ORER );
- if ( ssr )
- debug_handle_error ( ssr );
- return SSR1 & SCI_RDRF;
-}
-
-static char debug_rx_char(void)
-{
- char ch;
- char ssr;
-
- while (!debug_rx_ready())
- {
- ;
- }
-
- ch = RDR1;
- SSR1 &= ~SCI_RDRF;
-
- ssr = SSR1 & (SCI_PER | SCI_FER | SCI_ORER);
-
- if (ssr)
- debug_handle_error (ssr);
-
- return ch;
-}
-
-static const char hexchars[] = "0123456789abcdef";
-
-static char highhex(int x)
-{
- return hexchars[(x >> 4) & 0xf];
-}
-
-static char lowhex(int x)
-{
- return hexchars[x & 0xf];
-}
-
-static void putpacket (const char *buffer)
-{
- register int checksum;
-
- const char *src = buffer;
-
- /* Special debug hack. Shut off the Rx IRQ during I/O to prevent the debug
- stub from interrupting the message */
- SCR1 &= ~0x40;
-
- debug_tx_char ('$');
- checksum = 0;
-
- while (*src)
- {
- int runlen;
-
- /* Do run length encoding */
- for (runlen = 0; runlen < 100; runlen ++)
- {
- if (src[0] != src[runlen] || runlen == 99)
- {
- if (runlen > 3)
- {
- int encode;
- /* Got a useful amount */
- debug_tx_char (*src);
- checksum += *src;
- debug_tx_char ('*');
- checksum += '*';
- checksum += (encode = runlen + ' ' - 4);
- debug_tx_char (encode);
- src += runlen;
- }
- else
- {
- debug_tx_char (*src);
- checksum += *src;
- src++;
- }
- break;
- }
- }
- }
-
-
- debug_tx_char ('#');
- debug_tx_char (highhex(checksum));
- debug_tx_char (lowhex(checksum));
-
- /* Wait for the '+' */
- debug_rx_char();
-
- /* Special debug hack. Enable the IRQ again */
- SCR1 |= 0x40;
-}
-
-
-/* convert the memory, pointed to by mem into hex, placing result in buf */
-/* return a pointer to the last char put in buf (null) */
-static char *mem2hex (const char *mem, char *buf, int count)
-{
- int i;
- int ch;
- for (i = 0; i < count; i++)
- {
- ch = *mem++;
- *buf++ = highhex (ch);
- *buf++ = lowhex (ch);
- }
- *buf = 0;
- return (buf);
-}
-
-static void debug(const char *msg)
-{
- debugbuf[0] = 'O';
-
- mem2hex(msg, &debugbuf[1], strlen(msg));
- putpacket(debugbuf);
-}
-#elif defined(HAVE_GDB_API)
-static void *get_api_function(int n)
-{
- struct gdb_api *api = (struct gdb_api *)GDB_API_ADDRESS;
- if (api->magic == GDB_API_MAGIC)
- return api->func[n];
- else
- return NULL;
-}
-
-void breakpoint(void)
-{
- void (*f)(void) = get_api_function(0);
- if (f) (*f)();
-}
-
-static void debug(char *msg)
-{
- void (*f)(char *) = get_api_function(1);
- if (f) (*f)(msg);
-}
-
-void debug_init(void)
-{
-}
-#else /* !SH7034 && !HAVE_GDB_API */
void debug_init(void)
{
}
@@ -236,8 +45,6 @@ static inline void debug(char *msg)
{
(void)msg;
}
-#endif
-
#endif /* end of DEBUG section */
#ifdef __GNUC__