642硬中断延迟问题
问题描述:
系统调试过程中发现硬件中断经常得不到及时响应,根据现象推断中断会被延迟达150us以上。
问题分析:
中断信号是连到CPLD的,DSP的GPIO6也与CPLD相连。用CPLD的任一个输出脚IOX做为中断延迟指示。中断沿来了之后将IOX置为高电平,DSP进入中断服务函数马上给GPIO6一个翻转,CPLD检查到来自GPIO6的翻转后将IOX清为低电平。这样,通过观察IOX上的信号正脉冲宽度就可以看到从中断发生到中断得到响应所用的时间了。而且通过脉宽触发模式就可以设置大于150us的正脉冲触发,这样就能捕捉到异常情形了。通过测试发现,一般延迟只有400ns左右,但任务负载一重就会出现宽度超过150us的正脉冲,也就是中断被延迟了150us以上才得到响应。
下图为观察到的IOX管脚上的波形:
因为帖子字数限制,将整理后的资料加到附件了。
642中断延迟问题.pdf
(289.16 KB)
也可以到我的QQ空间查看这个帖子以及更多共享经验。
http://37564275.qzone.qq.com
经验共享,让学习更简单 |