📄 lh7a404_vic_driver.h
字号:
/***********************************************************************
* $Workfile: lh7a404_vic_driver.h $
* $Revision: 1.2 $
* $Author: WellsK $
* $Date: Mar 29 2004 15:38:38 $
*
* Project: LH7A404 vectored interrupt driver
*
* Description:
* This file contains driver support for the LH7A404 vectored
* interrupt driver.
*
* Revision History:
* $Log: //smaicnt2/pvcs/VM/sharpmcu/archives/sharpmcu/software/csps/lh7a404/include/lh7a404_vic_driver.h-arc $
*
* Rev 1.2 Mar 29 2004 15:38:38 WellsK
* Added interrupt support for IAR toolchain.
*
* Rev 1.1 Sep 08 2003 09:33:40 WellsK
* Added support to locate the interrupt vector table anywhere.
*
* Rev 1.0 Jun 30 2003 16:29:58 WellsK
* Initial revision.
*
*
***********************************************************************
* SHARP MICROELECTRONICS OF THE AMERICAS MAKES NO REPRESENTATION
* OR WARRANTIES WITH RESPECT TO THE PERFORMANCE OF THIS SOFTWARE,
* AND SPECIFICALLY DISCLAIMS ANY RESPONSIBILITY FOR ANY DAMAGES,
* SPECIAL OR CONSEQUENTIAL, CONNECTED WITH THE USE OF THIS SOFTWARE.
*
* SHARP MICROELECTRONICS OF THE AMERICAS PROVIDES THIS SOFTWARE SOLELY
* FOR THE PURPOSE OF SOFTWARE DEVELOPMENT INCORPORATING THE USE OF A
* SHARP MICROCONTROLLER OR SYSTEM-ON-CHIP PRODUCT. USE OF THIS SOURCE
* FILE IMPLIES ACCEPTANCE OF THESE CONDITIONS.
*
* COPYRIGHT (C) 2001 SHARP MICROELECTRONICS OF THE AMERICAS, INC.
* CAMAS, WA
*********************************************************************/
#ifndef LH7A404_VIC_DRIVER_H
#define LH7A404_VIC_DRIVER_H
#ifdef __cplusplus
extern "C" {
#endif
#include "lh7a404_vic.h"
/* Interrupt and exception enumerations */
typedef enum
{
RESET_VEC,
UNDEFINED_INST_VEC,
SWI_VEC,
PREFETCH_ABORT_VEC,
DATA_ABORT_VEC,
IRQ_VEC,
FIQ_VEC,
VIC1_IRQ_VEC,
VIC2_IRQ_VEC
} VECTOR_T;
/* Possible interrupt types */
typedef enum {VIC_IRQ, VIC_FIQ, VIC_VECTORED} VIC_INT_T;
/***********************************************************************
* Vectored Interrupt driver functions
**********************************************************************/
/* Initialize the vectored interrupt controller */
void vic_initialize(UNS_32 vectbladdr);
/* Install an new ARM interrupt or exception handler */
void vic_install_arm_handler(VECTOR_T handler_id,
PFV handler_ptr);
/* Install a function for a specific interrupt */
BOOL_32 vic_install_handler(VIC_INT_SOURCE_T source,
VIC_INT_T itype,
PFV func_ptr);
/* Enable or disable an interrupt */
void vic_int_enable(VIC_INT_SOURCE_T source,
BOOL_32 enable);
/* Check to see if an interrupt is pending */
BOOL_32 vic_int_pending(VIC_INT_SOURCE_T source);
/* Check to see if an interrupt is enabled */
BOOL_32 vic_int_enabled(VIC_INT_SOURCE_T source);
/* Clears the vectored interrupt (called after a vectored interrupt) */
void vic_clear_int(VIC_INT_SOURCE_T source);
/* Default IRQ interrupt dispatcher for VIC1 */
void vic1_irq_dispatcher(void);
/* Default IRQ interrupt dispatcher for VIC2 */
void vic2_irq_dispatcher(void);
#ifdef __ICCARM__
/* Default IRQ interrupt dispatcher */
void vic_arm_irq_dispatcher(void);
#endif
#ifdef __GNUC__
/* Default ARM core IRQ interrupt dispatcher */
void vic_arm_irq_dispatcher(void);
#endif
#ifdef __ghs__
/* Default ARM core IRQ interrupt dispatcher */
__interrupt void vic_arm_irq_dispatcher(void);
#endif
#ifdef __arm
/* Default ARM core IRQ interrupt dispatcher */
__irq void vic_arm_irq_dispatcher(void);
#endif
#ifdef __cplusplus
}
#endif
#endif /* LH7A404_VIC_DRIVER_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -