新闻中心

EEPW首页>嵌入式系统>设计应用> ARM·中断控制器

ARM·中断控制器

作者: 时间:2016-11-24 来源:网络 收藏
【实例分析】
(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的中断源】(太多)
这里关于一级中断和二级中断源的一个处理
(EINT8_23,ENT4_7)

【中断相关的控制寄存器】
当一个中断响应,我们可以通过相应地控制寄存器对中断进行定性的控制,也就是操作这些寄存器 ;
*源挂起寄存器 SRCPND (与SUBSRCPND相似)
*中断模式寄存器 INTMOD (选择中断模式,设置为0:IRQ中断;设置为1:FIQ中断)
*中断屏蔽寄存器 INTMASK (用来配置SRCPND的中断是否被屏蔽)(只能屏蔽IRQ)
*中断优先级寄存器 PRIOPITY
*中断挂起寄存器 INTPND (选择优先级最高的一个中断,置1)
*确认中断源寄存器 INTOFFSET (对应INTPND)
*子中断源源挂起寄存器 SUBSRCPND(清中断时往SUBSRCPND寄存器中的对应位写入1)
*子中断屏蔽寄存器 INTSUBMASK(设置为1:对应子中断被屏蔽 ;设置为0:表示子中断允许)
(关于 挂起:有人说的很好,挂起是被翻译过来的,英文是Pending,另一个意思更加准确:等待被执行)
(多个中断一起响应的时候,优先级更高的中断先执行,其他被挂起)
【S3C2440A的外部中断寄存器】
*外部中断控制寄存器EXTINTx
*外部中断屏蔽寄存器EINTMASK
*外部中断挂起寄存器EINTPEND
(1)EXTINTx


设置可以控制低电平触发,高电平触发,下降沿触发,上升沿触发,边沿触发
(2)外部中断屏蔽寄存器

(3)外部中断挂起寄存器


上一页 1 2 下一页

关键词:ARM中断控制

评论


技术专区

关闭