1 EINT外部中断

1 EINT外部中断

ID:39896577

大小:1.28 MB

页数:12页

时间:2019-07-14

1 EINT外部中断_第1页
1 EINT外部中断_第2页
1 EINT外部中断_第3页
1 EINT外部中断_第4页
1 EINT外部中断_第5页
资源描述:

《1 EINT外部中断》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、EINT外部中断一、ARM异常中断IRQ(一般中断)和FIQ(快速中断)不是具体的中断源,而是中断的类型。我们是可以将一个中断源的类型设置成FIQ也可以设置成IRQ。在使用FIQ响应的时间比IRQ要短,其他方面没有什么区别。但是一般情况下,在一个平台内,我们只能将一个中断源设置成FIQ。二、S5PV210的中断源1、总共有93个,其中外部中断有32个。2、93个中断源分成了4个中断控制器(VIC)3、具体中断源(210手册p1-5)三、外部中断设计流程四、S5PV210中断控制器的特点•Supports93vectoredIRQinterrupts•Fixed

2、hardwareinterruptsprioritylevels•Programmableinterruptprioritylevels•SupportsHardwareinterruptprioritylevelmasking•Programmableinterruptprioritylevelmasking•GeneratesIRQandFIQ•GeneratesSoftwareinterrupt•Testregisters•Rawinterruptstatus•Interruptrequeststatus•SupportsPrivilegedmodefo

3、rrestrictedaccess五、分析GEC210平台的原理图12EINT16是一个二级中断,对应的一级入口是EINT16_31。12三、中断的初始化(设置SFR)1、将GPH2_0设置成EINT162、设置EINT16的触发方式3、设置外部中断的滤波器124、外部中断pending(判断/清除寄存器)5、外部中断的开关(屏蔽)寄存器125、设置中断类型EINT16----->VIC0INTSELECT7、中断向量地址寄存器1)VIC0ADDRESS读:该寄存器放置的是正在响应的入口中断处理程序的入口地址。该入口地址是在对应中断源向量地址寄存器(VIC0V

4、ECTADDRn)中初始化的。写:向该寄存器写0,用来清除中断。2)VIC0VECTADDRn在中断初始化的时候,将中断处理程序的入口地址保存到该寄存器。8、中断的开关寄存器12七、程序的设计1、程序入口(start.S).global_start.globalIRQ_handle_start:ldrsp,=0x40000000@初始化栈,stack放在DDR2movr0,#0x53msrCPSR_cxsf,r0@ARM进入管理模式,并关闭FIQ、打开IRQblclock_init@初始化210的系统时钟bmain@调用了main,进入中断初始化IRQ_han

5、dle:@IRQ中断的处理程序,在ARM响应IRQ中断时,会进入该程序ldrsp,=0xD0037F80@初始化IRQ模式的stacksublr,lr,#4@修正返回地址stmfdsp!,{r0-r12,lr}@保存现场,入栈blIrq_Isr@调用C环境的程序,去处理IRQ中断,在Irq_Isr函数中,确定中断源。ldmfdsp!,{r0-r12,pc}@退出现场,并实现中断的返回2、main函数voidisr_key(void)//EINT16中断处理程序12{GPJ2DAT^=(1<<0);//toggleledintc_clearvectaddr();

6、//clearVIC0ADDRESSEXT_INT_2_PEND

7、=1<<0;//clearpendingbit}intmain(void){//GPJ2CON[3:0]=0001;GPJ2_0--->outputGPJ2CON&=~(0xf<<0);GPJ2CON

8、=(1<<0);//interruptcontrollerinitint_init();GPH2CON

9、=0xF;//GPH2_0-->EXT_INT[16]//EXT_INT[16]:FallingedgetriggeredEXT_INT_2_CON&=~(7<0);EXT_INT_2_CON

10、

11、=(2<<0);//initializevectorinterruptaddresswithnumofinitandisr.intc_setvectaddr(NUM_EINT16_31,isr_key);//EINT16中断处理程序的安装EXT_INT_2_MASK&=~(1<<0);//unmaskedEINT16intc_enable(NUM_EINT16_31);//enableEINT16_31while(1);//等待中断}3、IRQ中断初始化函数//exceptionandinterruptinitializevoidint_init(void){

12、//vectortableofexce

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。