Linux PCI寄存器读取太慢
现在我必须编写一个PCI设备驱动程序。我使用内存映射方法访问PCI卡地址空间 但是现在,当我使用Linux PCI寄存器读取太慢,c,linux,C,Linux,现在我必须编写一个PCI设备驱动程序。我使用内存映射方法访问PCI卡地址空间 但是现在,当我使用readl宏读取PCI卡上的一个寄存器时,需要花费1µs的时间-这正常吗 代码:(COMEDI项目源代码) 然后可以使用mite->mite\u io\u addr访问PCI卡设备地址空间将您使用的代码添加到内存映射。读取PCI寄存器的总时间可能相当长。我不确定“正常”时间是多少,但1us似乎并不完全疯狂于随机读取。谢谢你的回复,我已经添加了代码。但我的应用程序是硬实时的,所以“1us”太长了。。。
readl
宏读取PCI卡上的一个寄存器时,需要花费1µs的时间-这正常吗
代码:(COMEDI项目源代码)
然后可以使用mite->mite\u io\u addr访问PCI卡设备地址空间将您使用的代码添加到内存映射。读取PCI寄存器的总时间可能相当长。我不确定“正常”时间是多少,但1us似乎并不完全疯狂于随机读取。谢谢你的回复,我已经添加了代码。但我的应用程序是硬实时的,所以“1us”太长了。。。
addr = pci_resource_start(pcidev, 0);//BAR0 address
mite->mite_phys_addr = addr;
mite->mite_io_addr = ioremap(addr, PCI_MITE_SIZE);//memory map
if (!mite->mite_io_addr)
{
printk("failed to remap mite io memory address\n");
return -ENOMEM;
}