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寄存器中位为1时,INTOFFSET寄存器的值为x(x为0~31)
在铲除SRCPND、INTPND寄存器时,INTOFFSET寄存器被主动铲除。
具体内容详见芯片手册S3C2440
外部中止:
外部中止也有相关的寄存器EXTINTx,EINTMASK,EINTPEND三个寄存器
EXTINTx设置中止的触发方法低电平,高电平,上升沿,下降沿,边缘触发
EINTMASK
EINTPEND中止悬挂寄存器(相应中止触发,相应的方位1)读取此寄存器能够知道是那一个寄存器被触发了