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

C6678 GPIO8 中断不触发问题

目前使用CORE0 单核运行 ,准备配置 GPIO8 管脚为输入,上升沿触发中断

中断配置使用的时CSL方式,讲GPIO8对应的82号事件直接映射到INT5上去。

中断服务程序是  HandleGPIO_INT,其中只是写了一句测试用的全局变量累加语句

FPGA端发送脉冲信号后,DSP端没有触发中断,未能进入到HandleGPIO_INT测试函数中去,烦请TI的专家给看看怎么排查,谢谢。

core 0的GIE IER都查过了是使能的,由FPGA发给DSP的GPIO8脉冲是一个单个的持续秒级的很长的高脉冲信号

1 通过查看寄存器状态发现EVENTFLAG如下图1所示:

EVENTFLAG[2]=0x00040000  说明82号事件(对应EVENTFLAG[2]值为82-64=18)硬件已经检测到了

2.通过查看寄存器状态发现INTMUX1 

         值为0x 0706525B,说明82号事件已经成功的通过中断选择器映射给了INT5

图1

 

Shine:

请问IFR.int5置1了吗?

user4787357:

回复 Shine:

查看了 通过CCS view register查看CORE 0的控制寄存器里IFRIF0-IF15全是0,这个会是神马问题

Shine:

回复 user4787357:

把EVTMASK2设成0。

user4787357:

回复 Shine:

1. 这个EVTMASK[0]-EVTMASK[2]我查手册是控制把32个事件是否可以合并为一个单一事件EVENT0-EVENT2输出的,我这里不需要事件合并,就单GPIO事件,应该用不到这个吧。

   相应bit设为0—-事件可以合并

   相应bit设为1—-事件不能合并

  我按照建议把EVTMASK[2]=0; 测试依然没有触发GPIO8中断,应该不是这个EVTMASK2的问题

2. 我又在线查了一下配置,发现CORE0的控制寄存器里,ISTP是指向0x00862000 ,这个地址在map文件里显示是.csl_vect段的地址(.map文件贴图)

    之前调C6455的时候也是用同样的CSL配置的,GPIO服务程序用CSL_intcPlugEventHandler绑定的,没有特定指定具体位置,也能触发中断的

    我在想是不是6678有差异,导致GPIO的中断服务程序它找不到入口。

Shine:

回复 user4787357:

现在的问题是IFR位没有置1,只有置1了才会进入中断服务程序,您可以手动将IFR置1,来验证您的中断向量表,中断服务程序有没有问题。

user5491830:

把EVTMASK2设成0

user5491821:

初始化的时候需要全部处理吗

user5491821:

回复 user5491830:

必须要设成0吗

user5491821:

回复 Shine:

这样应该只是一个中断设置吧

赞(0)
未经允许不得转载:TI中文支持网 » C6678 GPIO8 中断不触发问题
分享到: 更多 (0)