aboutsummaryrefslogtreecommitdiff
path: root/AT91SAM7S256/armdebug/Debugger/debug_stub.h
diff options
context:
space:
mode:
authorTat-Chee Wan (USM)2011-03-30 10:10:46 +0800
committerTat-Chee Wan (USM)2011-03-30 10:10:46 +0800
commit5fdfaa83874590fcd9082659a55abd5dcca05c4f (patch)
tree321419a1b77cc53580ff44fdfd68d044e63df691 /AT91SAM7S256/armdebug/Debugger/debug_stub.h
parent953c08633b8d04899c53bc4618c4d50279b27cbd (diff)
parent0451f85157573f18d9959098f83b67336966a0e1 (diff)
Merge branch 'master' of ssh://svc.cs.usm.my/~/gitrepo-bare/armdebug
Diffstat (limited to 'AT91SAM7S256/armdebug/Debugger/debug_stub.h')
-rw-r--r--AT91SAM7S256/armdebug/Debugger/debug_stub.h262
1 files changed, 7 insertions, 255 deletions
diff --git a/AT91SAM7S256/armdebug/Debugger/debug_stub.h b/AT91SAM7S256/armdebug/Debugger/debug_stub.h
index a69efd3..931aa68 100644
--- a/AT91SAM7S256/armdebug/Debugger/debug_stub.h
+++ b/AT91SAM7S256/armdebug/Debugger/debug_stub.h
@@ -18,186 +18,6 @@
#include "_c_arm_macros.h"
-
-/** @addtogroup debugger */
-/*@{*/
-
-
-/* Declarations go here. */
-/** @name Debug Message Constants.
- *
- * Debug Message Values
- */
-/*@{*/
-
-/*
- * USB Buffer Sizes: Ctrl Intr Iso Bulk
- * Full Speed Device 64 64 1023 64
- * High Speed Device 64 1024 1024 512
- */
-
-#define USB_BUFSIZE 64 /* USB Buffer size for AT91SAM7S */
-
-#define USB_NXT_TELEGRAMTYPE_OFFSET 0 /* NXT Direct Command/Response Header */
-#define USB_NXT_SEGNUM_OFFSET 1
-#define USB_NXT_TELEGRAMSIZE_OFFSET 2
-
-#define USB_NXT_TELEGRAMTYPE 0x8d /* GDB debugger specific, no Response required */
-
-#define USB_GDBMSG_START 3 /* Offset into USB Telegram buffer */
-
-#define MSG_NUMSEGMENTS 3 /* For packet transfers */
-#define MSG_SEGMENTSIZE (USB_BUFSIZE - USB_GDBMSG_START) /* 61 bytes per segment */
-#define MSGBUF_SIZE (MSG_SEGMENTSIZE*MSG_NUMSEGMENTS) /* Debug Message Buffer Size, 61 x 3 = 183 chars = ~80 bytes of actual data */
-#define MSGBUF_CHKSUMOFFSET 3 /* to be subtracted from message length */
-#define MSGBUF_IN_OVERHEADLEN 5 /* For calculating max message data length (exclude ASCIIZ char) */
-#define MSGBUF_OUT_OVERHEADLEN 5 /* For calculating max message data length (exclude ASCIIZ char) */
-
-#define MSGBUF_CTRLC 0x03 /* For Out of Band Signaling: not implemented yet */
-#define MSGBUF_STARTCHAR '$'
-#define MSGBUF_ACKCHAR '+'
-#define MSGBUF_NAKCHAR '-'
-#define MSGBUF_ERRCHAR 'E'
-#define MSGBUF_SIGCHAR 'S'
-#define MSGBUF_SETCHAR '='
-#define MSGBUF_CHKSUMCHAR '#'
-#define MSGBUF_SEPCHAR ','
-#define MSGBUF_ARGCHAR ':'
-#define MSGBUF_MSGERROR -1
-/*@}*/
-
-/** @name Debug Command Lookup Constants.
- *
- * Debug Command Lookup
- */
-/*@{*/
-
-#define CMDINDEX_OUTOFRANGE -1
-/*@}*/
-
-/** @name Debug Register Command Constants.
- *
- * Debug Register Command
- */
-/*@{*/
-#define CMD_REG_NUMREGS 17
-#define CMD_REG_GETONE_MINPARAMLEN 1
-#define CMD_REG_GETONE_MAXPARAMLEN 2
-#define CMD_REG_GETALL_PARAMLEN 0
-#define CMD_REG_REGPARAMLEN 8 /* 32-bit ASCII Hex Value */
-#define CMD_REG_SETONE_MINPARAMLEN (2 + CMD_REG_REGPARAMLEN)
-#define CMD_REG_SETONE_MAXPARAMLEN (3 + CMD_REG_REGPARAMLEN)
-#define CMD_REG_SETALL_PARAMLEN (CMD_REG_NUMREGS*CMD_REG_REGPARAMLEN)
-/*@}*/
-
-/** @name Debug Memory Command Constants.
- *
- * Debug Memory Command
- * FIXME: These limits are not enforced by the GDB client, it truncates addresses and lengths to remove leading '0's
- * The PARAMLEN constants would probably be removed
- */
-/*@{*/
-#define CMD_NUMITEMS_PARAMLEN 4 /* 16-bit ASCII Hex Value */
-#define CMD_MEM_READ_PARAMLEN (CMD_REG_REGPARAMLEN + CMD_NUMITEMS_PARAMLEN + 1) /* Address length is equivalent to reg param len */
-#define CMD_MEM_WRITE_MINPARAMLEN (CMD_REG_REGPARAMLEN + CMD_NUMITEMS_PARAMLEN + 2) /* Address length is equivalent to reg param len */
-#define CMD_MEM_SEPCHAR_OFFSET CMD_REG_REGPARAMLEN /* Address length is equivalent to reg param len */
-#define CMD_MEM_MAXOUTBUFLEN (MSGBUF_SIZE - MSGBUF_OUT_OVERHEADLEN)
-#define CMD_MEM_MAXREADBYTES (CMD_MEM_MAXOUTBUFLEN/2)
-#define CMD_MEM_MAXINBUFLEN (MSGBUF_SIZE - MSGBUF_IN_OVERHEADLEN)
-#define CMD_MEM_MAXWRITEBYTES ((CMD_MEM_MAXINBUFLEN - CMD_MEM_WRITE_MINPARAMLEN)/2)
-/*@}*/
-
-/** @name Debug Continue Command Constants.
- *
- * Debug Continue Command
- */
-/*@{*/
-#define CMD_REG_CONTINUE_PARAMLEN 0
-/*@}*/
-
-
-
-/** @name Debug Breakpoint Command Constants.
- *
- * Debug Breakpoint Command
- */
-/*@{*/
-
-#define CMD_BKPT_INSERT_PARAMLEN 12
-#define CMD_BKPT_REMOVE_PARAMLEN 12
-
-
-#define CMD_BKPT_TYPE_BREAK_MEMORY 0
-#define CMD_BKPT_TYPE_BREAK_HARD 1 /* Not supported */
-#define CMD_BKPT_TYPE_WATCH_WRITE 2 /* Not supported (yet) */
-#define CMD_BKPT_TYPE_WATCH_READ 3 /* Not supported (yet) */
-#define CMD_BKPT_TYPE_WATCH_ACCESS 4 /* Not supported (yet) */
-
-#define CMD_BKPT_KIND_THUMB 2
-#define CMD_BKPT_KIND_THUMB2 3 /* Not supported */
-#define CMD_BKPT_KIND_ARM 4
-
-#define CMD_BKPT_NOTFOUND -1
-
-/*@}*/
-
-/** @name Debug Stack Constants.
- *
- * Debug Stack Manipulation Values
- */
-/*@{*/
-#define DBGSTACK_NEXTINSTR_INDEX 0 /* Next Instruction Address is at index 0 from bottom of Debug Stack */
-#define DBGSTACK_USERCPSR_INDEX 1 /* User CPSR (SPSR_UNDEF) is at index 1 from bottom of Debug Stack */
-#define DBGSTACK_USERREG_INDEX 2 /* R0 starts at index 2 from bottom of Debug Stack */
-#define DBGSTACK_USERSP_INDEX (DBGSTACK_USERREG_INDEX + REG_SP) /* SP is R13 */
-#define DBGSTACK_USERLR_INDEX (DBGSTACK_USERREG_INDEX + REG_LR) /* LR is R14 */
-#define DBGSTACK_USERPC_INDEX (DBGSTACK_USERREG_INDEX + REG_PC) /* PC is R15 */
-/*@}*/
-
-/** @name Bitmask Definitions.
- *
- * Various Bitmasks used for data manipulation.
- */
-/*@{*/
-#define BKPT_STATE_THUMB_FLAG 0x01 /* Flag Thumb Breakpoint */
-#define ASCII_LOWER2UPPER_MASK 0x20 /* ASCII Conversion bitmask */
-#define NIBBLE0 0x0000000F /* Nibble 0 word(3:0) */
-#define NIBBLE1 0x000000F0 /* Nibble 1 word(7:4) */
-#define NIBBLE2 0x00000F00 /* Nibble 2 word(11:8) */
-#define NIBBLE3 0x0000F000 /* Nibble 3 word(15:12) */
-#define NIBBLE4 0x000F0000 /* Nibble 4 word(19:16) */
-#define NIBBLE5 0x00F00000 /* Nibble 5 word(23:20) */
-#define NIBBLE6 0x0F000000 /* Nibble 6 word(27:24) */
-#define NIBBLE7 0xF0000000 /* Nibble 7 word(31:28) */
-#define BYTE0 0x000000FF /* Byte 0 word(7:0) */
-#define BYTE1 0x0000FF00 /* Byte 1 word(15:8) */
-#define BYTE2 0x00FF0000 /* Byte 2 word(23:16) */
-#define BYTE3 0xFF000000 /* Byte 3 word(31:24) */
-#define HLFWRD0 0x0000FFFF /* Halfword 0 word(15:0) */
-#define HLFWRD1 0xFFFF0000 /* Halfword 0 word(31:16) */
-/*@}*/
-
-/** @name CPSR Bit Definitions.
- *
- * Various Bit definitions for accessing the CPSR register.
- */
-/*@{*/
-#define CPSR_THUMB 0x00000020
-#define CPSR_FIQ 0x00000040
-#define CPSR_IRQ 0x00000080
-#define CPSR_MODE 0x0000001F
-
-/* ARM Exception Modes */
-#define MODE_USR 0x10 /* User mode */
-#define MODE_FIQ 0x11 /* FIQ mode */
-#define MODE_IRQ 0x12 /* IRQ mode */
-#define MODE_SVC 0x13 /* Supervisor mode */
-#define MODE_ABT 0x17 /* Abort mode */
-#define MODE_UND 0x1B /* Undefined mode */
-#define MODE_SYS 0x1F /* System mode */
-
-/*@}*/
-
/** @name BKPT suppport constants
*
* ARM and Thumb Breakpoint Instructions.
@@ -213,84 +33,16 @@
#define BKPT32_INSTR 0xE1200070 /* ARM BKPT instruction, will work in ARMv5T and above */
#endif
-#define BKPT32_ENUM_MASK 0x000FFF0F /* ARM BKPT Enum Mask */
-#define BKPT32_AUTO_BKPT 0x00080000 /* ARM BKPT Auto-Step Flag (for CONT support) */
-#define BKPT32_MANUAL_BKPT 0x0007FF0F /* Manually inserted ARM Breakpoint */
+#define BKPT32_ENUM_MASK 0x000FFF0F /* ARM BKPT Enum Mask */
+#define BKPT32_AUTO_BKPT 0x00080000 /* ARM BKPT Auto-Step Flag (for CONT support) */
+#define BKPT32_MANUAL_BKPT 0x0007FF0F /* Manually inserted ARM Breakpoint */
-#define BKPT16_INSTR 0xBE00 /* Thumb BKPT instruction */
-#define BKPT16_ENUM_MASK 0x00FF /* Thumb BKPT Enum Mask */
-#define BKPT16_AUTO_BKPT 0x0080 /* Thumb BKPT Auto-Step Flag (for CONT support) */
-#define BKPT16_MANUAL_BKPT 0x007F /* Manually inserted Thumb Breakpoint */
+#define BKPT16_INSTR 0xBE00 /* Thumb BKPT instruction */
+#define BKPT16_ENUM_MASK 0x00FF /* Thumb BKPT Enum Mask */
+#define BKPT16_AUTO_BKPT 0x0080 /* Thumb BKPT Auto-Step Flag (for CONT support) */
+#define BKPT16_MANUAL_BKPT 0x007F /* Manually inserted Thumb Breakpoint */
/*@}*/
-/** Debugger State Enums
- *
- * Debugger State.
- * The enums must be consecutive, starting from 0
- */
-ENUM_BEGIN
-ENUM_VALASSIGN(DBG_RESET, 0) /**< Initial State. */
-ENUM_VAL(DBG_INIT) /**< Debugger Initialized. */
-ENUM_VAL(DBG_CONFIGURED) /**< Debugger has been configured by GDB Server */
-ENUM_END(dbg_state_t)
-
-/** Breakpoint Type Enums
- *
- * Breakpoint Type.
- * The enums must be consecutive, starting from 0
- */
-ENUM_BEGIN
-ENUM_VALASSIGN(DBG_AUTO_BKPT,0) /**< Auto Thumb Breakpoint (Instruction resume after breakpoint). */
-ENUM_VAL(DBG_MANUAL_BKPT_ARM) /**< Manual ARM Breakpoint. */
-ENUM_VAL(DBG_NORMAL_BKPT_ARM) /**< Normal ARM Breakpoint (Single Step, Normal). */
-ENUM_VAL(DBG_MANUAL_BKPT_THUMB) /**< Manual Thumb Breakpoint. */
-ENUM_VAL(DBG_NORMAL_BKPT_THUMB) /**< Normal Thumb Breakpoint (Single Step, Normal). */
-ENUM_END(bkpt_type_t)
-
-/** Debugger Message Error Enums
- *
- * Debugger Error Message Enums.
- * The enums must be consecutive, starting from 1
- */
-/* FIXME: Need to validate against the ecos-generic-stub.c Error enums */
-ENUM_BEGIN
-ENUM_VALASSIGN(MSG_ERRIMPL, 0) /**< Stub (not implemented) Error. */
-ENUM_VAL(MSG_ERRINLENGTH) /**< Message Write Length Error. */
-ENUM_VAL(MSG_ERROUTLENGTH) /**< Message Read Length Error. */
-ENUM_VAL(MSG_ERRFORMAT) /**< Message Format Error. */
-ENUM_VAL(MSG_UNKNOWNCMD) /**< Unrecognized Command Error. */
-ENUM_VAL(MSG_UNKNOWNPARAM) /**< Unrecognized Parameter Error. */
-ENUM_VAL(MSG_UNKNOWNBRKPT) /**< Unrecognized Breakpoint Error. */
-ENUM_END(dbg_msg_errno)
-
-/** Register Enums
- *
- * Register Enums.
- * Refer to eCOS's arm_stub.h for enum values
- */
-ENUM_BEGIN
-ENUM_VALASSIGN(REG_R0, 0) /**< User Reg R0 */
-ENUM_VAL(REG_R1) /**< User Reg R1 */
-ENUM_VAL(REG_R2) /**< User Reg R2 */
-ENUM_VAL(REG_R3) /**< User Reg R3 */
-ENUM_VAL(REG_R4) /**< User Reg R4 */
-ENUM_VAL(REG_R5) /**< User Reg R5 */
-ENUM_VAL(REG_R6) /**< User Reg R6 */
-ENUM_VAL(REG_R7) /**< User Reg R7 */
-ENUM_VAL(REG_R8) /**< User Reg R8 */
-ENUM_VAL(REG_R9) /**< User Reg R9 */
-ENUM_VAL(REG_R10) /**< User Reg R10 */
-ENUM_VAL(REG_R11) /**< User Reg R11 */
-ENUM_VAL(REG_R12) /**< User Reg R12 */
-ENUM_VAL(REG_SP) /**< Previous Mode SP (R13) */
-ENUM_VAL(REG_LR) /**< Previous Mode LR (R14) */
-ENUM_VAL(REG_PC) /**< Program Counter (R15) */
-ENUM_VALASSIGN(REG_FPSCR, 24) /**< Previous Mode FPSCR (dummy) */
-ENUM_VAL(REG_CPSR) /**< Previous Mode CPSR */
-
-ENUM_END(register_enum_t)
-
-
#ifndef __ASSEMBLY__
/* Define C stuff */