Buffered UART TX hang Topic is solved

If you have a simple question and just want an answer.
User avatar
lukehatpadl
Member++
Posts: 25
Joined: Sat Jul 08, 2023 5:15 am

Buffered UART TX hang

Post by lukehatpadl »

I'm seeing an issue occasionally (well, frequently) which I haven't been quite able to get to the bottom of.

I have a buffered UART TX client on one tile and the server on another (which is also running the GPIO task). Each task has an entire core allocated as I had difficulty getting the UART to work reliably when combined with other tasks.

This issue manifests as the client task hung on _i.uart_tx_buffered_if._chan.write() whilst the server is stuck in WAITING_FOR_DATA.

Hardware is XE216 (Explorer board).

Has anyone seen this? I plan to test with both on the same tile to see if this changes things (although due to channel and core allocation this probably won't be possible for the final product).
View Solution
User avatar
CousinItt
Respected Member
Posts: 367
Joined: Wed May 31, 2017 6:55 pm

Post by CousinItt »

Which revision of lib_uart are you using?
User avatar
lukehatpadl
Member++
Posts: 25
Joined: Sat Jul 08, 2023 5:15 am

Post by lukehatpadl »

OK, fun fact: running on same tile seems to work. So maybe I need to try and refactor.

lib_uart version is 3.1.0, commit 464dccc1. The only change I made, which was an attempt to address the hang, was adding write16()/write32() methods to the interface. Those changes can be found here.