window驱动开发,外设isa外设物理地址内存映射后,读写数据无效

清湖水 2020-04-04 05:54:29
大神们好,闷头开发了两周window驱动了。有几个问题想不通。

1,是不是设备挂在pc上,如果没有正确驱动的话,在设备管理器能看到该设备有黄色警告图标的?
是因为外设的配置寄存器吗?如果外设没有配置寄存器的话,是不是在设备管理器是不显示的?

2,如果一个isa设备没有配置寄存器,但是知道实际物理地址,不知道vendorid和produce id。在使用MmMapIoSpace得到虚拟地址后,并不能成功读写isa外设,所以我映射的物理地址是指到了那里呢?

还有,此设备在Linux下的驱动代码,已经看过,仅是简单粗暴的映射了物理地址到虚拟地址,直接就使用了,却是能够正常。
如下代码:
request_mem_region(0xd2000, 0x500000, "dual_ports_ram");
g_device_address = ioremap_nocache(0xd2000, 0x500000);



小弟愚笨,看了几天资料,测试了几天驱动,这几个问题确实想不明白了。
请各位大神们,拜托给我指个方向。这几天挫败感有点强,不知道怎么走了
...全文
116 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
清湖水 2020-04-05
  • 打赏
  • 举报
回复
没人搭理我,自己回答下吧 因为两块板子不一样,一块板子地址d2000是开放给pci总线的。 另一块板子的d2000物理地址应该是自己片上外设占用了,所以我测试是能读到数据,但是不能和第一块板子通信。

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧