你好,我用OMPL138在DSP/BOIS下使用GPIO硬件中断,使用的是GPIOB6中的GPIOB6_6和GPIOB6_14,两个引进都可以按配置的方式进中断函数,但是进中断后INTSTAT67寄存器的值为0,照理对应的标志位应该是1啊,我分不出是6引脚产生的中断还是14引脚产生的中断。
deshun liu:
ARM那边有跑Linux,但是没用到这两个引脚的中断
Tony Tang:
回复 deshun liu:
检查一下寄存器地址搞对了没有,不可能没值,不然中断怎么产生的。
deshun liu:
回复 Tony Tang:
寄存器地址对了,测试了,ARM端LINUX系统不启动INTSTATn中就有对应引脚的值,启动Linux系统后,DSP端进中断INTSTATn中的值就全是0了
deshun liu:
回复 deshun liu:
我们这边有两块开发板,一块合众达的,一块瑞泰的,都是这样的。
Tony Tang:
回复 deshun liu:
那就是linux把它改了呗,这跟板子没有什么关系。
再说也不可能DSP一直不能改啊, Linux改完后,DSP再写也是可以的啊。
你在CCS下手动改写寄存器,把寄存器的值截屏上来看看,说实话,我不相信不可改写。
deshun liu:
回复 Tony Tang:
不是寄存器不能改,是在ARM端跑LIUNX系统时,DSP端进GPIO中断后,INTSTATn对应引脚的的标志没有,无法再DSP端区分中断是哪个引脚产生的。在ARM端不跑Linux系统时,DSP端GPIO中断的INTSTATn标志是正常的,通过CCS往INTSTATn中对应位写1会把对应标志清掉。ARM跑LINUX系统时DSP端的GPIO中断就不正常了,ARM端就跑一个系统,没有启动应用程序,也没用到GPIO中断。
deshun liu:
回复 Tony Tang:
寄存器是可以写的,我DSP端已经进中断了,对应GPIO的中断使能寄存器,上升沿/下降沿触发等寄存器的配置都是对的。通过CCS仿真看过的。
就是进中断后,INTSTATn中的值全为零,照理应该有对应引脚的GPIO中断标志,INTSTATn全为零,我就无法区分中断是哪个引脚产生的。
ARM端不跑LINUX系统时,DSP端没这个问题,DSP端INTSTATn寄存器中对应位有值,ARM端就跑了个系统,无应用程序,无GPIO中断。