阅读:1155回复:4
为什么我的地址不能显示
如下的程序:
for(i=0;;i++){ pdev = pci_find_device(vendorid, deviceid, pdev);//return pdev->next? if(!pdev) break; printk(\" found device (%04X,%04X,%d) on\" \" Bus: %d Device :%d Function: %d\\n\", vendorid,deviceid,i,pdev->bus->number,pdev->devfn>>3, pdev->devfn&0x7); device_data.io_base = pci_resource_start(pdev,0); device_data.mem_base = pci_resource_start(pdev,1); printk(\"I found IRQ %d\\n\",pdev->irq); printk(\" base(%d) I/O add= %04lX MEM add= %04lX\\n\",i,device_data.io_base,device_data.mem_base); } 为什么 PCI扳子插上后,键入 #cat /proc/pci 可显示出 vendor id , device id, bus 等 但没能把 baseaddress等显示出来。 不知道程序的哪里出错误了?谢谢! |
|
沙发#
发布于:2003-03-22 17:06
可能是因为你没有用pdev->来指向pci的地址.
[编辑 - 3/22/03 by gyh2002] |
|
板凳#
发布于:2003-03-22 17:34
device_data.io_base = pci_resource_start(pdev,0);返回的不是吗?你说的地址是指什么?谢谢
|
|
地板#
发布于:2003-03-22 17:49
你看一下下面的写法是如何打印出地址的:
pciaddr = pdev->resource[(pci_flags >> 4) & 7].start; printk(KERN_INFO \"Found %s at PCI address %#lx, mapped IRQ %d.\\n\", pci_tbl[chip_idx].name, pciaddr, pdev->irq); |
|
地下室#
发布于:2003-03-22 17:53
谢谢!
|
|