pci的寄存器的大小

发布于 2022-09-30 18:43:08 字数 297 浏览 18 评论 0

看《linux设备驱动程序》上写的,所有的PCI设备都有至少256个字节的地址空间,前64字节是标准化的,而其余的是设备相关的。这256字节是不是都是配置寄存器的空间?
我装上我自己的pci板卡后,用pci_resource_len(pdev,0)得到IO内存的长度为128,这单位应该是字节,我想问下:这IO内存所对应的寄存器是包括在之前那256字节里吗?还说是说另外的寄存器,专门的拿来实际应用的?
另外,这里是128,但是我实际的人家给的datasheet里只有32字节有对应的说明啊?那是不是说另外的96字节没有应用?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏末的微笑 2022-10-07 18:43:08

PCI 规范里规定了至少2个以上的地址空间。一个是“配置空间”,另外一个是一般的IO访问空间(具体名字记不清了 = =)。前面是标准的,所有PCI设备都要支持(当然,里面有些字节是可选的)。 后面一个是每个设备不同的。

你看的书里面说的是配置空间,代码里那个函数拿到的应该是后面的一般IO空间。二者没关系。人家给你的手册里,32的单位是啥? byte? dword?

故人如初 2022-10-07 18:43:08

回复 2# accessory

32应该是字节,因为他写的寄存器是32位的,而BASE+00用于测试,下一个单元是BASE+04,所以应该是字节,也就是有32字节

对你的占有欲 2022-10-07 18:43:08

那就问问做硬件的人。。。其实空间大了还是小了无所谓,设备的功能都能实现就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文