excArmLib.h
资源名称:ixp425BSP.rar [点击查看]
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:2k
源码类别:
VxWorks
开发平台:
C/C++
- /* excArmLib.h - ARM exception library header file */
- /* Copyright 1996-1997 Wind River Systems, Inc. */
- /*
- modification history
- --------------------
- 01b,23jul01,scm change XScale name to conform to coding standards...
- 01a,11dec00,scm replace references to ARMSA2 with XScale
- 01c,16oct00,scm reverse back I & F bits for SA2
- 01b,15sep00,scm update for SA2 support...
- 01a,09may96,cdp created
- */
- #ifndef __INCexcArmLibh
- #define __INCexcArmLibh
- #ifdef __cplusplus
- extern "C" {
- #endif
- #ifndef _ASMLANGUAGE
- /*
- * NOTE: if this structure changes, the TCB offsets in h/private/taskLibP.h
- * must be updated. See also taskLib.h.
- */
- typedef struct
- {
- UINT32 valid; /* indicators that following fields are valid */
- UINT32 vecAddr; /* exception vector address */
- INSTR * pc; /* PC */
- UINT32 cpsr; /* CPSR */
- } EXC_INFO;
- extern FUNCPTR excExcepHook; /* add'l rtn to call when exceptions occur */
- extern VOIDFUNCPTR _func_excBreakpoint; /* called to handle breakpoints */
- #if defined(__STDC__) || defined(__cplusplus)
- extern STATUS excIntConnect (VOIDFUNCPTR *, VOIDFUNCPTR);
- extern void excVecSet (FUNCPTR *, FUNCPTR);
- extern FUNCPTR excVecGet (FUNCPTR *);
- #else /* __STDC__ */
- extern STATUS excIntConnect ();
- extern void excVecSet ();
- extern FUNCPTR excVecGet ();
- #endif /* __STDC__ */
- #endif /* ASMLANGUAGE */
- /* exception information valid bits */
- #define EXC_INFO_VECADDR 0x01 /* vector is valid */
- #define EXC_INFO_PC 0x02 /* PC is valid */
- #define EXC_INFO_CPSR 0x04 /* CPSR is valid */
- /* exception vector addresses */
- #define EXC_OFF_RESET 0x00 /* reset */
- #define EXC_OFF_UNDEF 0x04 /* undefined instruction */
- #define EXC_OFF_SWI 0x08 /* software interrupt */
- #define EXC_OFF_PREFETCH 0x0c /* prefetch abort */
- #define EXC_OFF_DATA 0x10 /* data abort */
- #define EXC_OFF_IRQ 0x18 /* interrupt */
- #define EXC_OFF_FIQ 0x1C /* fast interrupt */
- /* Exception Vector Base */
- #define ARM_EXC_VEC_BASE 0x00
- /*
- * In coyanosa I80310 the default vector base is 0x00,
- * can be relocated into 0xFFFF0000
- *
- */
- #if ((CPU==XSCALE) || (CPU==ARMSA110))
- #define ARM_EXC_VEC_BASE_RELOCATED 0xffff0000
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* __INCexcArmLibh */