-
Notifications
You must be signed in to change notification settings - Fork 7.2k
-
Notifications
You must be signed in to change notification settings - Fork 7.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fsync call is not propagated to secondary USB_SERIAL_JTAG console (IDFGH-12104) #13162
Comments
There are typically two levels of buffering: in stdio (C standard library) and at the underlying device driver level. You got it right that the stdio buffer can be flushed using (Docs) |
Thanks for you help
|
It should be the other way around: printf("Hello World 2");
fflush(stdout);
fsync(fileno(stdout)); because fflush will transfer the |
I still have the problem ... :/ |
Can you please describe how you are connecting your board (via the usb-serial or the built-in USB) and attach your sdkconfig file? |
Sdkconfig
|
Okay, I understand the issue now. This is a bug in IDF indeed. You are using not the UART, but the USB_SERIAL_JTAG peripheral (since the cable is plugged into the built-in USB port of the C6). However when USB_SERIAL_JTAG as used as secondary output (CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y), we don't propagate fsync calls to it over here: esp-idf/components/vfs/vfs_console.c Line 110 in 4b5b064
You currently have two options:
We'll fix the issue, but it might take some time since part of the team is currently away for the Chinese New Year holidays. |
Thank you 👍 |
Calls to fsync need to also be propagated to secondary output when CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG is enabled. Closes #13162
Calls to fsync need to also be propagated to secondary output when CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG is enabled. Closes #13162
Calls to fsync need to also be propagated to secondary output when CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG is enabled. Closes #13162
Answers checklist.
IDF version.
5.2.0
Espressif SoC revision.
ESP32-C6
Operating System used.
Windows
How did you build your project?
VS Code IDE
If you are using Windows, please specify command line type.
PowerShell
Development Kit.
ESP32-C6-DEVKIT-1
Power Supply used.
USB
What is the expected behavior?
I expected it to write some data to UART stdout without the need of end my strings with "\n" (newline)
What is the actual behavior?
Instead it requires to \n to get the output working.
I need to output some binary data to stdout and "\n" (0x10) add unwanted values in my data stream
Steps to reproduce.
With :
It works
With :
It doesn't display anything, until I print '\n'
Debug Logs.
No response
More Information.
I tried to flush stdout with fflush and/or disable the buffer mecanism with setvbuf(stdout, NULL, _IONBF, 0); , but it changes nothing
The text was updated successfully, but these errors were encountered: