📄 arm_exception.c
字号:
#include <stdarg.h>
#include <string.h>
#include "44b.h"
// for debugging
void break_point(void);
void debug_undef(void);
void debug_swi(void);
void debug_abort(void);
void debug_fiq(void);
//////////////////////////////////////////////////////////////////
//routines for debugging
//////////////////////////////////////////////////////////////////
void break_point(void)
{
char m = 200;
Uart_Printf("!!!Enter break point.");
while(m) {
rPDATB = rPDATB&0x9ff; // PB9,PB10 -- LED1,LED2
Delay(1000);
rPDATB = rPDATB|0xFff; // LED1,LED2 off
Delay(1000);
m--;
}//while
}//break_point
//extern
int nCNT = 0; //作为控制用
void debug_undef(void)
{
Uart_Printf("!!!Enter UNDEFINED. %d\r\n", nCNT);
break_point();
}
void debug_swi(void)
{
Uart_Printf("!!!Enter SWI. %d\r\n", nCNT);
break_point();
}
void debug_abort(void)
{
Uart_Printf("!!!Enter ABORT %d\r\n", nCNT);
break_point();
}
void debug_fiq(void)
{
Uart_Printf("!!!Enter FIQ. %d\r\n", nCNT);
break_point();
}
//Initialze interrupts.
void interrupts_init(void)
{
// Non-vectored,IRQ disable,FIQ disable
rINTCON = 0x0;
// All = IRQ mode
rINTMOD = 0x0;
// All interrupt is masked.
rINTMSK = BIT_GLOBAL;
//set interrupt vector routine
// pISR_RESET //reserved
pISR_UNDEF = (unsigned) debug_undef;
pISR_SWI = (unsigned) debug_swi;
pISR_PABORT = (unsigned) debug_abort;
pISR_DABORT = (unsigned) debug_abort;
pISR_RESERVED = (unsigned) break_point; //not used
// pISR_IRQ = (unsigned) 0; //reserved
pISR_FIQ = (unsigned) debug_fiq;
pISR_ADC = (unsigned) break_point;
pISR_RTC = (unsigned) break_point;
pISR_UTXD1 = (unsigned) break_point;
pISR_UTXD0 = (unsigned) break_point;
pISR_SIO = (unsigned) break_point;
pISR_IIC = (unsigned) break_point;
pISR_URXD1 = (unsigned) break_point;
pISR_URXD0 = (unsigned) break_point;
pISR_TIMER5 = (unsigned) break_point;
pISR_TIMER4 = (unsigned) break_point;
pISR_TIMER3 = (unsigned) break_point;
pISR_TIMER2 = (unsigned) break_point;
pISR_TIMER1 = (unsigned) break_point;
pISR_TIMER0 = (unsigned) break_point;
pISR_UERR01 = (unsigned) break_point;
pISR_WDT = (unsigned) break_point;
pISR_BDMA1 = (unsigned) break_point;
pISR_BDMA0 = (unsigned) break_point;
pISR_ZDMA1 = (unsigned) break_point;
pISR_ZDMA0 = (unsigned) break_point;
pISR_TICK = (unsigned) break_point;
pISR_EINT4567 = (unsigned) break_point;
pISR_EINT3 = (unsigned) break_point;
pISR_EINT2 = (unsigned) break_point;
pISR_EINT1 = (unsigned) break_point;
pISR_EINT0 = (unsigned) break_point;
#ifdef _ucosII_44b0
extern void TickHandler(void); //timer interrupt handler routine
pISR_TIMER0 = (unsigned) TickHandler; //handler setting
#endif
}//interrupts_init
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -