TI中文支持网
TI专业的中文技术问题搜集分享网站

求分析:OMAP137系统中断互相影响的原因

我在程序中要处理GPIO外部中断和定时器。定时器和GPIO中断感觉相互之间有影响。并且发现以下几个问题:

1.通过观察寄存器,每当进入中断服务程序时,CPU全局中断使能都是关闭的,当中断服务程序返回后,全局中断打开。但是我在GPIO中断服务程序结束后要专门使能CPU全局中断,即CSR寄存器的最低位,否则就再不能进中断了,这是为什么?(定时器中断不存在这个问题,我不需要在服务程序中专门关闭或启动全局中断)

2.如果在定时器中断服务程序中专门用一条代码使能了全局中断,GPIO中断就不再产生了;但是如果不在定时器中断内使能全局中断,每当GPIO中断产生,定时器中断就再也没有了。

3.如果在每个中断服务程序中都有以下代码操作: 关闭全局中断—>清当前事件标志和中断标志—>使能全局中断。就会产生GPIO中断响应丢失的现象(GPIO中断是通讯的外部中断,频率比较高,定时器是1ms周期),我想这是不是中断过于频繁导致相互干扰?

请问我的处理方法有什么问题,如何让这两个中断正常运行?

Tony Tang:

MaoChao,

#1. 程序是在DSP端是吧,因为看到你提到CSR。

#2. 请问是否用了DSPBIOS或者SYSBIOS?

#3. 请问在ISR函数前是否加了interrupt关键字?

#4. 你说的没错,进入ISR关闭GIE是自动的,返回时自动打开GIE,所以不需要人为干预,除非想做中断嵌套。

你的这种使用场景是常用声景,所以使用是没有问题的,应该是哪里的处理不对。可以把代码贴上来看一下。

赞(0)
未经允许不得转载:TI中文支持网 » 求分析:OMAP137系统中断互相影响的原因
分享到: 更多 (0)