S32K312 DMA + IDLE cannot receive data after printing.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K312 DMA + IDLE cannot receive data after printing.

345 Views
li3
Contributor II

Hi NXP,

    S32K312 uses DMA to receive data, define an array RXBuffer to store data, I found that as long as the RXBuffer data is printed, the RXBuffer array will not receive new data, please ask NXP why?

    However, after I have defined the RXBuffer array into non-cacheable memory, the RXBuffer array can also receive new data after printing the data in the RXBuffer array. Please tell me the reason in detail, thank you.

    I checked the post below, but I don't understand why. Please elaborate on that.

https://community.nxp.com/t5/S32K/The-S32K312-UART-DMA-IDLE-No-matter-which-UART-sends-data-is/m-p/1...

Best  Regards,
Li 3

0 Kudos
Reply
1 Reply

324 Views
Julián_AragónM
NXP TechSupport
NXP TechSupport

Hi @li3,

when working with UART and DMA, the MCL Integration Manual (RTD_MCL_IM.pdf) states that the Rx and Tx buffers should be allocated in the NON-CACHEABLE area, and that the addresses of Tx and Rx message transmit via DMA should be 32-byte aligned.
 
Julin_AragnM_1-1718036647072.png

 

This is due to cache coherency problems when D-CACHE is enabled.

Best regards,
Julián


 

0 Kudos
Reply