Reply by Louis Loving January 14, 20042004-01-14
Problem with SDK and Two Codec DMA on 56585

Does anyone have any experience using DMA for two codecs with a DSP56858?  I can get the first Codec working fine but when I try to add a second, I cannot get it to work.

Stepping through essidmadrv.c, I notice that the section of code below does not appear to be executable in the debugger.  This leads me to believe they #ifdefs are defined but they are in bsp.h below.  If I try to redefine  BSP_DEVICE_NAME_ESSI_1_RX_DMA in appconfig.h, the compiler complains of multiple definitions.

Any ideas?

----essidmadrv.c-------
#else if (defined(BSP_DEVICE_NAME_ESSI_1_RX_DMA)  || \
          defined(BSP_DEVICE_NAME_ESSI_1_TX0_DMA) || \
          defined(BSP_DEVICE_NAME_ESSI_1_TX1_DMA) || \
          defined(BSP_DEVICE_NAME_ESSI_1_TX2_DMA))
    
    if (pHandle->EssiAddress == &ArchIO.ESSI1)
    {
       if (essidma1Created == true)
       {
           return (UWord16) 0;
       }
       essidma1Created = true;
    }
    else

----bsp.h-----------
#define BSP_DEVICE_NAME_ESSI_0_TX0_DMA    ((const char *)61)   /* ESSI0 TX0 DMA */
#define BSP_DEVICE_NAME_ESSI_0_TX1_DMA    ((const char *)62)   /* ESSI0 TX1 DMA */
#define BSP_DEVICE_NAME_ESSI_0_TX2_DMA    ((const char *)63)   /* ESSI0 TX2 DMA */
#define BSP_DEVICE_NAME_ESSI_1_RX_DMA     ((const char *)64)   /* ESSI1 RX DMA */
#define BSP_DEVICE_NAME_ESSI_1_TX0_DMA    ((const char *)65)   /* ESSI1 TX0 DMA */
#define BSP_DEVICE_NAME_ESSI_1_TX1_DMA    ((const char *)66)   /* ESSI1 TX1 DMA */
#define BSP_DEVICE_NAME_ESSI_1_TX2_DMA    ((const char *)67)   /* ESSI1 TX2 DMA */
#define BSP_DEVICE_NAME_CODECDMA_0        ((const char *)68)   /*CS4218 Codec*/
#define BSP_DEVICE_NAME_LCD                        ((const char *)69)   /* TDC1 LCD */
#define BSP_DEVICE_NAME_KEYPAD                 ((const char *)70)   /* TDC1 Keypad */
#define BSP_DEVICE_NAME_IDC                         ((const char *)71)   /* IDC */
#define BSP_DEVICE_NAME_CODECDMA_1        ((const char *)72)   /*Codec*/
#define BSP_DEVICE_NAME_CODEC_1               ((const char *)73)   /*Codec*/

Thanks,
Louis