是否可以在qemu中不通过-serial访问-chardev?

时间:2018-03-07 18:42:02

标签: qemu

我正在使用qemu-system-arm来使用填充了内存映射设备仿真的自定义机器来执行裸机皮质-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个设备。

1 个答案:

答案 0 :(得分:0)

QEMU的chardev抽象有"前端"和"后端"。

"后端"是你在主机端连接的任何东西(可能是UDP端口,stdin / stdout,UNIX域套接字等)。 -chardev选项用于创建和配置此后端。

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

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