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.

The request of DMA from RTI isn't processed

It is necessary to execute data transfer by means of the DMA module on demand from RTI. After initialization and an eastroyka of the DMA channel, starts RTI. The request of DMA on the 12th channel is thus worked out. It is visible according to the register PEND. And the request isn't processed, i.e. transaction doesn't occur. The project I attach.

project.zip
  • Sergey,

    I do not see any RTI DMA request is set in your source code. If you want to enable DMA request on compare3, you need to the following.

    rtiREG1->SETINT = 0x00000800U;

    Thanks and regards,

    Zhaohong

  • Zhaohong Zhang said:

    I do not see any RTI DMA request is set in your source code. If you want to enable DMA request on compare3, you need to the following.

    rtiREG1->SETINT = 0x00000800U;

    I assume to use to use formation of DMA of request from compare0. In a code I have a switching on of DMA of request on the appropriate channel (the 46th line sys_main.c):


    rtiREG1-> SETINT = (0x01U << 8);


    thus I watch that 8 bits of the register PEND join, but transaction of DMA doesn't occur.

  • Sergey,

    I found a problem in the dmaEnable() function you used.

    inline void dmaEnable(void)
    {
      dmaREG->GCTRL  = 0x00000001; /* reset dma       */
      dmaREG->GCTRL |= 0x00010000; /* enable dma      */
      dmaREG->GCTRL |= 0x00000300; /* stop at suspend */   
    }

    The first instruction does a software reset to the DMA module. You call it after you configure the module. This instruction pull the register values back to the reset state. I removed this instruction and transfer works. If you want keep this function as is, you need to call it before DMA configuration.

    Please let me know if this solves your problem.

    Thansk and regads,

    Zhaohong