ARM裸机开发22(2440中断原理)

1CPU与外设之间的数据传送控制方式(I/O控制方式)

通常有以下三种方式

1.查询方式

2.中断方式

3.DMA方式(在独立开辟的一个空间不由CPU控制,有DMA自己进行管理。实现存储器与外设的高速的数据传输方式)


主要讲中断:

中断请求---->中断仲裁---->中断响应---->中断处理---->中断返回(要保存现场)


中断处理流程:

1.中断控制器捕获当前外设发出的中断信号,通知SOC(中央处理芯片:片上系统

2.SOC保存当前程序的运行环境,调用中断服务程序(ISR:一小段代码)进行处理中断

3.在ISR中通过读取中断控制寄存器、外设的相关寄存器来识别那一个中断触发,获取硬件中断号IRQ,跳转到相应的处理程序(详细完整的处理程序)来完成中断处理

4.清除中断:通过读写相关寄存器

5.恢复被中断的环境,继续执行(回复现场)



2440有60个中断源

一级中断源,二级中断源等的概念


图片中的所指示的单元为相应的寄存器

悬挂寄存器source pending(SUBSRCPND、SRCPND)清零方式为向相应的位写1.与 常规的清零方式不同。INTPND也是通过写1进行清0操作


INTOFFSET:这个寄存器用来表示INTPND寄存器中哪位被置1了,即INTPND寄存器中位【x】为1时,INTOFFSET寄存器的值为x(x为0~31)

在清除SRCPND、INTPND寄存器时,INTOFFSET寄存器被自动清除。

具体内容详见芯片手册S3C2440


外部中断:

外部中断也有相关的寄存器EXTINTx,EINTMASK,EINTPEND三个寄存器

EXTINTx设置中断的触发方式低电平,高电平,上升沿,下降沿,边沿触发



EINTMASK


EINTPEND中断悬挂寄存器(相应中断触发,相应的位置1)读取此寄存器可以知道是那一个寄存器被触发了






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值