diff options
| author | Tomasz Malesinski <tomal@rockbox.org> | 2006-02-04 00:04:02 +0000 |
|---|---|---|
| committer | Tomasz Malesinski <tomal@rockbox.org> | 2006-02-04 00:04:02 +0000 |
| commit | ec7e97602695b7e4a49013b525d0bf7a0c8d13fc (patch) | |
| tree | a8c60a04068b31614a60dfc89cc0194ef8f650b1 /firmware/debug.c | |
| parent | 760fea9ac7b52aa83d88371fac7bf0027cf7fd43 (diff) | |
| download | rockbox-ec7e97602695b7e4a49013b525d0bf7a0c8d13fc.zip rockbox-ec7e97602695b7e4a49013b525d0bf7a0c8d13fc.tar.gz rockbox-ec7e97602695b7e4a49013b525d0bf7a0c8d13fc.tar.bz2 rockbox-ec7e97602695b7e4a49013b525d0bf7a0c8d13fc.tar.xz | |
Added GDB API - a way to call stub procedures from a DEBUG build.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8561 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/debug.c')
| -rw-r--r-- | firmware/debug.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/firmware/debug.c b/firmware/debug.c index ba19a96..4031ba4 100644 --- a/firmware/debug.c +++ b/firmware/debug.c @@ -22,6 +22,9 @@ #include <stdarg.h> #include "config.h" #include "cpu.h" +#ifdef HAVE_GDB_API +#include "gdb_api.h" +#endif #ifdef DEBUG static char debugmembuf[200]; @@ -196,6 +199,34 @@ static void debug(const char *msg) putpacket(debugbuf); } #endif /* SH7034 */ + +#ifdef 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() +{ +} + +#endif /* HAVE_GDB_API */ #endif /* end of DEBUG section */ #ifdef __GNUC__ |