summaryrefslogtreecommitdiff
path: root/firmware/debug.c
diff options
context:
space:
mode:
authorTomasz Malesinski <tomal@rockbox.org>2006-02-04 00:04:02 +0000
committerTomasz Malesinski <tomal@rockbox.org>2006-02-04 00:04:02 +0000
commitec7e97602695b7e4a49013b525d0bf7a0c8d13fc (patch)
treea8c60a04068b31614a60dfc89cc0194ef8f650b1 /firmware/debug.c
parent760fea9ac7b52aa83d88371fac7bf0027cf7fd43 (diff)
downloadrockbox-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.c31
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__