debugutils.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:6k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* debugutils.h - IXP425 Eval board configuration header */
  2. /* Copyright 2002 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01a,05jun02,jb  initial version...
  7. */
  8. /*
  9.  * This module contains Debug Macros for use in romInit.s 
  10.  * - Allow basic serial output - polled only.
  11.  *   Provide interface to 7 Seg display.
  12.  */
  13. /***** UART ****/
  14. #define DEBUG_UART  (1)  /* Enable Debug uart output */
  15. #define UART_REG_SPREAD (2)
  16. #define UART_DMABodgeDelay              10
  17. #define UARTLCR_DivisorLatchAccess (1<<7)
  18. #define UART_LineControl           (0x03  << UART_REG_SPREAD)
  19. #define BaudRateDivisor_115200     1
  20. #define BaudRateDivisor_9600       0x60
  21. #define UART_DivisorLatchLSB       ( 0x00 << UART_REG_SPREAD )
  22. #define UART_DivisorLatchMSB       ( 0x01 << UART_REG_SPREAD )
  23. #define UARTLCR_CharLength8        (3<<0)
  24. #define UARTLCR_StopBits1          (0<<2)
  25. #define UART_InterruptEnable       0x01
  26. #define UARTFCR_Enable            (1<<0)
  27. #define UART_FIFOControl           (0x02 << UART_REG_SPREAD )
  28. #define UARTFCR_RXReset            (1<<1)
  29. #define ARTFCR_TXReset             (1<<2)
  30. #define UARTFCR_Mode0RXRDYTXRDY    (0<<3)
  31. #define UARTFCR_RXTrigger1         (0<<6)
  32. #define UARTMCR_DTRActive          (1<<0)
  33. #define UART_ModemControl          (4 << UART_REG_SPREAD )
  34. #define UART_LineStatus            (5 << UART_REG_SPREAD )
  35. #define UART_Transmit              (0  << UART_REG_SPREAD )
  36. #define UARTLSR_TXHoldingEmpty     (1<<5)
  37. #ifdef _ASMLANGUAGE
  38. /*  For Loop - count down. */
  39. .MACRO DELAY cycles, reg0
  40. ldr reg0, =cycles
  41. subs reg0, reg0, #1
  42. subne pc,  pc, #0xc
  43. .ENDM 
  44. .MACRO MEMDUMP uart, addr, size, value, temp1, temp2
  45. 0:
  46. UARTHexOut uart, addr, temp1, temp2
  47. mov temp1, #0x3a
  48. UARTTx uart, temp1, temp2
  49. ldr value, [addr]
  50. UARTHexOut uart, value, temp1, temp2
  51. mov temp1, #13
  52. UARTTx uart, temp1, temp2
  53. mov temp1, #10
  54. UARTTx uart, temp1, temp2
  55. add addr, addr, #4
  56. subs size, size, #4
  57. bne 0b
  58. .ENDM
  59. .MACRO UARTHexOut uart, hex, dig, temp
  60. MOV dig, hex, LSR #28
  61. UARTHexDig uart, dig, temp
  62. MOV dig, hex, LSR #24
  63. UARTHexDig uart, dig, temp
  64. MOV dig, hex, LSR #20
  65. UARTHexDig uart, dig, temp
  66. MOV dig, hex, LSR #16
  67. UARTHexDig uart, dig, temp
  68. MOV dig, hex, LSR #12
  69. UARTHexDig uart, dig, temp
  70. MOV dig, hex, LSR #8
  71. UARTHexDig uart, dig, temp
  72. MOV dig, hex, LSR #4
  73. UARTHexDig uart, dig, temp
  74. MOV dig, hex
  75. UARTHexDig uart, dig, temp
  76. .ENDM
  77. .MACRO UARTHexDig uart, dig, temp
  78. and dig, dig, #0xf
  79. cmp dig, #0xa
  80. addcc dig, dig, #0x30
  81. addcs dig, dig, #0x41-0xa
  82. UARTTx uart, dig, temp
  83. .ENDM
  84. .MACRO UARTTextOut uart, char, temp
  85.         and     char, char, #0xff
  86.         UARTTx  uart, char, temp
  87. .ENDM  
  88. .MACRO UARTTx uart, char, temp
  89. 10:
  90.  /* Modified, dont even check if there is room in the transfer fifio, just put it it.. TODO :  remove later, on real card*/
  91. /* ldr uart, =IXP425_UART1_BASE
  92. ldr temp, [uart, #UART_LineStatus]
  93. TST temp, #UARTLSR_TXHoldingEmpty
  94. BEQ 10b
  95. */
  96. str char, [uart, #UART_Transmit] /*strb */
  97. .ENDM
  98. /******************************************* 
  99.  * 7 Seg Display output
  100.  *******************************************/
  101. .MACRO DebugOutInit
  102. ldr r0,L$CS2_REG
  103. ldr r1,L$CS2_VAL
  104. str r1,[r0]
  105. .ENDM
  106. .MACRO DebugOutInitLiteral
  107. L$CS2_REG: .long 0xc4000008
  108. L$CS2_VAL: .long 0xBFFF0002
  109. L$LED_DISPLAY: .long 0x52000000
  110. .ENDM
  111. .MACRO DebugOutVal value
  112. mov r0, #value
  113. bl FUNC(SevenSegDisplay)
  114. .ENDM
  115. /* Assume R0 already has the output code */
  116. .MACRO DebugOut
  117.     bl FUNC(SevenSegDisplay)
  118. .ENDM
  119. #endif /* _ASMLANGUAGE */
  120. #define DEBUG_OUT_INIT 
  121. #define DEBUG_OUT_VAL(x) 
  122. /* Error Code Fatal */
  123. /* Error code will add 0xFF also */
  124. #define ERROR_UNDEF_INSTR       0x00F1
  125. #define ERROR_SW_INT            0x00F2
  126. #define ERROR_PREFETCH_ABORT    0x00F3
  127. #define ERROR_DATA_ABORT        0x00F4
  128. #define ERROR_UNKNOWN_VEC       0x00F5
  129. #define ERROR_VEC_IRQ           0x00F6
  130. #define ERROR_VEC_FIQ           0x00F7
  131.  
  132. /* Informational codes - progress indicators */
  133. #define INFO_CODE_1                  (0x0001)
  134. #define INFO_CODE_2                  (0x0002)
  135. #define INFO_CODE_3                  (0x0003)
  136. #define INFO_CODE_4                  (0x0004)
  137. #define INFO_CODE_5                  (0x0005)
  138. #define INFO_CODE_6                  (0x0006)
  139. #define INFO_CODE_7                  (0x0007)
  140. #define INFO_CODE_8                  (0x0008)
  141. #define INFO_CODE_9                  (0x0009)
  142. #define INFO_CODE_A                  (0x000A)
  143. #define INFO_CODE_B                  (0x000B)
  144. #define INFO_CODE_C                  (0x000C)
  145. #define INFO_CODE_D                  (0x000D)
  146. #define INFO_CODE_E                  (0x000E)
  147. #define INFO_CODE_F                  (0x000F)
  148. #define INFO_CODE_10                 (0x0010)
  149. #define INFO_CODE_11                 (0x0011)
  150. #define INFO_CODE_12                 (0x0012)
  151. #define INFO_CODE_13                 (0x0013)
  152. #define INFO_CODE_14                 (0x0014)
  153. #define INFO_CODE_15                 (0x0015)
  154. #define INFO_CODE_16                 (0x0016)
  155. #define INFO_CODE_17                 (0x0017)
  156. #define INFO_CODE_18                 (0x0018)
  157. #define INFO_CODE_19                 (0x0019)
  158. #define INFO_CODE_1A                 (0x001A)
  159. #define INFO_CODE_1B                 (0x001B)
  160. #define INFO_CODE_1C                 (0x001C)
  161. #define INFO_CODE_1D                 (0x001D)
  162. #define INFO_CODE_1E                 (0x001E)
  163. #define INFO_CODE_1F                 (0x001F)
  164. #define INFO_CODE_20                 (0x0020)
  165. #define INFO_CODE_21                 (0x0021)
  166. #define INFO_CODE_22                 (0x0022)
  167. #define INFO_CODE_23                 (0x0023)
  168. #define INFO_CODE_24                 (0x0024)
  169. #define INFO_CODE_25                 (0x0025)
  170. #define INFO_CODE_26                 (0x0026)
  171. #define INFO_CODE_27                 (0x0027)