编写LINUX驱动,中断问题。
一个中断号只能有一个中断处理函数
在中断处理时可以根据SUB SOURCE PENDING REGISTER来判断是TXD,RXD还是ERR产生的中断
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
一个中断号只能有一个中断处理函数
在中断处理时可以根据SUB SOURCE PENDING REGISTER来判断是TXD,RXD还是ERR产生的中断
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
可以查看串口的状态寄存器,确定到底是哪个中断发生了
中断共享,可以看一下ldd上面有讲到。
就是说共享中断的话,一般中断发生,会遍历执行各个共享注册的中断处理程序,于是,就要求这些中断处理程序能加以判断是否是自己的中断,不是的话能尽快退出。
我所说的判断就是在调用这个中断处理程序的时候,能很快知道是不是自己的中断,不是的话就立即返回。如果你使用的是共享中断,这个中断处理程序在编写的时候就需要多考虑一下了。
SA_INTERRUPT这个flag应该是快速处理中断,并不是共享的。如果是这样的话,那就是说你这些东东(tx,rx)是使用的独立中断
中断号是共享的,所有相同中断号的ISR都注册到一个链上。
这个连上的ISR都会被调用。
在你的中断处理函数中需要检测状态寄存器才能是哪个中断发生了。