Tool/software: TI-RTOS
Hello,
We need to operate two UART instances (instance number 4 & 5) on an AM572x processor in DMA mode in order to achieve transmitting 180 contiguous bytes without any time gaps. Therefore we copied source-code from the TI example project 'UART_BasicExample_idkAM572x_DMA_armTestproject' into our project. The example test case is called 'UART_TEST_ID_DMA_CB'.
Inside our *.cfg file we only did the following (like inside the example project):
/* Load the uart package */
var Uart = xdc.loadPackage('ti.drv.uart');
But we can see that the transmission is not contiguous, which is an indication that we do not send the data via DMA to the Tx FIFO, see below the time gap in a logic analyzer measurement inside the red circle:
We figured out via the map file that the UART example project links a different library to the project:
The example project uses:
.text.UART_open_v1
0x8002fef0 0x278 C:\ti\pdk_am57xx_1_0_10\packages\ti\drv\uart\lib\a15\release\ti.drv.uart.profiling.aa15fg(UART_v1.oa15fg)
Our project uses:
0x8814fa0c 0x98 C:\ti\pdk_am57xx_1_0_10\packages\ti\drv\uart\lib\a15\release\ti.drv.uart.aa15fg(UART_v1.oa15fg)
.text.UART_open_v1
So I have basically the following questions:
1) Why doesn't the function 'UART_open()' return a NULL pointer although obviously no DMA transfer is being used for sending data to the Tx FIFO?
2) Why does the example project link a different library to the project?
3) What do we have to do in order to get those two UART instances working in DMA mode inside our own project?
Regards,
Andreas