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

📄 exceptions.c

📁 ucos-ii 的完整代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
*********************************************************************************************************
*                               MCF51QE Exception Vector Table
*
* File Name  : vectors.c
* Version    : 1.0
* Date       : November 2, 2007
* Programmer : Eric Shufro
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*	                            INCLUDES
*********************************************************************************************************
*/

#include "derivative.h"
#include "exceptions.h"
#include "startcf.h"

/*
*********************************************************************************************************
*	                            CONSTANTS
*********************************************************************************************************
*/

#define  MCF5XXX_RD_SF_FORMAT(PTR)                ((*((unsigned short *)(PTR)) >> 12) & 0x00FF)
#define  MCF5XXX_RD_SF_VECTOR(PTR)                ((*((unsigned short *)(PTR)) >>  2) & 0x00FF)
#define  MCF5XXX_RD_SF_FS(PTR)                  ( ((*((unsigned short *)(PTR)) & 0x0C00) >> 8) | (*((unsigned short *)(PTR)) & 0x0003) )
#define  MCF5XXX_SF_SR(PTR)                         *(((unsigned short *)(PTR))+1)
#define  MCF5XXX_SF_PC(PTR)                         *((unsigned long *)(PTR)+1)
#define  MCF5XXX_EXCEPTFMT                         "%s -- PC = %#08X\n"

#define  VECTORDISPLAY(MESSAGE)                     asm { nop; };
#define  VECTORDISPLAY2(MESSAGE,MESSAGE2)           asm { nop; };
#define  VECTORDISPLAY3(MESSAGE,MESSAGE2,MESSAGE3)  asm { nop; };

/*
*********************************************************************************************************
*	                            DATATYPES
*********************************************************************************************************
*/

typedef void (* pfnct_isr)(void);                                       /* Define a pointer to a function typed: void myisr (void)  */

/*
*********************************************************************************************************
*	                            GLOBALS
*********************************************************************************************************
*/

extern unsigned long far _SP_INIT[];

/*
*********************************************************************************************************
*	                            LOCAL FUNCTION PROTOTYPES
*********************************************************************************************************
*/

void  mcf_exception_handler(void *pframe);
void  derivative_interrupt(unsigned long vector);

/*
*********************************************************************************************************
*	                            EXTERNAL ISR FUNCTION PROTOTYPES
*
* Description : Assembly interrupt service routines must be used prior
*               to calling 'C' code interrupt handlers. The Assembly
*               ISR must be prototyped in 'C' before adding the name
*               of the ISR to the interrupt vector table below.
*********************************************************************************************************
*/

extern  void  _startup(void);                                           /* Startup Routine                                          */
extern  void   OSTickISR(void);                                         /* OS Time Tick Routine                                     */
extern  void   OSCtxSw(void);                                           /* OS Context Switch Routine                                */

extern  void   ProbeRS232_ErrISR(void);                                 /* uC/Probe SCI Error Interrupt Service Routine             */
extern  void   ProbeRS232_RxISR(void);                                  /* uC/Probe SCI Rx Interrupt Service Routine                */
extern  void   ProbeRS232_TxISR(void);                                  /* uC/Probe SCI Tx Interrupt Service Routine                */

/*
*********************************************************************************************************
*	                            VECTOR TABLE
*
* Description : Assembly interrupt service routines must be used prior
*               to calling 'C' code interrupt handlers. The Assembly
*               ISR must be prototyped in 'C' before adding the name
*               of the ISR to the interrupt vector table below. Interrupt
*               Service Routines written in 'C' SHOULD NOT be vectored to
*               directly from the table below. See bsp_a.asm for an example
*               assembly interrupt service routine suitable for plugging
*               into the table below.
*********************************************************************************************************
*/

__declspec(weak) pfnct_isr vector_0  @INITSP      = (pfnct_isr)&_SP_INIT;
__declspec(weak) pfnct_isr vector_1  @INITPC      = (pfnct_isr)&_startup;
__declspec(weak) pfnct_isr vector_2  @Vaccerr     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_3  @Vadderr     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_4  @Viinstr     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_5  @Vdivz       = asm_exception_handler;
__declspec(weak) pfnct_isr vector_6  @VReserved6  = asm_exception_handler;
__declspec(weak) pfnct_isr vector_7  @VReserved7  = asm_exception_handler;
__declspec(weak) pfnct_isr vector_8  @Vprviol     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_9  @Vtrace      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_10 @Vunilaop    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_11 @Vunilfop    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_12 @Vdbgi       = asm_exception_handler;
__declspec(weak) pfnct_isr vector_13 @VReserved13 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_14 @Vferror     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_15 @VReserved15 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_16 @VReserved16 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_17 @VReserved17 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_18 @VReserved18 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_19 @VReserved19 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_20 @VReserved20 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_21 @VReserved21 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_22 @VReserved22 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_23 @VReserved23 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_24 @Vspuri      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_25 @VReserved25 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_26 @VReserved26 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_27 @VReserved27 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_28 @VReserved28 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_29 @VReserved29 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_30 @VReserved30 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_31 @VReserved31 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_32 @Vtrap0      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_33 @Vtrap1      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_34 @Vtrap2      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_35 @Vtrap3      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_36 @Vtrap4      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_37 @Vtrap5      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_38 @Vtrap6      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_39 @Vtrap7      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_40 @Vtrap8      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_41 @Vtrap9      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_42 @Vtrap10     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_43 @Vtrap11     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_44 @Vtrap12     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_45 @Vtrap13     = asm_exception_handler;

__declspec(weak) pfnct_isr vector_46 @Vtrap14     = OSCtxSw;

__declspec(weak) pfnct_isr vector_47 @Vtrap15     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_48 @VReserved48 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_49 @VReserved49 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_50 @VReserved50 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_51 @VReserved51 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_52 @VReserved52 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_53 @VReserved53 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_54 @VReserved54 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_55 @VReserved55 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_56 @VReserved56 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_57 @VReserved57 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_58 @VReserved58 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_59 @VReserved59 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_60 @VReserved60 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_61 @VReserved61 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_62 @VReserved62 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_63 @VReserved63 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_64 @Virq        = asm_exception_handler;
__declspec(weak) pfnct_isr vector_65 @Vlvd        = asm_exception_handler;

__declspec(weak) pfnct_isr vector_66 @Vtpm1ch0    = OSTickISR;
__declspec(weak) pfnct_isr vector_67 @Vtpm1ch1    = OSTickISR;
__declspec(weak) pfnct_isr vector_68 @Vtpm1ch2    = OSTickISR;

__declspec(weak) pfnct_isr vector_69 @Vtpm1ovf    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_70 @Vtpm2ch0    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_71 @Vtpm2ch1    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_72 @Vtpm2ch2    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_73 @Vtpm2ovf    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_74 @Vspi2       = asm_exception_handler;
__declspec(weak) pfnct_isr vector_75 @Vspi1       = asm_exception_handler;

__declspec(weak) pfnct_isr vector_76 @Vsci1err    = ProbeRS232_ErrISR;
__declspec(weak) pfnct_isr vector_77 @Vsci1rx     = ProbeRS232_RxISR;
__declspec(weak) pfnct_isr vector_78 @Vsci1tx     = ProbeRS232_TxISR;

__declspec(weak) pfnct_isr vector_79 @Viicx       = asm_exception_handler;
__declspec(weak) pfnct_isr vector_80 @Vkeyboard   = asm_exception_handler;
__declspec(weak) pfnct_isr vector_81 @Vadc        = asm_exception_handler;
__declspec(weak) pfnct_isr vector_82 @Vacmpx      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_83 @Vsci2err    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_84 @Vsci2rx     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_85 @Vsci2tx     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_86 @Vrtc        = asm_exception_handler;
__declspec(weak) pfnct_isr vector_87 @Vtpm3ch0    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_88 @Vtpm3ch1    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_89 @Vtpm3ch2    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_90 @Vtpm3ch3    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_91 @Vtpm3ch4    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_92 @Vtpm3ch5    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_93 @Vtpm3ovf    = asm_exception_handler;
__declspec(weak) pfnct_isr vector_94 @VReserved94 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_95 @VReserved95 = asm_exception_handler;
__declspec(weak) pfnct_isr vector_96 @VL7swi      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_97 @VL6swi      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_98 @VL5swi      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_99 @VL4swi      = asm_exception_handler;
__declspec(weak) pfnct_isr vector_100 @VL3swi     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_101 @VL2swi     = asm_exception_handler;
__declspec(weak) pfnct_isr vector_102 @VL1swi     = asm_exception_handler;

/*
*********************************************************************************************************
*	                            Default Assembly Exception Handler
*
* Description : The following routine sets up the stack frame and calls the default exception
*               handler below.
*********************************************************************************************************
*/

asm void asm_exception_handler(void)
{
   link     a6,#0 

⌨️ 快捷键说明

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