rtems gdb stub with virtex issue

Tim Cussins timcussins at eml.cc
Tue Feb 5 16:15:40 UTC 2008


Hi all

I've been looking at using Till's gdb stub for rtems, running on
the virtex bsp (ppc405).

In order to support the ppc, I've added conditional compilation
for fp related chicanery, and tweaked the handling of a machine
check, nothing fancy (see diff below).

Question: I've set a breakpoint, my thread has hit it and stopped.
At this point the breakpoint is 'disabled' by the stub. However,
when I issue 'continue' to gdb, the breakpoint is not re-enabled.
Is this normal? Which end (stub or client) is required to re-enable
the breakpoint? The client (gdb) thinks the breakpoint still exists
and is enabled, which isn't true on the device...

Cheers,
Tim


[rtems-gdb-stub-ppc-shared.c]
@@ -124,9, +124,11 @@

      if ( (tcb = get_tcb(msg->tid)) ) {
-         Context_Control_fp *fpc = tcb->fp_context;
+         #if (CPU_HARDWARE_FP == TRUE && CPU_SOFTWARE_FP == TRUE )
+         Context_Control_fp *fpc = tcb->fp_context;
          if ( fpc ) {
              memcpy(buf + FPR0_OFF, &fpc->f[0], 32*8 );
              memcpy(buf + FPSCR_OFF, &fpc->fpscr, 4);
          }
+         #endif
          if (!f) {
              Frame        sfr = (Frame)tcb->Registers.gpr1;
@@ -163,4, +165,5 @@

      if ( msg->tid && (tcb = get_tcb(msg->tid)) ) {
+         #if (CPU_HARDWARE_FP == TRUE && CPU_SOFTWARE_FP == TRUE )
          Context_Control_fp *fpc = tcb->fp_context;
          if ( fpc ) {
@@ -169,4, +172,5 @@
              memcpy(&fpc->fpscr,  buf + FPSCR_OFF, 4);
          }
+         #endif
          if ( !f ) {
              /* setup TCB */
@@ -241,5, +245,4 @@
      switch ( f->_EXC_number ) {
          case ASM_MACH_VECTOR     :
-             _BSP_clear_hostbridge_errors(1,0);
              msg.sig = SIGBUS;
          break;



More information about the users mailing list