打印

642硬中断延迟问题

[复制链接]
1790|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zjd1|  楼主 | 2009-11-5 18:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IO, CPLD, PLD, pi, gp
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
经验共享,让学习更简单

相关帖子

沙发
yxwsz| | 2009-11-5 22:50 | 只看该作者
如果要仔细查找原因,建议好好看看TI的文档;

不过DSP的长处是用来处理数据流,比如使用EDMA进行数据传输和变换,使用VLIW对数据进行处理,在使用的时候要尽量避免interrupt, 因为interrupt会打断指令流水,降低算法运算效率。如果你的本意是使用interrupt来处理外设数据,还不如使用event来触发DMA更好,这样可以不用打断CPU的指令流水线。

如果要特别强调interrupt相应的话,外加一个协处理器/mcu是更好的选择,或者使用双核芯片(DM6446, OMAP3530), 使用RISC来处理比较频繁的外设中断,而使用DSP来处理数据流。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

103

帖子

18

粉丝