windriver下pcmcia驱动程序编写的疑问

在windriver下,不必插入pcmcia板卡,就能生成代码,而且生成的代码是关于pci
寄存器的读写以及pci端口读写等的函数,这是怎么回事?
pcmcia板卡包括两类:pcmcia类(相当于isa),cardbus类(相当于pci)
如果你不插入卡,用windriver生成的是位于笔记本中的cardbus bridge的相关内容,其实这一部分是不需要你来做的,windows内已带有他的驱动程序。因此,你必须把你要用的卡插入socket内,再通过windriver来产生
可是把卡插进去了,在windriver中还是只有关于cardbuscontroller的选项,和没插卡之前的选项一样。不知怎样产生一个新的driver文件?
你有没有听到丁冬的声音?如没有,那么你的笔记本还没有检测到卡,也就不可能看到这个卡的寄存器了.
WinDriver 怎么访问两张pcmica卡,我看两张卡的
typedef struct
{
    BYTE uBus;         // bus number (first bus is 0)
    BYTE uSocket;      // socket number (first socket is 0)
    BYTE uFunction;    // function number (first function is 0)
    BYTE uPadding;     // 1 byte padding so structure will be 4 bytes aligned
} WD_PCMCIA_SLOT;
两张卡的信息中,结构体中,几个参数都为0,是什么原因?
最近在做PCMCIA的驱动,有很多疑问
首先,我的要做的驱动是不是关于socket的驱动,也就是那个插槽的驱动,那么对于PC卡,是不是还要另外安装驱动?
其次,我看了BSP下面关于PCMCIA的代码,都是关于PDD层的,涉及GPIO的设置。而我看Public下面的关于PCMCIA的驱动时,发现其中PDD,MDD等都包括在内了,不知道我要不要往BSP里面添加关于MDD层的代码?
最后,能不能帮我讲解一下关于PCMCIA驱动的整体架构,或者给点提示.
pcmcia网卡的COR寄存器如何读写?
读这个寄存器的方法有点怪,怪在这个寄存器的址并不是固定的,当然通用的网卡我想地址应该是固定的,否则就通用不起来的。
但如果做自己的网卡,地址在CTPL_XXX(1a?),自己定义的,哪个来着,记不清了,你自己看一下协议吧!!上面写着呢!
如果,你知道更好的方法也跟我说说!

我们开发的是小端口的网卡驱动,已经从卡的CIS中查到COR的基地址是
0x000003E0h,应该用什么函数来修改这个寄存器的值?

如果,地址是别的,我觉得应该用
write_port_uChar,write_register_uchar,(名称记不清楚了,你自己查DDK文挡)

至于地址是0X3E0,0X3E1我也糊涂了,这本来是对应于CARD SERIVCE里面的地址,数据端口,怎么又拿出来了呢?糊涂!!!

非常感谢jeosph! :)
我们能查到的地址就是这个0x3E0,它说是base address,这个地址不对吗?到底怎样才能对COR寄存器进行正确的寻址和访问,还望多多指点,急! :(


驱网最有价值专家评选,给帮过你的专家投票: 发送 ARDVP#帮助过你的用户名 到93891152
[4 楼] | Posted: 2001-07-03 19:54顶端
 
jeosph




该用户目前不在线
级别: 驱动中牛
精华: 0
发帖: 535
威望: 10 点
积分: 96 分
贡献值: 0 点
好评度: 9 点
原创分: 0 分
注册时间:2001-04-19
最后登录:2006-10-08
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



我奇怪的是,0x3e0 你是怎么得来的,是分析CIS数据的结果吗?
在我的印象中(但不一定是对的,供你参考):
0X3E0,0X3E1是提供给CARD SERVICE用的地址端口,如果你自己编写BIOS里的CARD SERVICE 你就可以用,如果不是就,我觉得最好不要去用,至于用了错不错,我不知道。

我说过,COR地址在什么地方,你是要看协议的,你必须想办法把所有的CIS数据读出来,然后按照协议去分析,自然就可以得到这个地址,然后用函数读(read_port_uchar)写(write_port_uchar)端口就可以了。


驱网最有价值专家评选,给帮过你的专家投票: 发送 ARDVP#帮助过你的用户名 到93891152
[5 楼] | Posted: 2001-07-04 11:31顶端
 
yz228




该用户目前不在线
级别: 驱动牛犊
精华: 0
发帖: 12
威望: 0 点
积分: 0 分
贡献值: 0 点
好评度: 0 点
原创分: 0 分
注册时间:2001-06-12
最后登录:2002-10-09
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



谢谢大虾,但我确实是把cis全部读了出来,然后分析了tpl_code之后的得到这个地址,没错确实是0x000003e0,愁死了,能再指点一下吗?因为将cis的bit0置1可以对我们的卡进行重启,bit7置1可以将卡置于i/o状态!!


驱网最有价值专家评选,给帮过你的专家投票: 发送 ARDVP#帮助过你的用户名 到93891152
[6 楼] | Posted: 2001-07-05 17:30顶端
 
jeosph




该用户目前不在线
级别: 驱动中牛
精华: 0
发帖: 535
威望: 10 点
积分: 96 分
贡献值: 0 点
好评度: 9 点
原创分: 0 分
注册时间:2001-04-19
最后登录:2006-10-08
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



那就用我说的函数试一试!!

驱网最有价值专家评选,给帮过你的专家投票: 发送 ARDVP#帮助过你的用户名 到93891152
[7 楼] | Posted: 2001-07-05 18:33顶端
 
mrnoon




该用户目前不在线
级别: 驱动牛犊
精华: 0
发帖: 5
威望: 0 点
积分: 0 分
贡献值: 0 点
好评度: 0 点
原创分: 0 分
注册时间:2001-05-08
最后登录:2006-07-31
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



我已经往里写了东西
可是不管读和写
该端口的值都是0xff
也就是说无法修改
我 就不明白到底怎么回事了
请各位大虾指点



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值