Please suggest configurable input for the memory pheripheral(SCI3 TX) DMA limplmentation in TMS570LC4357
below is the attached sample code i have written
#if ((__little_endian__ == 1) || (__LITTLE_ENDIAN__ == 1))
#define SCI3_TX_ADDR ((uint32_t)(&(sciREG3->TD)))
#define SCI3_RX_ADDR ((uint32_t)(&(sciREG3->RD)))
#define SCI4_TX_ADDR ((uint32_t)(&(sciREG4->TD)))
#define SCI4_RX_ADDR ((uint32_t)(&(sciREG4->RD)))
#else
#define SCI3_TX_ADDR ((uint32_t)(&(sciREG3->TD)) + 3) // 0xFFF7E538debug transmit
#define SCI3_RX_ADDR ((uint32_t)(&(sciREG3->RD)) + 3)
#define SCI4_TX_ADDR ((uint32_t)(&(sciREG4->TD)) + 3)
#define SCI4_RX_ADDR ((uint32_t)(&(sciREG4->RD)) + 3)
#endif
#define DMA_SCI3_TX DMA_REQ31
#define DMA_SCI3_RX DMA_REQ30
#define DMA_SCI4_TX DMA_REQ43
#define DMA_SCI4_RX DMA_REQ42
#define SCI_SET_TX_DMA (1<<16)
#define SCI_SET_RX_DMA (1<<17)
#define SCI_SET_RX_DMA_ALL (1<<18)
void main()
{
gioInit(); //GPIO initialization
rtiInit(); //timer initialization
hetInit(); //HET initialization
sciInit(); //serial initialization
spiInit(); //This function initializes the SPI module - SPI4 is used for communication//
g_dmaCTRL ctrlPacket;
/*Load source data*/
for (i=0; i<128; i++)
{
srcBuffer[i] = i;
}
ctrlPacket.SADD = (uint32)srcBuffer; // source address
ctrlPacket.DADD = (uint32)SCI3_TX_ADDR; // destination address
ctrlPacket.RDSIZE = ACCESS_32_BIT; // read size
ctrlPacket.WRSIZE = ACCESS_32_BIT; // write size
ctrlPacket.ADDMODERD= ADDR_INC1; // increment source
ctrlPacket.ADDMODEWR= ADDR_INC1; // increment dest
ctrlPacket.ELCNT = 128; // 128 elements
ctrlPacket.FRCNT = 1; // 1 frame
ctrlPacket.TTYPE = FRAME_TRANSFER; // Memory → Memory
ctrlPacket.PORTASGN = PORTA_READ_PORTB_WRITE; // data port
dmaSetCtrlPacket(DMA_CH0, ctrlPacket);
dmaReqAssign(DMA_CH0, DMA_SCI3_TX);
dmaSetChEnable(DMA_CH0, DMA_SW);
// dmaEnable();
//
sciREG3->SETINT |= SCI_SET_TX_DMA;
sciREG1->GCR1 |= 0x01; // enable SCI
}
