【问题标题】:Is it possible to access -chardev without going via -serial in qemu?是否可以在不通过 qemu 中的 -serial 的情况下访问 -chardev?
【发布时间】:2023-03-15 01:55:01
【问题描述】:

我正在使用 qemu-system-arm 来执行一个裸机 cortex-m3 二进制文件,它使用的是一个装有模拟内存映射设备的自定义机器。 为了在主机和在 qemu 中运行的 m3 二进制文件之间交换数据,我使用

启动 qemu

-chardev udp, id=ch0, port=x, localport=y -serial chardev:ch0

然后在 qemu 中我将一个设备绑定到 serial_hds[0]。写入串行设备,然后将 udp 数据包发送到主机。

我的问题是:我必须与 -serial 建立连接吗?我可以以某种方式访问​​创建的 chardevs 而不使用通过 -serial 的方式吗?

我想设置 qemu 监听 10 个 udp 端口​​,但据我所知,-serial 选项最多只能连接 4 个设备。

【问题讨论】:

    标签: qemu


    【解决方案1】:

    QEMU 的 chardev 抽象有“前端”和“后端”。

    “后端”是您在主机端连接的任何东西(可能是 UDP 端口、标准输入/标准输出、UNIX 域套接字等)。 -chardev 选项用于创建和配置此后端。

    “前端”是 QEMU 方面的部分。最常见的用途是 UART(串行端口),但您也可以使用 chardevs 来指定如何与 QEMU 监视器或访客并行端口通信。

    在这种情况下,您的问题是“客人看到的N个东西是什么”,即前端是什么?这里必须有 something,这意味着您的开发板实际上需要创建多个 UART 或其他东西。 -serial 是 4 的限制(您可能会通过本地 hack 更改 MAX_SERIAL_PORTS 来提高它),但是如果您的设备模型被编写为采用 QEMU chardev 而不是直接查看 serial_hds[] 它应该可以配置它其他而不是通过 -serial (使用 -device ... 或 -global ... 将 chardev 设置为设备属性)。

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      相关资源
      最近更新 更多