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.

关于使用 PDSP 来触发 EDMA传输的配置



TI 的工程师你们好。

我现在在使用C6670, 正在做AIF2的数据接收。 AIF2收到数据后, 会通过 PKTDMA 送到 RXQ , 我在RXQ上配置了 PDSP。本来是在PDSP收到2个 描述符的时候会给dsp出中断来处理, 现在为了提高效率想通过PDSP直接触发EDMA来做数据处理,代替原来的中断。但我看了下文档不知道怎么配置来把PDSP的event触发EDMA, 想问下工程师我的想法能不能实现,如果能实现的话应该配置哪些寄存器来实现?

谢谢各位的回复。

  • 可以实现,6670手册165页,QM的事件映射到CIC1的输入,然后map到EDMA控制器事件上

  • 你好, Allen Yin, 谢谢你的回复。

    你所说的 QM事件是指 " QM_INT_HIGH_N " QM interrupt  Event吗,  我需要的是配置PDSP,在pdsp pop  2个(有2根AIF2的天线,需要全部接收完才能触发EDMA)desc后使用PDSP的EVENT来触发EDMA。 是不是PDSP的32个channel所产生的EVENT就对应这个 QM_INT_HIGN_N (N=0..31)呢。

  • 可以使用Accumulator 监控high priority channel,每个channel会产生事件到CIC,如channel 16产生的事件QM_INT_HIGH_16作为CIC1 的24号输入事件,可以配置CIC1将其24号输入事件与相应的输出事件映射,之后路由到对应的EDMA channel。

  • 你好, Andy Yin1.

    我对CIC这块不是很熟悉,下面是我理解的代码,不知道那里有问题触发不了EDMA.

    //获得CIC1 handle
    CSL_CPINTC_Handle hInct1Handle = CSL_CPINTC_open(1);
    
    //我使用的是PDSP channel 5作为CIC1 input event. output使用EDMA 的 CC1 45 event, 即 CIC1_OUT2
    CSL_CPINTC_mapSystemIntrToChanne(hInct1Handle, CSL_INTC1_QM_INT_HIGH_5, CSL_EDMA3CC1_INTC1_OUT2);
    
    //使能对应system event
    CSL_CPINTC_enableSysInterrupt(hIntc1Handle, CSL_INTC1_QM_INT_HIGH_5);

    谢谢你的回复.


  • 更新:

    使用下面的代码可以正常触发EDMA 进行数据搬移,昨天是EDMA配置有误。 但是必须要 CSL_CPINTC_enableHostInterrupt(hIntc1Handle, 2); 这句话,我看很多实例中没有这句啊,“enableAllHost”难道不行吗?

    上面的代码对应 output event应该理解错了,下面是我修改后的代码,

    hIntc1Handle = CSL_CPINTC_open(1);
    CSL_CPINTC_disableAllHostInterrupt(hIntc1Handle);
    CSL_CPINTC_setNestingMode(hIntc1Handle, CPINTC_NO_NESTING);
    
    //使用channel 2对应CIC1_OUT2, 对应EDMA Table 8-36的45号event
    CSL_CPINTC_mapSystemIntrToChannel(hIntc1Handle, CSL_INTC1_QM_INT_HIGH_5, 2);
    CSL_CPINTC_enableSysInterrupt(hIntc1Handle, CSL_INTC1_QM_INT_HIGH_5);
    CSL_CPINTC_enableHostInterrupt(hIntc1Handle, 2);
    CSL_CPINTC_enableAllHostInterrupt(hIntc1Handle);
    
    

    CSL_INTC1_QM_INT_HIGH_5对应着 CIC1 system event 142号,在RAW STATUS [4] 的bit14, 在pdsp channel收到数据前后可以读取该raw status bit被置位了, 但是对应的host event PRI_HINT_REG[2]却没有变化.