ARM·中断控制器
![](http://editerupload.eepw.com.cn/fetch/20161101/320997_2_0.jpg)
【实例分析】
(1)轮流按下K1-K4,可以看见LED1-LED4被轮流点亮 ;
(2)同时按下K3-K4,只有LED4被点亮;
(3)同时按下K1-K2,LED1,LED2被点亮;
(4)同时按下所有按键,只有LED4被点亮;
CPU与外设之间的数据传送控制方式,通常有以下三种:
*查询方式
*中断方式
*DMA方式(Direct Memory Access)
直接内存存取是数字信号处理器DSP用于快速数据交换的重要技术
独立于CPU后台批量数据传输能力
【中断】
*中断请求
*中断仲裁
*中断响应
*中断处理
*中断返回
中断处理流程:
(1)中断控制器捕获当前外设发出的中断信号,通知soc
(2)soc保存当前程序的运行环境,然后调用中断服务程序来处理中断
(3)ISR中通过读取中断控制寄存器、外设的相关寄存器来是哪一个中断触发,获取硬件中断号IRQ,跳转到相应的地方完成中断
(4)清楚中断:通过读写相关中断控制寄存器和外设相关的寄存器来实现
(5)最后恢复被中断程序的环境,继续执行
【S3C2440A的中断源】(太多)
![](http://editerupload.eepw.com.cn/fetch/20161101/320997_2_0.jpg)
这里关于一级中断和二级中断源的一个处理
(EINT8_23,ENT4_7)
![](http://editerupload.eepw.com.cn/fetch/20161101/320997_2_2.jpg)
【中断相关的控制寄存器】
当一个中断响应,我们可以通过相应地控制寄存器对中断进行定性的控制,也就是操作这些寄存器 ;
*源挂起寄存器 SRCPND (与SUBSRCPND相似)
*中断模式寄存器 INTMOD
(选择中断模式,设置为0:IRQ中断;设置为1:FIQ中断)
*中断屏蔽寄存器 INTMASK
(用来配置SRCPND的中断是否被屏蔽)(只能屏蔽IRQ)
*中断优先级寄存器 PRIOPITY
*中断挂起寄存器 INTPND
(选择优先级最高的一个中断,置1)
*确认中断源寄存器 INTOFFSET
(对应INTPND)
*子中断源源挂起寄存器 SUBSRCPND(清中断时往SUBSRCPND寄存器中的对应位写入1)
评论