Hello,
I have problem with setting DMA SCI on peripheral request.
/* initialise SYS module */
ioctl(SYS, SYS_INIT, NULL);
/* configure COP module */
ioctl(COP, COP_INIT, NULL);
/* configure all GPIO modules */
ioctl(PIT_1, PIT_INIT, NULL);
ioctl(GPIO, GPIO_INIT_ALL, NULL);
ioctl(XBAR_A, XBAR_A_INIT,NULL);
ioctl(SCI_1, SCI_DMA_TRANSMITTER, SCI_ENABLE);
ioctl(SCI_1, SCI_DMA_RECEIVER, SCI_ENABLE);
ioctl(SCI_1, SCI_INIT, NULL);
ioctl(DMA, DMA_CH0_CLEAR_STATE_MACHINE_CONTROL, NULL);
ioctl(DMA_0,DMA_SET_SOURCE_ADDRESS,0x00E094);
ioctl(DMA_0,DMA_SET_DESTINATION_ADDRESS, (UWord32)&data2);
ioctl(DMA_0, DMA_SET_PERIPHERAL_REQUEST, DMA_ENABLE);
ioctl(DMA, DMA_CH1_CLEAR_STATE_MACHINE_CONTROL, NULL);
ioctl(DMA_1,DMA_SET_SOURCE_ADDRESS,(UWord32)&data);
ioctl(DMA_1,DMA_SET_DESTINATION_ADDRESS, 0x00E094/*(UWord32)&ArchIO.Sci1.scidr)*/);
ioctl(DMA_1, DMA_SET_PERIPHERAL_REQUEST, DMA_ENABLE); // While stepping through the program occurs here setting the bit CE in register DMA_DSR_BCR1.
ioctl(DMA, DMA_INIT, NULL);
/* initialise interrupt controller and enable interrupts */
ioctl(INTC, INTC_INIT, NULL);
archEnableInt();
Other setting in GCT:
In Attached is the full code. Does anyone know what is wrong set? Thank you very much
Yours Sincerely
Martin Smolák
Original Attachment has been moved to: DMA_test.zip