免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2839 | 回复: 1
打印 上一主题 下一主题

LINUX下开发驱动,系统何时给硬件分配资源 为什么resourc0文件里没值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-25 21:19 |只看该作者 |倒序浏览
开发一个LINUX下的PCI驱动,在

static int __init PCI9030_probe(struct pci_dev *dev, const struct pci_device_id *id)
{
     printk("<1>entre myprobe\n";
         /* 启动PCI设备*/
         if(pci_enable_device(dev));
         return -EIO;
        
         if((card=kmalloc(sizeof(struct PCI9030_card),GFP_KERNEL))==NULL)
         {
            printk(KERN_ERR"CI9030ut of memory\n";
                 return -ENOMEM;
         }
         memset(card,0,sizeof(struct PCI9030_card));
         card->iobase1=pci_resource_start(dev,1);
         card->iobase2=pci_resource_start(dev,2);
         card->CI_dev=*dev;
         card->pci_deviceID=id->device;
         card->iobase1len=pci_resource_len(dev,1);
         card->iobase2len=pci_resource_len(dev,2);
         card->iobase1flag=pci_resource_flags(dev,1);
         card->iobase2flag=pci_resource_flags(dev,2);
         card->next=NULL;
                                 
         unsigned long testReadConfig;
  printk("<1>card iobase1flag,iobase2flag:%lx  , %lx \n",card->iobase1flag,card->iobase2flag);
         return 0;
}
打印出来的FLAG值居然是f8a3dd10,显然是个错误代码,
现在的驱动能访问到PCI配置空间,但是访问不了IO和IO内存空间,是没给IO空间分配资源么????
在/sys/bus/puc/*/下看到我的硬件对应的resource文件里的内容为
0x00000000febffc00   0x00000000febffc7f     0x0000000000000200
0x00000000000ec00    0x000000000000ec7f  0x000000000000101
0x000000000000e880  0x000000000000e8bf  0x00000000000101
0x00000000000000      0x0000000000000000 0x0000000000000000
(数是64位的)
但是该目录下另外三个文件resource0,resource1,resource2里的都没有值

是没分配资源么????急急急

论坛徽章:
0
2 [报告]
发表于 2008-07-08 00:36 |只看该作者
你所谓的resource0~resource3里没有值是指什么,你用cat读的吗?这几个不是文本文件,对它的访问应该是直接访问PCI设备上的空间的(转换为PCI的读或写操作)。

不过按说pci_resource_flags得到的应该是resource文件中第三列的值,看不出你为什么得到一个比较奇怪的值,你那两个结构成员定义为什么类型了?%lx好像是按long类型去解析后面的参数吧,对于64位系统和32位系统long应该是不一样的。

[ 本帖最后由 Cyberman.Wu 于 2008-7-8 00:53 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP