📄
字号:
extern void excEnterUndef(void);
extern void excEnterSwi(void);
extern void excEnterPrefetchAbort(void);
extern void excEnterDataAbort(void);
extern void intEnt(void);
typedef struct {
UINT32 vector;
VOIDFUNCPTR func;
} exc_tbl_t;
#define SYS_EXC_NUM 5
LOCAL exc_tbl_t sysExcTbl[SYS_EXC_NUM] = {
{S3C_EXC_BASE+0x04, excEnterUndef},
{S3C_EXC_BASE+0x08, excEnterSwi},
{S3C_EXC_BASE+0x0c, excEnterPrefetchAbort},
{S3C_EXC_BASE+0x10, excEnterDataAbort},
{S3C_EXC_BASE+0x18, intEnt}
};
void sysExcTblSet(void)
{
int i;
for (i = 0; i < SYS_EXC_NUM; ++i) {
*(UINT32 *)(sysExcTbl[i].vector) = (UINT32)0xe59ff0f4;
/* ldr pc, pc + 0xfc */
*(UINT32 *)(sysExcTbl[i].vector + 0xfc) = (UINT32)(sysExcTbl[i].func);
}
}
sysExcTblSet();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -