您现在的位置: 主页 > MCU > 单片机技术应用 > S3C2440中断与异常定义与基本知识 -
本文所属标签:
为本文创立个标签吧:

S3C2440中断与异常定义与基本知识 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]1.S3C2440中断初始化:#define BIT_ALLMSK(0xffffffff)void Isr_Init(void){pISR_UNDEF=(unsigned)HaltUndef;pISR_SWI =(unsigned)HaltSwi;pISR_PABORT=(unsigned)HaltPabort;pISR_DABORT=(unsigned)HaltDabort;rINT

1.S3C2440中断初始化:

本文引用地址: http://www.21ic.com/app/mcu/201807/784554.htm

#define BIT_ALLMSK(0xffffffff)

void Isr_Init(void)
{
pISR_UNDEF=(unsigned)HaltUndef;
pISR_SWI =(unsigned)HaltSwi;
pISR_PABORT=(unsigned)HaltPabort;
pISR_DABORT=(unsigned)HaltDabort;
rINTMOD=0x0; //All=IRQ mode Address:0x4A000004 =1FIQ mode; =0 IRQ mode
rINTMSK=BIT_ALLMSK;// All interrupt is masked. Address:0x4A000008 0 = Interrupt service is available.
//1 = Interrupt service is masked.
}
void HaltUndef(void)
{
Uart_Printf("Undefined instruction exception!!!n");
while(1);
}

void HaltSwi(void)
{
Uart_Printf("SWI exception!!!n");
while(1);
}

void HaltPabort(void)
{
Uart_Printf("Pabort exception!!!n");
while(1);
}

void HaltDabort(void)
{
Uart_Printf("Dabort exception!!!n");
while(1);
}

2. 7个中断地址:

#define _ISR_STARTADDRESS 0x33ffff00

#define pISR_RESET(*(unsigned *)(_ISR_STARTADDRESS+0x0))
#define pISR_UNDEF(*(unsigned *)(_ISR_STARTADDRESS+0x4))
#define pISR_SWI(*(unsigned *)(_ISR_STARTADDRESS+0x8))
#define pISR_PABORT(*(unsigned *)(_ISR_STARTADDRESS+0xc))
#define pISR_DABORT(*(unsigned *)(_ISR_STARTADDRESS+0x10))
#define pISR_RESERVED(*(unsigned *)(_ISR_STARTADDRESS+0x14))
#define pISR_IRQ(*(unsigned *)(_ISR_STARTADDRESS+0x18))
#define pISR_FIQ(*(unsigned *)(_ISR_STARTADDRESS+0x1c))

(unsigned*)目的把(_ISR_STARTADDRESS+0x0)指针强转(unsigned*)类型,最前的一个*,取该(unsigned*)类型指针对应的unsigned值;
得恶补C语言的知识了




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > S3C2440中断与异常定义与基本知识 -
 

"S3C2440中断与异常定义与基本知识 -"的相关文章

网站地图

围观()