我正在尝试在qemu中添加新设备。
在相应的cpu文件中,使用sysbus_mmio_map设置基址。
sysbus_mmio_map(SYS_BUS_DEVICE(&s->brif), 0, BASE_ADDRESS);
在新创建的设备文件中,
memory_region_init_io(&s->iomem, obj, &ops, s, "brif", SIZE);
sysbus_init_mmio((SYS_BUS_DEVICE(obj), &s->iomem);
ops具有相应的读写处理程序。
当我使用gdb访问IO内存区域时,我的读取处理程序被调用,但是当我使用gdb写入IO内存区域时,我的写入处理程序没有被调用。
我错过了什么?
更新:如果我从guest虚拟机内部运行的代码写入IO内存区域,我会得到写处理程序,问题是当我尝试从gdb访问时。