Hardware interrupt
[Kernel]


宏定义

#define  OS_HWI_MAX_NUM   32
  Maximum number of used hardware interrupts.
#define  OS_HWI_PRIO_HIGHEST   0
  Highest priority of a hardware interrupt.
#define  OS_HWI_PRIO_LOWEST   7
  Lowest priority of a hardware interrupt.
#define  OS_INT_ACTIVE   (g_vuwIntCount > 0)
  An interrupt is active.
#define  OS_INT_INACTIVE   (!(OS_INT_ACTIVE))
  An interrupt is inactive.
#define  OS_SYS_VECTOR_CNT   16
  Count of M-Core system interrupt vector.
#define  OS_VECTOR_CNT   (OS_SYS_VECTOR_CNT + OS_HWI_MAX_NUM)
  Count of M-Core interrupt vector.
#define  OS_NVIC_AIRCR_PRIGROUP   7
  AIRCR register priority group parameter .
#define  OS_ERRNO_HWI_NUM_INVALID   LOS_ERRNO_OS_ERROR(LOS_MOD_HWI, 0x00)
  Hardware interrupt error code: Invalid interrupt number.
#define  OS_ERRNO_HWI_PROC_FUNC_NULL   LOS_ERRNO_OS_ERROR(LOS_MOD_HWI, 0x01)
  Hardware interrupt error code: Null hardware interrupt handling function.
#define  OS_ERRNO_HWI_CB_UNAVAILABLE   LOS_ERRNO_OS_ERROR(LOS_MOD_HWI, 0x02)
  Hardware interrupt error code: Insufficient interrupt resources for hardware interrupt creation.
#define  OS_ERRNO_HWI_NO_MEMORY   LOS_ERRNO_OS_ERROR(LOS_MOD_HWI, 0x03)
  Hardware interrupt error code: Insufficient memory for hardware interrupt initialization.
#define  OS_ERRNO_HWI_ALREADY_CREATED   LOS_ERRNO_OS_ERROR(LOS_MOD_HWI, 0x04)
  Hardware interrupt error code: The interrupt has already been created.
#define  OS_ERRNO_HWI_PRIO_INVALID   LOS_ERRNO_OS_ERROR(LOS_MOD_HWI, 0x05)
  Hardware interrupt error code: Invalid interrupt priority.
#define  OS_ERRNO_HWI_MODE_INVALID   LOS_ERRNO_OS_ERROR(LOS_MOD_HWI, 0x06)
  Hardware interrupt error code: Incorrect interrupt creation mode.
#define  OS_ERRNO_HWI_FASTMODE_ALREADY_CREATED   LOS_ERRNO_OS_ERROR(LOS_MOD_HWI, 0x07)
  Hardware interrupt error code: The interrupt has already been created as a fast interrupt.
#define  OS_SYSTICK_CONTROL_REG   0xE000E010
  SysTick control and status register.
#define  OS_NVIC_PRI_BASE   0xE000E400
  Interrupt Priority-Level Registers.
#define  OS_NVIC_SETENA_BASE   0xE000E100
  Interrupt enable register for 0-31.
#define  OS_NVIC_SETPEND_BASE   0xE000E200
  interrupt pending register.
#define  OS_NVIC_INT_ACT_BASE   0xE000E300
  ?D??ACTIVE????????
#define  OS_NVIC_CLRENA_BASE   0xE000E180
  Interrupt disable register for 0-31.
#define  OS_NVIC_INT_CTRL   0xE000ED04
  Interrupt control and status register.
#define  OS_NVIC_VTOR   0xE000ED08
  Vector table offset register.
#define  OS_NVIC_AIRCR   0xE000ED0C
  Application interrupt and reset control register
#define  OS_NVIC_EXCPRI_BASE   0xE000ED18
  System exception priority register.
#define  OS_EXC_RESET   1
  Interrupt No.
#define  OS_EXC_NMI   2
  Interrupt No.
#define  OS_EXC_HARD_FAULT   3
  Interrupt No.
#define  OS_EXC_MPU_FAULT   4
  Interrupt No.
#define  OS_EXC_BUS_FAULT   5
  Interrupt No.
#define  OS_EXC_USAGE_FAULT   6
  Interrupt No.
#define  OS_EXC_SVC_CALL   11
  Interrupt No.
#define  OS_EXC_DBG_MONITOR   12
  Interrupt No.
#define  OS_EXC_PEND_SV   14
  Interrupt No.
#define  OS_EXC_SYS_TICK   15
  Interrupt No.
#define  osSetVector(uwNum, pfnVector, uwArg)
  Set interrupt vector table.

类型定义

typedef UINT32  HWI_HANDLE_T
  Define the type of a hardware interrupt number.
typedef UINT16  HWI_PRIOR_T
  Define the type of a hardware interrupt priority.
typedef UINT16  HWI_MODE_T
  Define the type of hardware interrupt mode configurations.
typedef UINT32  HWI_ARG_T
  Define the type of the parameter used for the hardware interrupt creation function.
typedef VOID(*  HWI_PROC_FUNC )(VOID *pParm)
  Define the type of a hardware interrupt handling function.
typedef VOID(**  HWI_VECTOR_FUNC )(void)
  Define the type of a hardware interrupt vector table function.

函数

UINT32  LOS_HwiCreate (HWI_HANDLE_T uwHwiNum, HWI_PRIOR_T usHwiPrio, HWI_MODE_T usMode, HWI_PROC_FUNC pfnHandler, HWI_ARG_T uwArg)
  Create a hardware interrupt.
VOID  osInterrupt (VOID)
  : Hardware interrupt entry function.
UINT32  osIntNumGet (VOID)
  : Get a interrupt number.
VOID  osHwiDefaultHandler (VOID)
  : Default vector handling function.
VOID  Reset_Handler (VOID)
  : Reset the vector table.
VOID  osPendSV (VOID)
  : Pended System Call.
UINTPTR  LOS_IntUnLock (VOID)
  Enable all interrupts.
UINTPTR  LOS_IntLock (VOID)
  Disable all interrupts.
VOID  LOS_IntRestore (UINTPTR uvIntSave)
  Restore interrupts.
VOID  LOS_GetCpuCycle (UINT32 *puwCntHi, UINT32 *puwCntLo)
  Get value from xPSR register.
UINT32  LOS_HwiDelete (HWI_HANDLE_T uwHwiNum)
  Delete hardware interrupt.

变量

UINT32  g_vuwIntCount
  Count of interrupts.
UINT32  _BootVectors []
  Boot interrupt vector table.
HWI_PROC_FUNC  m_pstHwiForm [OS_VECTOR_CNT]
  hardware interrupt form mapping handling function array.
HWI_SLAVE_FUNC  m_pstHwiSlaveForm [OS_VECTOR_CNT]
  hardware interrupt Slave form mapping handling function array.