risc-v 架构下, 通过 qemu 启动的 Linux 操作系统和在 qemu 中使用源码模拟的设备怎么访问同一段访问物理内存地址,实现数据交互? #28
-
|
【环境说明】:qemu 环境部署在一个 ubuntu 20.04 环境中,代码来源是 平头哥的 qemu 的代码仓库 : https://github.com/XUANTIE-RV/qemu.git ,版本号为 8.2.94 ; |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
|
首先你可以通过 qemu monitor 终端,输入 info mtree 检查一下你要访问的这个地址,在哪个 memory region 里面,然后再看这个memory region 属于哪一个 address space。 可以通过 address_space_rw() 来访问。 如果在设备里面访问其他设备的地址空间,标准做法是通过 connect 其他 qdev ,通过注册目标 device 的访存方法给到你的设备去访问。 也可以直接通过 cpu_physical_memory_rw() 方法进行读写,这个访存接口默认访问的是 system memory region 下面的部件。 |
Beta Was this translation helpful? Give feedback.
-
|
感谢支持,问题已经解决了。其实不是内存的问题,是 qemu 的实现和 Linux 操作系统中驱动的操作时机先后的问题。 |
Beta Was this translation helpful? Give feedback.
感谢支持,问题已经解决了。其实不是内存的问题,是 qemu 的实现和 Linux 操作系统中驱动的操作时机先后的问题。