summaryrefslogtreecommitdiff
path: root/firmware/debug.c
diff options
context:
space:
mode:
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 ba19a9616a..4031ba432d 100644
--- a/firmware/debug.c
+++ b/firmware/debug.c
@@ -22,6 +22,9 @@
22#include <stdarg.h> 22#include <stdarg.h>
23#include "config.h" 23#include "config.h"
24#include "cpu.h" 24#include "cpu.h"
25#ifdef HAVE_GDB_API
26#include "gdb_api.h"
27#endif
25 28
26#ifdef DEBUG 29#ifdef DEBUG
27static char debugmembuf[200]; 30static char debugmembuf[200];
@@ -196,6 +199,34 @@ static void debug(const char *msg)
196 putpacket(debugbuf); 199 putpacket(debugbuf);
197} 200}
198#endif /* SH7034 */ 201#endif /* SH7034 */
202
203#ifdef HAVE_GDB_API
204static void *get_api_function(int n)
205{
206 struct gdb_api *api = (struct gdb_api *)GDB_API_ADDRESS;
207 if (api->magic == GDB_API_MAGIC)
208 return api->func[n];
209 else
210 return NULL;
211}
212
213void breakpoint(void)
214{
215 void (*f)(void) = get_api_function(0);
216 if (f) (*f)();
217}
218
219static void debug(char *msg)
220{
221 void (*f)(char *) = get_api_function(1);
222 if (f) (*f)(msg);
223}
224
225void debug_init()
226{
227}
228
229#endif /* HAVE_GDB_API */
199#endif /* end of DEBUG section */ 230#endif /* end of DEBUG section */
200 231
201#ifdef __GNUC__ 232#ifdef __GNUC__