Maximum size of FLEXIO UART transfer with EDMA

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Maximum size of FLEXIO UART transfer with EDMA

ソリューションへジャンプ
1,496件の閲覧回数
arnhold
Contributor I

Hello everybody

I am trying to send a large array through FLEXIO UART with DMA. I used the flexio_uart_edma_transfer example.

Everything works fine until my array is larger than 32767 bytes. This means that some signed 16-bit variable is being used to send that array, but all uart/edma struct variables are 32 bits.

Is there a limitation of 32767 bytes on a single transfer? Or could be something inside the driver?

iMXRT1064 

Best Regards,

Arnhold

ラベル(1)
0 件の賞賛
返信
1 解決策
1,476件の閲覧回数
imxrtuser
Senior Contributor I

Hello,

maybe the eDMA is used the same way as in the LPUART example project and limits the maximum single transfer size.

see my question and the solution to LPUART in this post https://community.nxp.com/t5/i-MX-RT/Is-there-a-lpuart-edma-transfer-size-limit/m-p/1025967

Kind regards,

Stefan

元の投稿で解決策を見る

3 返答(返信)
1,477件の閲覧回数
imxrtuser
Senior Contributor I

Hello,

maybe the eDMA is used the same way as in the LPUART example project and limits the maximum single transfer size.

see my question and the solution to LPUART in this post https://community.nxp.com/t5/i-MX-RT/Is-there-a-lpuart-edma-transfer-size-limit/m-p/1025967

Kind regards,

Stefan

1,464件の閲覧回数
arnhold
Contributor I

Hello Stefan

Thank you very much for your reply. I've read the situation that you sent and it is the same phenomenon that I am facing.
I will take a look at the scatter/gather function to solve this situation.

Best Regards,

Arnhold

0 件の賞賛
返信
1,479件の閲覧回数
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

I checked the FLEXIO_UART_TransferSendEDMA() function in  <fsl_flexio_uart_edma.c> file for send data using eDMA. 

 The EDMA_PrepareTransfer() will initialize the DMA setting, the "xfer->dataSize" define the param transferBytes eDMA transfer bytes to be transferred, which was uint32_t variable.

flexio_uart_transfer_t *xfer

The struct flexio_uart_transfer_t define the dataSize is size_t (unsigned int).

If possible, please debug the code and set breakpoint at FLEXIO_UART_TransferSendEDMA() function to double check the set "xfer->dataSize" as expected.

Wish it helps.

Mike

 

0 件の賞賛
返信