我正在使用执行一个裸金属皮质-m3二进制使用一个自定义机器填充内存映射设备的仿真。为了在主机和运行在qemu中的m3二进制文件之间交换数据,我使用
-chardev udp,id=ch0,port=x,localport=y -serial chardev:ch0
然后在qemu中,我将一个设备绑定到serial_hds。写入串行设备,然后将udp数据包发送到主机。
我的问题是:我必须连接到-serial吗?我可以在某种程度上访问创建的chardevs而不通过-serial使用这种方式吗?
我想设置qemu来监听10个udp端口,但据我所知,-serial选项仅限于4台设备。
发布于 2018-03-08 11:04:53
QEMU的chardev抽象有“前端”和“后端”。
“后端”是您在主机端连接到的任何东西(可能是UDP端口、stdin/stdout、UNIX域套接字等)。-chardev选项是创建和配置这个后端的工具。
“前端”是QEMU方面的一部分。最常用的是UART (串口),但您也可以使用chardevs来指定如何与QEMU监视器或来宾并行端口对话。
在这种情况下,你的问题是“客人看到的东西是什么”(前端是什么?)这里一定有一些东西,这意味着你的董事会需要创建多个UART或其他东西。-serial是一个4的限制(您可能会通过本地黑客改变MAX_SERIAL_PORTS来提高这个限制),但是如果您的设备模型是以QEMU编写的,而不是直接查看serial_hds[],那么应该可以通过-serial (使用-device )以外的其他方式来配置它。或者-global ..。若要将chardev设置为设备属性,请执行以下操作。
https://stackoverflow.com/questions/49159120
复制相似问题