📄 vector.c
字号:
#define VECTOR_C
/******************************************************************************
*
* Copyright (C) 2005 Freescale Semiconductor, Inc.
* All Rights Reserved
*
* Filename: vector.c
*
* Revision:
*
* Functions: Vectors table for LINS08, LINS08 Drivers with Freescale API
*
* Description: This file contains vectors tables for HC12B32, HC12D60,
* HC12DA128, MC9S12DP256 and MC9S08AW60 MCUs.
* It used for LIN Drivers with Freescale API.
* The users can add their own vectors into the table,
* but they should not replace LIN Drivers vectors.
*
* Notes: Timer Channel 0 vector used for Master driver only.
*
* The only one of the following variables may be defined, while
* all others are undefined. This is controlled by the compiler
* option, which in turn is to be adjusted in 'makefile' or batch
* file:
* HC12B32 -- M68HC12B32EVB or M68HC12BC32EVB is used
* HC12D60 -- M68EVB912D60 is used
* HC12D128 -- M68EVB912D60 with DA128 chip is used
* HC12DP256 -- MC9S12DP256 is used
* S08AW60 -- MC9S08AW60 is used
*
******************************************************************************/
#include <startup.h> /* startup routine declaration */
extern void _Startup( void ); /* reset vector */
extern void LIN_ISR_SCI_Receive(); /* SCI receive interrupt routine */
extern void LIN_ISR_SCI_Error(); /* SCI error interrupt routine */
#if defined(MASTER)
extern void LIN_ISR_Timer(); /* Timer interrupt routine */
#endif /* defined(MASTER) */
extern void RTI_ISR(); /* RTI ISR */
/******************************************************************************
*
* Function: DummyISR()
*
* Description: dummy interrupt handler
*
* Returns: no return value
*
* Notes:
*
******************************************************************************/
#pragma MESSAGE DISABLE C4000
static interrupt void DummyISR(void)
{
while(1);
}
/******************************************************************************
INTERRUPT VECTORS TABLE
User is able to add another ISR into this table instead NULL pointer.
****************************************************************************/
#undef VECTF
#define VECTF ( void ( *const near )( ) ) /* Vector table function specifier */
#pragma CONST_SEG VECTORS_DATA
void near ( * const near _vectab[] )( ) =
{
VECTF RTI_ISR, /* 0xFFCC: RTI */
VECTF DummyISR, /* 0xFFCE: IIC */
VECTF DummyISR, /* 0xFFD0: ADC Conversion */
VECTF DummyISR, /* 0xFFD2: Keyboard */
VECTF DummyISR, /* 0xFFD4: SCI2 Transmit */
#if defined(SCI_2)
VECTF LIN_ISR_SCI_Receive,/* 0xFFD6: SCI2 Receive */
VECTF LIN_ISR_SCI_Error, /* 0xFFD8: SCI2 Error */
#else
VECTF DummyISR, /* 0xFFD6: SCI2 Receive */
VECTF DummyISR, /* 0xFFD8: SCI2 Error */
#endif /*defined(SCI_1)*/
VECTF DummyISR, /* 0xFFDA: SCI1 Transmit */
#if defined(SCI_1)
VECTF LIN_ISR_SCI_Receive,/* 0xFFDC: SCI1 Receive */
VECTF LIN_ISR_SCI_Error, /* 0xFFDE: SCI1 Error */
#else
VECTF DummyISR, /* 0xFFDC: SCI1 Receive */
VECTF DummyISR, /* 0xFFDE: SCI1 Error */
#endif /*defined(SCI_1)*/
VECTF DummyISR, /* 0xFFE0: SPI */
VECTF DummyISR, /* 0xFFE2: TPM2 Overflow */
#if defined(MASTER)
#if defined(CHANNEL_1) && defined(TPM_2)
VECTF LIN_ISR_Timer, /* 0xFFE4: TPM2 Channel 1 */
#else
VECTF DummyISR, /* 0xFFE4: TPM2 Channel 1 */
#endif /*defined(CHANNEL_1) && defined(TPM_2)*/
#if defined(CHANNEL_0) && defined(TPM_2)
VECTF LIN_ISR_Timer, /* 0xFFE6: TPM2 Channel 0 */
#else
VECTF DummyISR, /* 0xFFE6: TPM2 Channel 0 */
#endif /*defined(CHANNEL_0) && defined(TPM_2)*/
#endif /*defined(MASTER)*/
#if defined(SLAVE)
VECTF DummyISR, /* 0xFFE4: TPM2 Channel 1 */
VECTF DummyISR, /* 0xFFE6: TPM2 Channel 0 */
#endif /*defined(SLAVE)*/
VECTF DummyISR, /* 0xFFE8: TPM1 Overflow */
#if defined(MASTER)
#if defined(CHANNEL_5) && defined(TPM_1)
VECTF LIN_ISR_Timer, /* 0xFFEA: TPM1 Channel 5 */
#else
VECTF DummyISR, /* 0xFFEA: TPM1 Channel 5 */
#endif /*defined(CHANNEL_5 && defined(TPM_1))*/
#if defined(CHANNEL_4) && defined(TPM_1)
VECTF LIN_ISR_Timer, /* 0xFFEC: TPM1 Channel 4 */
#else
VECTF DummyISR, /* 0xFFEC: TPM1 Channel 4 */
#endif /*defined(CHANNEL_4 && defined(TPM_1))*/
#if defined(CHANNEL_3) && defined(TPM_1)
VECTF LIN_ISR_Timer, /* 0xFFEE: TPM1 Channel 3 */
#else
VECTF DummyISR, /* 0xFFEE: TPM1 Channel 3 */
#endif /*defined(CHANNEL_3) && defined(TPM_1)*/
#if defined(CHANNEL_2) && defined(TPM_1)
VECTF LIN_ISR_Timer, /* 0xFFF0: TPM1 Channel 2 */
#else
VECTF DummyISR, /* 0xFFF0: TPM1 Channel 2 */
#endif /*defined(CHANNEL_2) && defined(TPM_1)*/
#if defined(CHANNEL_1) && defined(TPM_1)
VECTF LIN_ISR_Timer, /* 0xFFF2: TPM1 Channel 1 */
#else
VECTF DummyISR, /* 0xFFF2: TPM1 Channel 1 */
#endif /*defined(CHANNEL_1) && defined(TPM_1)*/
#if defined(CHANNEL_0) && defined(TPM_1)
VECTF LIN_ISR_Timer, /* 0xFFF4: TPM1 Channel 0 */
#else
VECTF DummyISR, /* 0xFFF4: TPM1 Channel 0 */
#endif /*defined(CHANNEL_0) && defined(TPM_1)*/
#endif /*defined(MASTER)*/
#if defined(SLAVE)
VECTF DummyISR, /* 0xFFEA: TPM1 Channel 5 */
VECTF DummyISR, /* 0xFFEC: TPM1 Channel 4 */
VECTF DummyISR, /* 0xFFEE: TPM1 Channel 3 */
VECTF DummyISR, /* 0xFFF0: TPM1 Channel 2 */
VECTF DummyISR, /* 0xFFF2: TPM1 Channel 1 */
VECTF DummyISR, /* 0xFFF4: TPM1 Channel 0 */
#endif /*defined(SLAVE)*/
VECTF DummyISR, /* 0xFFF6: ICG */
VECTF DummyISR, /* 0xFFF8: Low Voltage Detect */
VECTF DummyISR, /* 0xFFFA: IRQ */
VECTF DummyISR, /* 0xFFFC: SWI */
VECTF _Startup, /* 0xFFFE: Reset */
};
#pragma CONST_SEG DEFAULT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -