专题2-通过按键玩中断
1.中断 :向CPU发出请求停止当前任务处理发出请求的外设的事件。另外一种CPU和外设交互的方式是轮询,效率太低了。
2.中断生命周期:
(1)信号产生(中断源)
(2)信号过滤(中断控制器)
(3)信号处理(CPU)
3.不同的CPU可以处理的中断源数目不一样
4关于中断过滤,分为有无子中断,见下图
5.中断处理,2440是采用非向量方式,每次都有固定的入口地址,然后用软件来判断中断源,效率比较低
6.6410和210是采用向量方式,由于在初始化的时候就已经将各种中断源的处理程序的入口地址和硬件的中断标志一一匹配了,所以是有硬件直接决定当某个中断发生的时候执行某个具体的中断处理函数,效率高
7.软件任务
(1)对中断源初始化
(2)对中断控制器初始化(先是子中断控制器,再是中断控制器),打开中断(因为之前屏蔽了)
(3)针对是否是采用向量方式编写相应的CPU处理函数。
(4)中断清0,比较特殊,是写1清0
(5)对中断模式下的SP指针做初始化
8.在start.s里面,跳转到中断处理函数用的是相对跳转,不是绝对跳转
9.IRQ中断向量处理部分
10.初始化IRQ模式的堆栈
11.中断源初始化
12.中断控制器初始化
13.和前面的中断向量处理部分完成的中断信号处理部分
14.6410的中断控制器要多几个步骤
(1)确定中断触发方式
(2)使能外部中断,要用到VICINT控制寄存器
(3)向量中断:每个中断源对应一个寄存器,每个寄存器存放该中断处理程序的入口地址,故直接由硬件完成了对中断源的判断以及中断处理程序的调用,(不用软件完成),故初始化的时候要将对应的中断处理程序填写到对应的寄存器中。还要使能该功能,cp15的c1寄存器。210则不用使能,他默认使用向量中断方式。
(4)在清除中断标志的时候还要多清除VICxADDRESS

浙公网安备 33010602011771号