diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-06-27 21:13:44 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-06-27 21:13:44 +0000 |
commit | 8fcb0c6a8f4ea51fba4bcff918c3f9808ee1de21 (patch) | |
tree | bdb6dba48531f08a5d441da67d20a8959184f290 | |
parent | 2002-06-25 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-8fcb0c6a8f4ea51fba4bcff918c3f9808ee1de21.tar.bz2 |
2002-06-25 Joel Sherrill <joel@OARcorp.com>
* Thomas Doerfler <Thomas.Doerfler@imd-systems.de> added m68k
support to the shared gdb stub glue necessitating a move up.
* ChangeLog, Makefile.am, .cvsignore: New file.
* rtems-stub-glue.c: Moved from mips/shared/gdbstub and
m68k/shared/gdbstub.
-rw-r--r-- | c/src/lib/libbsp/shared/gdbstub/.cvsignore | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/gdbstub/ChangeLog | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/gdbstub/Makefile.am | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c | 68 |
4 files changed, 84 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/shared/gdbstub/.cvsignore b/c/src/lib/libbsp/shared/gdbstub/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/c/src/lib/libbsp/shared/gdbstub/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/c/src/lib/libbsp/shared/gdbstub/ChangeLog b/c/src/lib/libbsp/shared/gdbstub/ChangeLog new file mode 100644 index 0000000000..62ee17b9b2 --- /dev/null +++ b/c/src/lib/libbsp/shared/gdbstub/ChangeLog @@ -0,0 +1,8 @@ +2002-06-25 Joel Sherrill <joel@OARcorp.com> + + * Thomas Doerfler <Thomas.Doerfler@imd-systems.de> added m68k + support to the shared gdb stub glue necessitating a move up. + * ChangeLog, Makefile.am, .cvsignore: New file. + * rtems-stub-glue.c: Moved from mips/shared/gdbstub and + m68k/shared/gdbstub. + diff --git a/c/src/lib/libbsp/shared/gdbstub/Makefile.am b/c/src/lib/libbsp/shared/gdbstub/Makefile.am new file mode 100644 index 0000000000..e20595f01e --- /dev/null +++ b/c/src/lib/libbsp/shared/gdbstub/Makefile.am @@ -0,0 +1,8 @@ +## +## $Id$ +## + + +EXTRA_DIST = rtems-stub-glue.c + +include $(top_srcdir)/../../../../automake/local.am diff --git a/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c b/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c index 8d17911abf..50c8d95757 100644 --- a/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c +++ b/c/src/lib/libbsp/shared/gdbstub/rtems-stub-glue.c @@ -371,9 +371,12 @@ int rtems_gdb_stub_get_thread_info( tmp_buf[8] = 0; strcat(info->display, tmp_buf); - +#if 0 name = *(unsigned32 *)(obj_info->local_table[thread]->name); - +#else + name = *(unsigned32 *)(obj_info->local_table[thread - + first_rtems_id + 1]->name); +#endif info->name[0] = (name >> 24) & 0xff; info->name[1] = (name >> 16) & 0xff; info->name[2] = (name >> 8) & 0xff; @@ -1406,6 +1409,67 @@ int rtems_gdb_stub_get_offsets( return 1; } +#elif defined(__mc68000__) + + +void rtems_gdb_stub_get_registers_from_context( + int *registers, + Thread_Control *th +) +{ + /* + * how about register D0/D1/A0/A1 + * they are located on thread stack ... + * -> they are not needed for context switch + */ + registers[D0] = 0; + registers[D1] = 0; + registers[D2] = (unsigned32)th->Registers.d2; + registers[D3] = (unsigned32)th->Registers.d3; + registers[D4] = (unsigned32)th->Registers.d4; + registers[D5] = (unsigned32)th->Registers.d5; + registers[D6] = (unsigned32)th->Registers.d6; + registers[D7] = (unsigned32)th->Registers.d7; + + registers[A0] = 0; + registers[A1] = 0; + registers[A2] = (unsigned32)th->Registers.a2; + registers[A3] = (unsigned32)th->Registers.a3; + registers[A4] = (unsigned32)th->Registers.a4; + registers[A5] = (unsigned32)th->Registers.a5; + registers[A6] = (unsigned32)th->Registers.a6; + registers[A7] = (unsigned32)th->Registers.a7_msp; + + registers[PS] = (unsigned32)th->Registers.sr; +#if 0 + registers[PC] = *(unsigned32 *)th->Registers.a7_msp; /* *SP = ret adr */ +#else + registers[PC] = (unsigned32)_CPU_Context_switch; +#endif +} + + +int rtems_gdb_stub_get_offsets( + unsigned char **text_addr, + unsigned char **data_addr, + unsigned char **bss_addr +) +{ +/* + extern unsigned32 _ftext; + extern unsigned32 _fdata; + extern unsigned32 _bss_start; + + *text_addr = &_ftext; + *data_addr = &_fdata; + *bss_addr = &_bss_start; +*/ + *text_addr = 0; + *data_addr = 0; + *bss_addr = 0; + return 1; +} + #else #error "rtems-gdb-stub.c: Unsupported CPU!" #endif |