📄 irq_handlers.c
字号:
#include <common/types.h>
#include <mx/mx21/mx21_register.h>
#include <mx/mx21/irq/irq_handlers.h>
#define VECTOR_TABLE 0xFFFFFF00
function_void_t vector_NIQ[64];
function_void_t vector_FIQ[64];
__irq void Undefined_Handler(void)
{
}
__irq void SWI_Handler(void)
{
}
__irq void Prefetch_Handler(void)
{
}
__irq void Abort_Handler(void)
{
}
__irq void NIQ_Handler(void)
{
u16 VectNum;
VectNum = (*(volatile u32 *)AITC_NIVECSR)>>16;
vector_NIQ[VectNum]();
}
__irq void FIQ_Handler(void)
{
u16 VectNum;
VectNum = (*(volatile u32 *)AITC_FIVECSR);
vector_FIQ[VectNum]();
}
s32 NIQ_HandlerInstall(function_void_t Handler, u32 VectNum)
{
vector_NIQ[VectNum] = Handler;
// Writing VECTOR to Interrupt Acceleration Vector Table
*(volatile u32 *)(VECTOR_TABLE + 4*VectNum) = (u32)NIQ_Handler;
NIQ_SetType(VectNum);
return (s32)VectNum;
}
s32 FIQ_HandlerInstall(function_void_t Handler, u32 VectNum)
{
vector_FIQ[VectNum]=Handler;
// Writing VECTOR to Interrupt Acceleration Vector Table
*(volatile u32 *)(VECTOR_TABLE + 4*VectNum) = (u32)FIQ_Handler;
FIQ_SetType(VectNum);
return (s32)VectNum;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -