⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debugutils.h

📁 INTEL IXP425的VXWORKS BSP
💻 H
字号:
/* debugutils.h - IXP425 Eval board configuration header *//* Copyright 2002 Wind River Systems, Inc. *//*modification history--------------------01b,27feb03,jb3  add C++ protection01a,05jun02,jb  initial version...*//* * This module contains Debug Macros for use in romInit.s  * - Allow basic serial output - polled only. *   Provide interface to 7 Seg display. */#ifdef __cplusplusextern "C" {#endif/***** UART ****/#define DEBUG_UART 			(1)  /* Enable Debug uart output */#define UART_REG_SPREAD (2)#define UART_DMABodgeDelay              10#define UARTLCR_DivisorLatchAccess (1<<7)#define UART_LineControl           (0x03  << UART_REG_SPREAD)#define BaudRateDivisor_115200     1#define BaudRateDivisor_9600       0x60#define UART_DivisorLatchLSB       ( 0x00 << UART_REG_SPREAD )#define UART_DivisorLatchMSB       ( 0x01 << UART_REG_SPREAD )#define UARTLCR_CharLength8        (3<<0)#define UARTLCR_StopBits1          (0<<2)#define UART_InterruptEnable       0x01#define UARTFCR_Enable	           (1<<0)#define UART_FIFOControl           (0x02 << UART_REG_SPREAD )#define UARTFCR_RXReset            (1<<1)#define ARTFCR_TXReset             (1<<2)#define UARTFCR_Mode0RXRDYTXRDY    (0<<3)#define UARTFCR_RXTrigger1         (0<<6)#define UARTMCR_DTRActive          (1<<0)#define UART_ModemControl          (4 << UART_REG_SPREAD )#define UART_LineStatus            (5 << UART_REG_SPREAD )#define UART_Transmit              (0  << UART_REG_SPREAD )#define UARTLSR_TXHoldingEmpty     (1<<5)#ifdef _ASMLANGUAGE/*  For Loop - count down. */.MACRO DELAY	cycles, reg0	ldr	\reg0, =\cycles	subs	\reg0, \reg0, #1	subne	pc,  pc, #0xc.ENDM 	.MACRO MEMDUMP uart, addr, size, value, temp1, temp20:		UARTHexOut	\uart, \addr, \temp1, \temp2	mov		\temp1, #0x3a	UARTTx		\uart, \temp1, \temp2	ldr		\value, [\addr]	UARTHexOut	\uart, \value, \temp1, \temp2	mov		\temp1, #13	UARTTx		\uart, \temp1, \temp2	mov		\temp1, #10	UARTTx		\uart, \temp1, \temp2			add		\addr, \addr, #4	subs		\size, \size, #4	bne		0b.ENDM				.MACRO UARTHexOut uart, hex, dig, temp	MOV	\dig, \hex, LSR #28	UARTHexDig \uart, \dig, \temp	MOV	\dig, \hex, LSR #24	UARTHexDig \uart, \dig, \temp	MOV	\dig, \hex, LSR #20	UARTHexDig \uart, \dig, \temp	MOV	\dig, \hex, LSR #16	UARTHexDig \uart, \dig, \temp	MOV	\dig, \hex, LSR #12	UARTHexDig \uart, \dig, \temp	MOV	\dig, \hex, LSR #8	UARTHexDig \uart, \dig, \temp	MOV	\dig, \hex, LSR #4	UARTHexDig \uart, \dig, \temp	MOV	\dig, \hex	UARTHexDig \uart, \dig, \temp.ENDM		.MACRO UARTHexDig uart, dig, temp	and	\dig, \dig, #0xf	cmp	\dig, #0xa	addcc	\dig, \dig, #0x30	addcs	\dig, \dig, #0x41-0xa	UARTTx	\uart, \dig, \temp.ENDM		.MACRO UARTTextOut uart, char, temp        and     \char, \char, #0xff        UARTTx  \uart, \char, \temp.ENDM  .MACRO UARTTx uart, char, temp10: /* Modified, dont even check if there is room in the transfer fifio, just put it it.. TODO :  remove later, on real card*//*	ldr	\uart, =IXP425_UART1_BASE	ldr	\temp, [\uart, #UART_LineStatus]	TST	\temp, #UARTLSR_TXHoldingEmpty	BEQ	10b*/	str	\char, [\uart, #UART_Transmit] /*strb */.ENDM/*******************************************  * 7 Seg Display output *******************************************/.MACRO DebugOutInit	ldr		r0,L$CS2_REG	ldr		r1,L$CS2_VAL	str		r1,[r0].ENDM.MACRO DebugOutInitLiteralL$CS2_REG: .long 0xc4000008L$CS2_VAL: .long 0xBFFF0002L$LED_DISPLAY: .long 0x52000000.ENDM.MACRO DebugOutVal	value	mov		r0, #\value	bl		FUNC(SevenSegDisplay).ENDM/* Assume R0 already has the output code */.MACRO DebugOut    bl FUNC(SevenSegDisplay).ENDM#endif /* _ASMLANGUAGE */#define DEBUG_OUT_INIT *((UINT32*)IXP425_EXP_CS2_REG)=(0xBFFF0002)#define DEBUG_OUT_VAL(x) *((UINT16*)MATACUMBE_7SEG_BASE)=((UINT16)x)/* Error Code Fatal *//* Error code will add 0xFF also */#define ERROR_UNDEF_INSTR       0x00F1#define ERROR_SW_INT            0x00F2#define ERROR_PREFETCH_ABORT    0x00F3#define ERROR_DATA_ABORT        0x00F4#define ERROR_UNKNOWN_VEC       0x00F5#define ERROR_VEC_IRQ           0x00F6#define ERROR_VEC_FIQ           0x00F7 /* Informational codes - progress indicators */#define INFO_CODE_1                  (0x0001)#define INFO_CODE_2                  (0x0002)#define INFO_CODE_3                  (0x0003)#define INFO_CODE_4                  (0x0004)#define INFO_CODE_5                  (0x0005)#define INFO_CODE_6                  (0x0006)#define INFO_CODE_7                  (0x0007)#define INFO_CODE_8                  (0x0008)#define INFO_CODE_9                  (0x0009)#define INFO_CODE_A                  (0x000A)#define INFO_CODE_B                  (0x000B)#define INFO_CODE_C                  (0x000C)#define INFO_CODE_D                  (0x000D)#define INFO_CODE_E                  (0x000E)#define INFO_CODE_F                  (0x000F)#define INFO_CODE_10                 (0x0010)#define INFO_CODE_11                 (0x0011)#define INFO_CODE_12                 (0x0012)#define INFO_CODE_13                 (0x0013)#define INFO_CODE_14                 (0x0014)#define INFO_CODE_15                 (0x0015)#define INFO_CODE_16                 (0x0016)#define INFO_CODE_17                 (0x0017)#define INFO_CODE_18                 (0x0018)#define INFO_CODE_19                 (0x0019)#define INFO_CODE_1A                 (0x001A)#define INFO_CODE_1B                 (0x001B)#define INFO_CODE_1C                 (0x001C)#define INFO_CODE_1D                 (0x001D)#define INFO_CODE_1E                 (0x001E)#define INFO_CODE_1F                 (0x001F)#define INFO_CODE_20                 (0x0020)#define INFO_CODE_21                 (0x0021)#define INFO_CODE_22                 (0x0022)#define INFO_CODE_23                 (0x0023)#define INFO_CODE_24                 (0x0024)#define INFO_CODE_25                 (0x0025)#define INFO_CODE_26                 (0x0026)#define INFO_CODE_27                 (0x0027)#ifdef __cplusplus}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -