This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

请教大神:C6672GPIO中断、Timer中断进不来是什么原因(附了程序)



请教各位大神:       

        我在测试C6672时,发现中断进不来。C6672的片子GPIO管脚连接的是FPGA-V7。如果只对GPIO进行读写,能看到FPGA给DSP的GPIO管脚送的数。但是利用FPGA来送给DSP中断则不能跳入中断。我查看手册,里面说对于CC667x系列的DSP的事件,GPIO0-7为每个核单独的GPIO中断,Timer中断也是0-7为每个核单独的,只有8-15才为共享的。是不是这样呢?没有理解错误吧。
        所以我把INT4-7配置成了GPIO8-11中断,INTMUX1 = 0x55545352,NTMUX3 = 0x44420000。只是这么设置中断进不来,定时器中断也没有。是不是哪个地方配置的不对。或者是我的中断向量表不对。程序是我参照例程修改的,程序我贴到附件里面了。请大神们帮我看看是不是哪个地方有问题。卡到这过不去了。灰常着急啊。
        另外,我看用中断向量表建立中断进不来,就用CSL_intcOpen、CSL_intcPlugEventHandler、CSL_intcHwControl、CSL_intcInit句柄来建立中断,但是总编译不过去,说这几个函数没有定义,我已经include了相应的头文件#include <csl_intcAux.h>、#include <csl_intc.h>怎么还是报错呢,路径我也加了。用这个在C6455 ccs3.3下都可以啊,怎么在ccs5.2不行呢。

        我把我的程序传上来,请大神帮忙看看。谢谢了啊。等着着急啊。

GPIO_TIME_INT_TEST.rar
  • GPIO0/1产生的中断是分别直接路由到core0/1 内部INTC,GPIO8~15产生的中断是广播到CORE0/1;Timer0/1产生的中断可以直接路由到core0/1 内部INTC,TIMER2~7产生的中断是广播到core0/1,具体可以参考C6672 data manual中断章节关于core及CIC的输入事件定义。

    INTMUX配置的没有问题,参考如下STK中GPIO例程函数GPIO_Interrupts_Init对中断的配置,确认中断都使能,并参考GPIO_init确认GPIO初始化配置。

    你使用的INTC函数,需要在工程中include相应的ITNC lib,这个lib位于pdk安装后CSL/lib目录下,对应文件ti.csl.intc.ae66(小端),大端使用ti.csl.intc.ae66e,如安装目录C:\ti\pdk_C6678_1_1_2_6\packages\ti\csl\lib

    STK GPIO例程:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/47664.aspx

  • 我最终看了一下,是给中断初始化的时候,ISTP赋值错误。这个应该是赋终端向量表的起始地址,我把cmd给改了,地址变了。

    还有Andy,里说的timer2~7应该是没有了吧,是给6678用的,现在广播的应该是8~15吧。还是谢谢Andy大神。

  • 您好,看到帖子说您定时器和GPIO同时中断的问题已解决,我现在用的是C6678,同样想解决定时器中断和GPIO中断的问题,目前我的问题是:两个单独中断都没有问题,但是在同一个工程里,GPIO中断只能触发一次或者触发不了。。。。请问您有好的建议吗,或者可以留下联系方式吗?