⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arm_exception.c

📁 可以提供s3c44b0x开发配置帮助的英蓓特公司s3cev40的通用配置程序
💻 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 + -