summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTC Wan2011-01-10 11:04:56 +0800
committerTC Wan2011-01-10 11:04:56 +0800
commit04bcd43cc867d17c413ece244c1eb28390c6b487 (patch)
treec84280ce12a69a42793451aade5aa37cbd72b355
parent2a77412eecbc3db05db3d91d8d2d99e1bf992a85 (diff)
added manual breakpoint test routines to simplify testing of debugger logic
-rw-r--r--Debugger/debug_test.S50
-rw-r--r--Debugger/debug_test.h35
2 files changed, 85 insertions, 0 deletions
diff --git a/Debugger/debug_test.S b/Debugger/debug_test.S
new file mode 100644
index 0000000..46c7e03
--- /dev/null
+++ b/Debugger/debug_test.S
@@ -0,0 +1,50 @@
+/** @file debug_test.S
+ * @brief Test Routines to trigger ARM and Thumb Manual Breakpoints
+ *
+ */
+
+/* Copyright (C) 2007-2011 the NxOS developers
+ *
+ * Module Developed by: TC Wan <tcwan@cs.usm.my>
+ *
+ * See AUTHORS for a full list of the developers.
+ *
+ * See COPYING for redistribution license
+ *
+ */
+#define __ASSEMBLY__
+#include "debug_stub.h"
+
+.text
+.align 4
+.code 32
+
+/**********************************************
+ * dbg__test_arm_bkpt Test Routine
+ *
+ */
+ .global dbg__test_arm_bkpt
+dbg__test_arm_bkpt:
+ stmfd sp!,{lr}
+ dbg__bkpt_arm /* Trigger ARM Manual Breakpoint */
+ ldmfd sp!,{pc}
+
+/**********************************************
+ * dbg__test_thumb_bkpt Test Routine
+ *
+ */
+ .global dbg__test_thumb_bkpt
+dbg__test_thumb_bkpt:
+ stmfd sp!,{lr}
+ ldr r0, =_thumb_entry
+ orr r0, r0, #1 /* set Thumb mode */
+ mov lr, pc
+ bx r0
+ ldmfd sp!,{pc}
+
+.code 16
+_thumb_entry:
+ dbg__bkpt_thumb
+ bx lr
+
+.end
diff --git a/Debugger/debug_test.h b/Debugger/debug_test.h
new file mode 100644
index 0000000..6680f58
--- /dev/null
+++ b/Debugger/debug_test.h
@@ -0,0 +1,35 @@
+/** @file debug_test.h
+ * @brief C header file for debugger test routines
+ *
+ */
+
+/* Copyright (C) 2007-2010 the NxOS developers
+ *
+ * Module Developed by: TC Wan <tcwan@cs.usm.my>
+ *
+ * See AUTHORS for a full list of the developers.
+ *
+ * See COPYING for redistribution license
+ *
+ */
+
+#ifndef __DEBUG_TEST_H__
+#define __DEBUG_TEST_H__
+
+#include "_c_arm_macros.h"
+
+#ifndef __ASSEMBLY__
+
+/* Define C stuff */
+/** @defgroup debug_public */
+/*@{*/
+
+FUNCDEF void dbg__test_arm_bkpt(void);
+FUNCDEF void dbg__test_thumb_bkpt(void);
+
+ /*@}*/
+
+#endif
+
+
+#endif /* __DEBUG_TEST_H__ */