pci的寄存器的大小
看《linux设备驱动程序》上写的,所有的PCI设备都有至少256个字节的地址空间,前64字节是标准化的,而其余的是设备相关的。这256字节是不是都是配置寄存器的空间?
我装上我自己的pci板卡后,用pci_resource_len(pdev,0)得到IO内存的长度为128,这单位应该是字节,我想问下:这IO内存所对应的寄存器是包括在之前那256字节里吗?还说是说另外的寄存器,专门的拿来实际应用的?
另外,这里是128,但是我实际的人家给的datasheet里只有32字节有对应的说明啊?那是不是说另外的96字节没有应用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
PCI 规范里规定了至少2个以上的地址空间。一个是“配置空间”,另外一个是一般的IO访问空间(具体名字记不清了 = =)。前面是标准的,所有PCI设备都要支持(当然,里面有些字节是可选的)。 后面一个是每个设备不同的。
你看的书里面说的是配置空间,代码里那个函数拿到的应该是后面的一般IO空间。二者没关系。人家给你的手册里,32的单位是啥? byte? dword?
回复 2# accessory
32应该是字节,因为他写的寄存器是32位的,而BASE+00用于测试,下一个单元是BASE+04,所以应该是字节,也就是有32字节
那就问问做硬件的人。。。其实空间大了还是小了无所谓,设备的功能都能实现就可以了