summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2002-03-01 16:22:59 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2002-03-01 16:22:59 +0000
commitcd6bec6cef6865086910ee0abc0c1be0cceb511c (patch)
tree2b875e8fe86bccae5316c6b529229868a8067b89 /c/src/lib/libbsp
parent2002-02-27 Greg Menke <gregory.menke@gsfc.nasa.gov> (diff)
downloadrtems-cd6bec6cef6865086910ee0abc0c1be0cceb511c.tar.bz2
2002-02-27 Greg Menke <gregory.menke@gsfc.nasa.gov>
* shared/gdbstub/README: Added text. * shared/gdbstub/mips-stub.c: Modified isr install routine to capture all exceptions.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/mips/shared/gdbstub/ChangeLog6
-rw-r--r--c/src/lib/libbsp/mips/shared/gdbstub/mips-stub.c72
2 files changed, 55 insertions, 23 deletions
diff --git a/c/src/lib/libbsp/mips/shared/gdbstub/ChangeLog b/c/src/lib/libbsp/mips/shared/gdbstub/ChangeLog
index fde13c2d50..db4505a19c 100644
--- a/c/src/lib/libbsp/mips/shared/gdbstub/ChangeLog
+++ b/c/src/lib/libbsp/mips/shared/gdbstub/ChangeLog
@@ -1,3 +1,9 @@
+2002-02-27 Greg Menke <gregory.menke@gsfc.nasa.gov>
+
+ * shared/gdbstub/README: Added text.
+ * shared/gdbstub/mips-stub.c: Modified isr install routine to
+ capture all exceptions.
+
2001-02-27 Joel Sherrill <joel@OARcorp.com>
* Significant modifications including adding thread support, the 'X'
diff --git a/c/src/lib/libbsp/mips/shared/gdbstub/mips-stub.c b/c/src/lib/libbsp/mips/shared/gdbstub/mips-stub.c
index 494af262ac..16ff82f70b 100644
--- a/c/src/lib/libbsp/mips/shared/gdbstub/mips-stub.c
+++ b/c/src/lib/libbsp/mips/shared/gdbstub/mips-stub.c
@@ -1309,29 +1309,55 @@ static char initialized; /* 0 means we are not initialized */
void mips_gdb_stub_install(void)
{
- rtems_isr_entry old;
- int i;
-
- if (initialized) {
- ASSERT(0);
- return;
- }
-
- /* z0breaks */
- for (i=0; i<(sizeof(z0break_arr)/sizeof(z0break_arr[0]))-1; i++) {
- z0break_arr[i].next = &z0break_arr[i+1];
- }
-
- z0break_arr[i].next = NULL;
- z0break_avail = &z0break_arr[0];
- z0break_list = NULL;
-
+ /*
+ These are the RTEMS-defined vectors for all the MIPS exceptions
+ */
+ int exceptionVector[]= { MIPS_EXCEPTION_MOD, \
+ MIPS_EXCEPTION_TLBL, \
+ MIPS_EXCEPTION_TLBS, \
+ MIPS_EXCEPTION_ADEL, \
+ MIPS_EXCEPTION_ADES, \
+ MIPS_EXCEPTION_IBE, \
+ MIPS_EXCEPTION_DBE, \
+ MIPS_EXCEPTION_SYSCALL, \
+ MIPS_EXCEPTION_BREAK, \
+ MIPS_EXCEPTION_RI, \
+ MIPS_EXCEPTION_CPU, \
+ MIPS_EXCEPTION_OVERFLOW, \
+ MIPS_EXCEPTION_TRAP, \
+ MIPS_EXCEPTION_VCEI, \
+ MIPS_EXCEPTION_FPE, \
+ MIPS_EXCEPTION_C2E, \
+ MIPS_EXCEPTION_WATCH, \
+ MIPS_EXCEPTION_VCED, \
+ -1 };
+ int i;
+ rtems_isr_entry old;
+
+ if (initialized) {
+ ASSERT(0);
+ return;
+ }
+
+ /* z0breaks */
+ for (i=0; i<(sizeof(z0break_arr)/sizeof(z0break_arr[0]))-1; i++) {
+ z0break_arr[i].next = &z0break_arr[i+1];
+ }
+
+ z0break_arr[i].next = NULL;
+ z0break_avail = &z0break_arr[0];
+ z0break_list = NULL;
+
+
+ for(i=0; exceptionVector[i] > -1; i++)
+ {
+ rtems_interrupt_catch( (rtems_isr_entry) handle_exception, exceptionVector[i], &old );
+ }
+
+ initialized = 1;
+ /* get the attention of gdb */
+ mips_break(1);
+}
- rtems_interrupt_catch( (rtems_isr_entry) handle_exception, MIPS_EXCEPTION_SYSCALL, &old );
- /* rtems_interrupt_catch( handle_exception, MIPS_EXCEPTION_BREAK, &old ); */
- initialized = 1;
- /* get the attention of gdb */
- mips_break(1);
-}