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

📄 isr.h

📁 vt6528芯片交换机API函数和文档运行程序
💻 H
字号:
/*
 * File:    isr.h
 */


#ifndef __ISR_H__
#define __ISR_H__

#if !defined(__TTYPE_H__)
#include "ttype.h"
#endif




/*---------------------  Export Definitions  ------------------------*/

//--------------------------------------
// Interrupt Controller
//--------------------------------------
#define ASIC_INT_MODE       (*VPUINT32 (0x03FF0000UL + 0x4000))
#define ASIC_INT_PEND       (*VPUINT32 (0x03FF0000UL + 0x4004))
#define ASIC_INT_MASK       (*VPUINT32 (0x03FF0000UL + 0x4008))
#define ASIC_INT_PRI0       (*VPUINT32 (0x03FF0000UL + 0x400C))
#define ASIC_INT_PRI1       (*VPUINT32 (0x03FF0000UL + 0x4010))
#define ASIC_INT_PRI2       (*VPUINT32 (0x03FF0000UL + 0x4014))
#define ASIC_INT_PRI3       (*VPUINT32 (0x03FF0000UL + 0x4018))
#define ASIC_INT_PRI4       (*VPUINT32 (0x03FF0000UL + 0x401C))
#define ASIC_INT_PRI5       (*VPUINT32 (0x03FF0000UL + 0x4020))
#define ASIC_INT_OFFSET     (*VPUINT32 (0x03FF0000UL + 0x4024))

//
// Bits in the ASIC_INT_PEND register
//
#define PEND_CLSALL             0x001FFFFF

//
// Interrupt vector for each device
//
#define VEC_EXT0_INT            0
#define VEC_EXT1_INT            1
#define VEC_EXT2_INT            2
#define VEC_EXT3_INT            3
#define VEC_UART0_TX_INT        4
#define VEC_UART0_RX_ERR_INT    5
#define VEC_UART1_TX_INT        6
#define VEC_UART1_RX_ERR_INT    7
#define VEC_GDMA0_INT           8
#define VEC_GDMA1_INT           9
#define VEC_TIMER0_INT          10
#define VEC_TIMER1_INT          11
#define VEC_HDLC_A_TX_INT       12
#define VEC_HDLC_A_RX_INT       13
#define VEC_HDLC_B_TX_INT       14
#define VEC_HDLC_B_RX_INT       15
#define VEC_BDMA_TX_INT         16
#define VEC_BDMA_RX_INT         17
#define VEC_MAC_TX_INT          18
#define VEC_MAC_RX_INT          19
#define VEC_I2C_INT             20
#define VEC_GLOBAL_INT          21

//
// Bits in the ASIC_INT_MASK register
//
#define MASK_EXT0_INT           (0x00000001)
#define MASK_EXT1_INT           (0x00000001 << VEC_EXT1_INT)
#define MASK_EXT2_INT           (0x00000001 << VEC_EXT2_INT)
#define MASK_EXT3_INT           (0x00000001 << VEC_EXT3_INT)
#define MASK_UART0_TX_INT       (0x00000001 << VEC_UART0_TX_INT)
#define MASK_UART0_RX_ERR_INT   (0x00000001 << VEC_UART0_RX_ERR_INT)
#define MASK_UART1_TX_INT       (0x00000001 << VEC_UART1_TX_INT)
#define MASK_UART1_RX_ERR_INT   (0x00000001 << VEC_UART1_RX_ERR_INT)
#define MASK_GDMA0_INT          (0x00000001 << VEC_GDMA0_INT)
#define MASK_GDMA1_INT          (0x00000001 << VEC_GDMA1_INT)
#define MASK_TIMER0_INT         (0x00000001 << VEC_TIMER0_INT )
#define MASK_TIMER1_INT         (0x00000001 << VEC_TIMER1_INT )
#define MASK_HDLC_A_TX_INT      (0x00000001 << VEC_HDLC_A_TX_INT )
#define MASK_HDLC_A_RX_INT      (0x00000001 << VEC_HDLC_A_RX_INT )
#define MASK_HDLC_B_TX_INT      (0x00000001 << VEC_HDLC_B_TX_INT )
#define MASK_HDLC_B_RX_INT      (0x00000001 << VEC_HDLC_B_RX_INT )
#define MASK_BDMA_TX_INT        (0x00000001 << VEC_BDMA_TX_INT )
#define MASK_BDMA_RX_INT        (0x00000001 << VEC_BDMA_RX_INT )
#define MASK_MAC_TX_INT         (0x00000001 << VEC_MAC_TX_INT )
#define MASK_MAC_RX_INT         (0x00000001 << VEC_MAC_RX_INT )
#define MASK_I2C_INT            (0x00000001 << VEC_I2C_INT )
#define MASK_GLOBAL_INT         (0x00000001 << VEC_GLOBAL_INT)
#define MASK_ALL                0x003FFFFF

/*---------------------  Export Types  ------------------------------*/

/*---------------------  Export Macros  -----------------------------*/
#define	ASIC_Enable_Int(n)      ASIC_INT_MASK &= ~(1<<(n))
#define	ASIC_Disable_Int(n)     ASIC_INT_MASK |= (1<<(n))

/*---------------------  Export Classes  ----------------------------*/

/*---------------------  Export Variables  --------------------------*/
extern PFN_HOOK INTR_apfnIntrHandler[];

/*---------------------  Export Functions  --------------------------*/
//
// Interrupt Handler Function
//
void IISR_vDummyHandler(void);


//
// Exception Handler Function
//
void EISR_ExcptHndlr_Undef(PUINT8 pu8RegAdr);
void EISR_ExcptHndlr_Prefetch(PUINT8 pu8RegAdr);
void EISR_ExcptHndlr_Abort(PUINT8 pu8RegAdr);
void EISR_ExcptHndlr_Fiq(void);


// critical section functions
void INTR_vCriticalSectionEnter(void);
void INTR_vCriticalSectionLeave(void);
void INTR_vDisable(void);

void INTR_vInit(void);
PFN_HOOK INTR_vGetHandler(UINT8 u8Vector);
void INTR_vSetHandler(UINT8 u8Vector, PFN_HOOK pfnHandler);
void INTR_vSwitchEnable(void);
void INTR_vSwitchDisable(void);
void INTR_vSwitchDma0Enable(void);
void INTR_vSwitchDma0Disable(void);




#endif /* __ISR_H__ */


⌨️ 快捷键说明

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