You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在QEMU中保留ESP32 UART0窗口输出,仅重定向UART1到PTY

解决ESP32 QEMU中UART0保留窗口输出、UART1重定向到PTY的问题

直接修改QEMU启动命令,将第一个串口(对应ESP32的UART0)绑定到标准输入输出(QEMU窗口),第二个串口(对应UART1)指定为PTY即可:

qemu-system-xtensa -nographic -M esp32 -m 4 -drive file=$ESP_FILE,if=mtd,format=raw -gdb tcp::1234,nowait -serial stdio -serial pty -S

关键参数说明

  • -serial stdio:将ESP32的UART0绑定到QEMU的标准输入输出,bootloader日志、ESP_LOG输出、默认的printf()(ESP-IDF默认映射到UART0)都会直接显示在QEMU窗口中。
  • -serial pty:将ESP32的UART1绑定到伪终端设备,启动后QEMU会在控制台输出该PTY的路径(比如/dev/pts/1),你可以用cat /dev/pts/1或者串口工具(如minicom)读取UART1的输出。

为什么之前的命令不符合需求

你之前用两个-serial pty,QEMU会依次把ESP32的UART0、UART1分别绑定到两个PTY,导致UART0的输出也被重定向走。而用-serial stdio作为第一个串口参数,就能保留UART0在QEMU窗口的输出,同时仅将UART1分流到PTY。

验证方法

启动QEMU后,你会看到类似这样的提示:

char device redirected to /dev/pts/1 (label serial1)

此时QEMU窗口会正常显示bootloader、ESP_LOG等信息,而你的程序中通过UART1发送的内容会输出到/dev/pts/1,可以用另一个终端执行cat /dev/pts/1查看。

内容的提问来源于stack exchange,提问作者Alex Cristian R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 14:04:58