1、关闭cpsr寄存器里面的I(中断)和F(快速中断)位;
2、设置中断屏蔽寄存器。
针对2440:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CM5YzN5UjZzUGN4cjM1MmZyYzXyETOyATM3EzLchDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
这是中断处理过程,当有中断源(没有子中断源)来的时候,它会把这个中断记录在SRCPND里面;它还要经过MASK屏蔽寄存器,如果我们对对应位屏蔽了,那么它就无法进入到IRQ这里来处理。对于有子中断源的同理。
其代码:
针对6410:
打开S3C6410X文件,进入到Vectored Interrupt Controller这个章节,
6410和210采用的是向量中断的方式,
在6410要去屏蔽一个寄存器应该用那个寄存器呢?在6410里面中断源被分为了两组,第0组,VIC0和第1组,VIC1;
往这两个寄存器里面写入全1,
6410代码: