From 04bcd43cc867d17c413ece244c1eb28390c6b487 Mon Sep 17 00:00:00 2001 From: TC Wan Date: Mon, 10 Jan 2011 11:04:56 +0800 Subject: added manual breakpoint test routines to simplify testing of debugger logic --- Debugger/debug_test.S | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ Debugger/debug_test.h | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 Debugger/debug_test.S create mode 100644 Debugger/debug_test.h 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 + * + * 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 + * + * 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__ */ -- cgit v1.2.3