- don't optimize away gdb
- GCC 4.92 - cleaned up git-svn-id: http://moon:8086/svn/mips@107 a8ebac50-d88d-4704-bea3-6648445a41b3
This commit is contained in:
@@ -13,7 +13,7 @@
|
|||||||
extern uart_if_t uart_if[];
|
extern uart_if_t uart_if[];
|
||||||
extern void handle_exception (unsigned long *registers);
|
extern void handle_exception (unsigned long *registers);
|
||||||
|
|
||||||
int gdb_stub(struct xcptcontext * xcp) __attribute__ ((section (".gdb")));
|
extern int gdb_stub(struct xcptcontext * xcp) __attribute__ ((section (".gdb"))) __attribute__ ((used));
|
||||||
int gdb_stub(struct xcptcontext * xcp)
|
int gdb_stub(struct xcptcontext * xcp)
|
||||||
{
|
{
|
||||||
handle_exception((unsigned long *)xcp);
|
handle_exception((unsigned long *)xcp);
|
||||||
|
|||||||
@@ -41,13 +41,11 @@ const con_if_t con_if =
|
|||||||
con_if_entry, ARRAYSIZE(con_if_entry)
|
con_if_entry, ARRAYSIZE(con_if_entry)
|
||||||
};
|
};
|
||||||
|
|
||||||
static uart_if_t const *dbg_uart = NULL;
|
|
||||||
|
|
||||||
void dbg_uart_isr(struct xcptcontext *xcp)
|
void dbg_uart_isr(struct xcptcontext *xcp)
|
||||||
{
|
{
|
||||||
if(SYS_UART_BIT_RX_AVAIL & *dbg_uart->pCTRL)
|
if(SYS_UART_BIT_RX_AVAIL & *uart_if[UART_DEBUGGER].pCTRL)
|
||||||
{
|
{
|
||||||
char c = *dbg_uart->pDATA;
|
char c = *uart_if[UART_DEBUGGER].pDATA;
|
||||||
if (c == 3)
|
if (c == 3)
|
||||||
{
|
{
|
||||||
dbg_func(xcp);
|
dbg_func(xcp);
|
||||||
|
|||||||
@@ -41,13 +41,11 @@ const con_if_t con_if =
|
|||||||
con_if_entry, ARRAYSIZE(con_if_entry)
|
con_if_entry, ARRAYSIZE(con_if_entry)
|
||||||
};
|
};
|
||||||
|
|
||||||
static uart_if_t const *dbg_uart = NULL;
|
|
||||||
|
|
||||||
void dbg_uart_isr(struct xcptcontext *xcp)
|
void dbg_uart_isr(struct xcptcontext *xcp)
|
||||||
{
|
{
|
||||||
if(SYS_UART_BIT_RX_AVAIL & *dbg_uart->pCTRL)
|
if(SYS_UART_BIT_RX_AVAIL & *uart_if[UART_DEBUGGER].pCTRL)
|
||||||
{
|
{
|
||||||
char c = *dbg_uart->pDATA;
|
char c = *uart_if[UART_DEBUGGER].pDATA;
|
||||||
if (c == 3)
|
if (c == 3)
|
||||||
{
|
{
|
||||||
dbg_func(xcp);
|
dbg_func(xcp);
|
||||||
|
|||||||
@@ -424,10 +424,10 @@ handle_exception (unsigned long *registers)
|
|||||||
char *ptr;
|
char *ptr;
|
||||||
unsigned long *sp;
|
unsigned long *sp;
|
||||||
|
|
||||||
unsigned long *pAddr = (unsigned long *)registers[PC];
|
addr = *((unsigned long *)registers[PC]);
|
||||||
|
|
||||||
// is break
|
// is break
|
||||||
if (isBreak(*pAddr))
|
if (isBreak(addr))
|
||||||
{
|
{
|
||||||
registers[PC] += 4;
|
registers[PC] += 4;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user