Closed t-moe closed 9 months ago
It does not work because - apparently - the ESP IDF UART driver does not send any notification on UART FIFO queue being empty / being consumed: https://github.com/espressif/arduino-esp32/issues/6385
Options to fix this:
@t-moe I've in the meantime come with a simple solution which uses the esp_idf_hal::task::yield_now
primitive.
While not efficient in terms of CPU utilization, it should work.
Maybe you can try it out.
Hei @ivmarkov , thanks for working on this and yes, I'll take a look and report back. (It might take a while though....)
The following code blocks forever on the
write_all
line, if I write more than 129 bytes.130 bytes are output to uart, then the core hangs up....
Also, consider this modification which inlines
write_all
:It works and outputs:
But when I remove the
log::info
line it will just hang forever as before.This seems to be a timing thing.
I'm using esp-idf master. and esp-idf-hal v0.42.5