在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4932|回复: 11

PnPOpen函数?? 得到io基地址?!

[复制链接]
发表于 2003-11-6 17:13:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
趁liu 版主在再请教!
PnPOpen(vendorid,deviceid,instance,&pnp) ;
例子中的pnpopen应该是得到句柄吧。 里面的参数,前2个明白,第三个instance比较奇怪,得到一个设备句柄,除了vendorid,deviceid还需要什么? 这个instance代表什么?
再用PnPGetBaseAddress(pnp, 1, &ioaddr);得到io的基地址。
这样就能对io寄存器进行操作了吧。
然后PnPClose(pnp) ;这是为什么? 为什么要关闭pnp?! 
pnp的函数我没有找到。 只能从名字上猜了。 

发表于 2003-11-6 17:43:34 | 显示全部楼层

PnPOpen函数?? 得到io基地址?!

我这边资料没有这个函数,我以前对视频编程时,instance是个返回值。
建议你看一下函数原型和功能描述。
我这边的函数都是pciConfigRead(....)什么的,
没找到你说的PnPOpen,可能我们两个环境不一样。。
 楼主| 发表于 2003-11-6 17:58:54 | 显示全部楼层

PnPOpen函数?? 得到io基地址?!

版主辛苦了。这么晚还在监守岗位!
instance是个返回值。???偶再仔细看看再向你请教。
pciConfigRead(....)我这也有呀。PnPOpen()在i82559_write_mac_address()函数中被调用到的。
那版主你觉得 它应该是什么返回值呢?? 我看了一下,这个值好象不是0就是1。 
 instance它就应该是下面的nd_p1; 可这个nd_p1也不知道是哪出来的。
typedef struct netdev {
u32     nd_p1;
u32     nd_p2;
u32     nd_p3;
        。
        。
        。
发表于 2003-11-6 18:04:56 | 显示全部楼层

PnPOpen函数?? 得到io基地址?!

你从哪里搞到的代码?可以寄一份给我么?
如果你知道环境,也帖出来。。。
这里的instance应该不是输出,如果是输出的话应该这样调用。
PnPOpen(vendorid,deviceid,&instance,&pnp)!!!
pnp是个什么东西?你有没有函数原型,提供出来。。。
 楼主| 发表于 2003-11-6 18:11:27 | 显示全部楼层

PnPOpen函数?? 得到io基地址?!

[这个贴子最后由wdy9927在 2003/11/06 06:12pm 第 1 次编辑]

版主查看信箱。
 楼主| 发表于 2003-11-7 08:50:21 | 显示全部楼层

PnPOpen函数?? 得到io基地址?!

知道了!
==================================
tmLibdevErr_t PnPOpen(UINT16 vendorid, UINT16 deviceid, UINT8 instance, PnP *pnp_p)
{
    PnP     pnp ;
    UINT8   cur_instance ;
    pnp = pnp_list ;
    cur_instance = 0 ;
    while (pnp != Null)
    {
        if ((pnp->vendorid == vendorid) &&
            (pnp->deviceid == deviceid))
        {
            if (cur_instance == instance)
            {
                *pnp_p = pnp ;
                return TMLIBDEV_OK ;
            }
            else
            {
                cur_instance++ ;
            }
        }
        pnp = pnp->next ;
    }
    return PNP_ERR_NO_DEVICE ;
}
==============================================
发表于 2003-11-7 11:40:57 | 显示全部楼层

PnPOpen函数?? 得到io基地址?!

我已经回复到你油箱了,查收。。
 楼主| 发表于 2003-11-7 11:46:01 | 显示全部楼层

PnPOpen函数?? 得到io基地址?!



下面引用由liuiang2003/11/07 11:40am 发表的内容:
我已经回复到你油箱了,查收。。

ok。收到。 谢了! 还是有点迷糊,正努力。 哈
 楼主| 发表于 2003-11-7 11:52:30 | 显示全部楼层

PnPOpen函数?? 得到io基地址?!

问题是: 怎么才能知道list中有几项了? 我的pci上只有1300(dsp)和网卡。网卡应该是1吧!!
原来pnp也这么多说道!!   唉,差的太多了!
发表于 2003-11-7 13:19:40 | 显示全部楼层

PnPOpen函数?? 得到io基地址?!

可以用while循环查,最后一个的指针是null。
在执行pnp初始化的时候有这么一句:(以你给我的例程为例)
tm_err = bpmap->config(bpmap, &IOBase, &MemIOBase, &MemPFBase) ;
dve_bpmap中有3项,所以只要你执行PnPOpen,list就会有3项,
这里回复不方便,你用qq还是msn?
qq:7900624
msn:liuiang@hotmail.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-26 16:56 , Processed in 0.033516 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表