当前位置: 技术问答>linux和unix
为什么寄存器会捕捉不到字符???
来源: 互联网 发布时间:2016-09-26
本文导语: 我操作一款CPU 设置其接收寄存器中断,只要接收到一个字符就会产生中断,然后我就去读取接收到的字符(这个FIFO也只能暂存一个字节) 但是后来出现一个很奇怪的问题,我每次读到的字节都是从第6个开始的,...
我操作一款CPU 设置其接收寄存器中断,只要接收到一个字符就会产生中断,然后我就去读取接收到的字符(这个FIFO也只能暂存一个字节) 但是后来出现一个很奇怪的问题,我每次读到的字节都是从第6个开始的,本来应该IO口有第一个字节的时候就会触发中断的,但是却直到第六个字节才触发,我用示波器也测量了下,有前6个字节的波形的,但是为什么会出现这样奇怪的问题呢,求解~~~~
|
中断信号是在第1个字节到达时产生的吗?
如果是的话,那么你的中断程序是如何写的?
初步感觉是你读得太慢了。造成了前面几个字节的丢失。
详细点说,就是从中断产生的这一瞬间开始,到系统响应中断程序,再到开始读寄存器。这段时间中你的硬件已经发出了6个字节。这时,你的中断响应程序读到的就是第6个字节。
如果是的话,那么你的中断程序是如何写的?
初步感觉是你读得太慢了。造成了前面几个字节的丢失。
详细点说,就是从中断产生的这一瞬间开始,到系统响应中断程序,再到开始读寄存器。这段时间中你的硬件已经发出了6个字节。这时,你的中断响应程序读到的就是第6个字节。