第5章 ARM中断处理

《第5章 ARM中断处理》由会员分享,可在线阅读,更多相关《第5章 ARM中断处理(36页珍藏版)》请在文档大全上搜索。
1、第五章 ARM中断处理121 中断概述qCPU与外设的数据传输方式通常有以下几种:n查询方式qCPU不断地查询外设状态,如果外设准备就绪就开始传输数据,如果外设没有准备好,就进入循环等待 n中断方式q当外设准备好与CPU进行数据交换时,首先想CPU提出中断请求。,CPU在接到中断请求并在一定的条件下,暂停原来的程序,并执行中断服务程序,执行完后再次回到原程序的nDMA方式q不经CPU而直接进行数据交换的过程3中断概述4中断概述2. S3C2440中断系统结构中断系统结构1、中断系统结构、中断系统结构主要由中断源和控制寄存器两大部分构成,其主要由中断源和控制寄存器两大部分构成,其寄存器主要有寄存
2、器主要有4种:模式、屏蔽、优先级、挂起种:模式、屏蔽、优先级、挂起(标志)寄存器等。(标志)寄存器等。中断源中断源(有子寄存器有子寄存器)子中断源子中断源挂起寄存器挂起寄存器中断源中断源(无子寄存器无子寄存器)子中断源子中断源屏蔽寄存器屏蔽寄存器中断屏蔽中断屏蔽中断模式中断模式优先级仲裁优先级仲裁FIQIRQ中断源挂起中断源挂起中中断断挂挂起起52、中断优先级仲裁器及工作原理、中断优先级仲裁器及工作原理中断系中断系统有统有6个分个分仲裁器和仲裁器和1个总仲裁器,个总仲裁器,每一个仲裁每一个仲裁器可以处理器可以处理6路中断。路中断。6中断向量表(2级)n第一级(上电复位时)q位于启动代码(裸机)
3、bootloader的起始位置78程序开始和入口地址Vector_entry:BReset_HandleBUndef_HandleBSWI_HandleBPrefetch_HandleBAbort_Handle NOPBIRQ_HandleBFIQ_Handle第二级(用于IRQ中断)9第二级中断源入口地址10中断源的管理11128个专用中断控制器13Register Address R/W Description Reset Value SRCPND0 x4A000000 R/W 中断标志寄存器中断标志寄存器 0 x00000000 INTMOD 0 x4A000004 R/W 中断模式寄存
4、器中断模式寄存器0 x00000000 INTMSK0 x4A000008 R/W 中断屏蔽寄存器中断屏蔽寄存器0 xFFFFFFFF PRIORITY0 x4A00000C R/W 中断优先级寄存器中断优先级寄存器0 x7FINTPND0 x4A000010 R/W 中断服务寄存器中断服务寄存器0 x00000000 INTOFFSET 0 x4A000014R中断偏移寄存器中断偏移寄存器0 x00000000 SUBSRCPND 0 x4A000018 R/W 子源挂起寄存器子源挂起寄存器0 x00000000INTSUBMSK 0 x4A00001C R/W 中断子源屏蔽寄存器中断子源屏
5、蔽寄存器0 x7FF主要使用前主要使用前5个寄存器个寄存器该寄存器也就是中断标志寄存器该寄存器也就是中断标志寄存器各位:各位:1:对应中断源:对应中断源有有中断请求中断请求0:对应中断源:对应中断源无无中断请求中断请求注意:必须在中断处理程序中对其标志位清注意:必须在中断处理程序中对其标志位清0。其方法为写。其方法为写1.1、SRCPND-中断源挂起(标志)寄存器中断源挂起(标志)寄存器位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT
6、_TIM46保留保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留保留16INT_LCD8INT_TICK0EINT014该寄存器是设置各中断源是该寄存器是设置各中断源是FIQ中断还是中断还是IRQ中断中断各位:各位:1:对应中断源设为:对应中断源设为FIQ中断模式中断模式
7、0:对应中断源设为:对应中断源设为IRQ中断模式中断模式2、INTMOD-中断模式寄存器中断模式寄存器位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328INT_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110
8、INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留保留16INT_LCD8INT_TICK0EINT015各位:各位:1:屏蔽对应中断源:屏蔽对应中断源0:开放对应中断源:开放对应中断源3、INTMSK-中断屏蔽寄存器中断屏蔽寄存器位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31INT_ADC23INT_UART115INT_UART27nBATT_FLT30INT_RTC22INT_SPI014INT_TIM46保留保留29INT_SPI121INT_SDI13INT_TIM35EINT8_2328IN
9、T_UART020INT_DMA312INT_TIM24EINT4_727INT_IIC19INT_DMA211INT_TIM13EINT326INT_USBH18INT_DMA110INT_TIM02EINT225INT_USBD17INT_DMA09INT_WDT1EINT124保留保留16INT_LCD8INT_TICK0EINT0164、PRIORITY-中断优先级寄存器中断优先级寄存器ARB_SELn-n组优先级顺序控制位组优先级顺序控制位00:REQ0, 1, 2, 3, 4, 5 01:REQ0, 2, 3, 4, 1, 510:REQ0, 3, 4, 1, 2, 5 11:RE
10、Q0, 4, 1, 2, 3, 5ARB_MODEn-n组优先级循环控制位组优先级循环控制位0:优先顺序固定不变:优先顺序固定不变 1:优先顺序循环,每响应一次中断,其顺序循环改变一次,但:优先顺序循环,每响应一次中断,其顺序循环改变一次,但REQ0、REQ5位置不变。位置不变。位号位号含含 义义位号位号含含 义义位号位号含含 义义31:21保保 留留12:11ARB_SEL24ARB_MODE420:19ARB_SEL610:9ARB_SEL13ARB_MODE318:17ARB_SEL58:7ARB_SEL02ARB_MODE216:15ARB_SEL46ARB_MODE61ARB_MOD
11、E114:13ARB_SEL35ARB_MODE50ARB_MODE017各位:各位:1:对应的中断源被响应,且正在执行中断服务:对应的中断源被响应,且正在执行中断服务0:对应中断源未被响应:对应中断源未被响应注意:必须在中断处理程序中对其服务标志位清注意:必须在中断处理程序中对其服务标志位清0。方法为对某位写。方法为对某位写1便清除为便清除为0。即在清除即在清除SRCPND中相应位后,要清除该寄存器相应位。中相应位后,要清除该寄存器相应位。5、INTPND-中断服务(挂起)寄存器中断服务(挂起)寄存器位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源位号位号中断源中断源31INT_