Comments (7)
Thanks for the support, now the example works correctly.
from qemu.
Hi @lcgamboa ,
Thanks for reporting this issue. As far as I know, this example requires an external USB-to-UART adapter as it uses another UART controller than the default one, with given pins from Kconfig
.
I cannot reproduce what you are getting, even on the real chip. What is your configuration for this example?
from qemu.
I'm sorry I forgot to let you know that I modified the code to use the default pins for ease of use with many different processors. I modified the lines 29 and 30 of file uart_echo_example_main.c from :
#define ECHO_TEST_TXD (CONFIG_EXAMPLE_UART_TXD)
#define ECHO_TEST_RXD (CONFIG_EXAMPLE_UART_RXD)
to:
#define ECHO_TEST_TXD (UART_PIN_NO_CHANGE)
#define ECHO_TEST_RXD (UART_PIN_NO_CHANGE)
from qemu.
Hi @lcgamboa ,
Thanks for the details, I also needed to use the UART port number 0 in the menuconfig
to reproduce the issue.
I will investigate this issue.
from qemu.
I did some more tests and it seems that there is some difference when the sent string is greater than 128 bytes. For real hardware the string limit is 1024 bytes, for Qemu esp32-c3 the limit is a multiple of 128. In the figure below a string of 2048 bytes is sent, for real hardware (top terminal) it is split into two parts of 1024 (in the most times). For Qemu esp32-c3 (bottom terminal) it is always split into several parts with sizes x*128 randomly. Same with ESP32 for hardware and on Qemu esp32. Apparently this is not a problem and is probably due to a limitation in the Qemu implementation.
from qemu.
Hi @lcgamboa ,
The reason behind this is that the ESP32-C3 UART controller underneath uses the ESP32 UART implementation, which explains why it has the same behavior. This choice was made to quickly get something up and running while developping other controllers.
If you think this is a critical bug and it needs to be fixed as soon as possible, feel free to open a new issue
from qemu.
Hi @o-marshmallow ,
I believe it is not critical, this limitation is because the buffers always have a fixed size of 128 in the Qemu implementation.
Another problem that occurs is that when the uart receive threshold is set to a value lower than 128, the interruption only happens when the buffer reaches 128 and throttle_rx=true
occurs. It's not critical either, but it can disturb an application that needs to process exactly the configured threshold.
from qemu.
Related Issues (20)
- eFuse BLOCK0 MAC (QEMU-135) HOT 3
- ESP32: segfault in qemu_coroutine_switch (QEMU-137) HOT 3
- Unknown memory area 0x3ff5C000 HOT 6
- Failed to burn efuses (QEMU-158) HOT 2
- Pre-encrypted firmware do not work on QEMU (QEMU-159) HOT 1
- ESP32C3 fails to boot with otadata partition and no factory app. (QEMU-160) HOT 15
- ASan issues (QEMU-161) HOT 1
- Write the secret key to BLK and QEMU will die and get stuck. (QEMU-162) HOT 1
- Bluetooth emulation for the esp32? (QEMU-166) HOT 1
- `nvs_flash_init` returns `ESP_ERR_NVS_NOT_INITIALIZED` (QEMU-171) HOT 1
- Crash when executing QEMU (QEMU-178) HOT 9
- ESP32C3 Qemu w64-mingw32 freeze with Arduino blink (QEMU-180) HOT 4
- Attach gdb or s argument shows duplicate yank instance (QEMU-183) HOT 2
- build fail on HEAD (QEMU-184) HOT 4
- binary install on ubuntu does not work. (QEMU-185) HOT 3
- Localization bios QEMU (QEMU-186) HOT 1
- ESP32 machines not available (QEMU-187) HOT 1
- Compilation help, no esp32 machine support after compilation (QEMU-200)
- ESP32-S3 documentation (QEMU-201) HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qemu.