arm是怎么样获知有中断请求的?
arm有irq和fiq两个中断线,每当有中断来的时候中断控制器都通过这两个线通知arm,那arm是怎么样获知有中断请求的?arm是通过轮询的方式检查这两个线呢?还是采用一些别的方式获知有中断到来的呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
arm有irq和fiq两个中断线,每当有中断来的时候中断控制器都通过这两个线通知arm,那arm是怎么样获知有中断请求的?arm是通过轮询的方式检查这两个线呢?还是采用一些别的方式获知有中断到来的呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
都说的是中断,FIQ,IRQ肯定是通过硬件构成的中断有求,如果学过数字电路的话,那就相当于是一根与线或者是或线,而输出是接到CPU输入的检测系统的,这样它就会获得知中断了。而具体可以知道是FIQ还是IRQ,就要通过其中的控制系统会记录着它是一个FIQ或都IRQ。
然后LINUX知道了之后就去看一下这个寄存器就知道是FIQ还是IRQ了。大致如下:在B S P中,主要写了其中的一个获取中断源的接口的一个汇编文件,你可以去看一下的,那里描述了一个函数,作用是从中断状态寄存器那里返回一个状态给LINUX,它就知道了是哪个中断源了。而这个函数被注册成所有中断的首先入口。知道了哪个中断源之后,LINUX再按照中断的状态进行各种中断的响应,也就是request_irq这个函数所申请的回调函数。这个时候就会进来了。
硬件上电信号发生变化,强制PC跳转到指定中断程序入口,我猜的。呵呵