阅读:1934回复:8
9052, 愁 ! 谁能指点迷津。。。
在使用 9052 时,碰到以下几个问题,很困惑,不知那位能点拨一下?
1。9052 使用 epprom 之后,其资源配置是怎么确定的? 我在epprom中设置了 1k 的存储空间(local space 0),16字节的 io 空间(local space1),但在加载设备驱动程序之后,发现 pci 的配置空间为 PCI Base Address 1 有效,大小为 128字节;PCI Base Address 2 有效,大小为 1k; PCI Base Address 3 有效,大小为 16字节。 在 epprom 中的资源请求确实得到满足,但我不明白的是为什么 PCI Base Address 0 会为空?根据 9052 数据手册,在 isa 模式下,PCI Base Address 0 和 PCI Base Address 1 均映射 local config register, PCI Base Address 2 和 PCI Base Address 3 则分别映射 local space0 和 local space1。但是,为什么PCI Base Address 0 为空而且 PCI Base Address 1 取得是默认值 128 bytes? 2。根据据 9052 数据手册,PCI Base Address 0-5 均只能从 pci bus 设置,epprom 内容不写入这几个寄存器; 但我在 inf 文件中申请资源后,发现 epprom 中的内容起决定性的作用,inf 的内容根本就被忽略了。这到底是怎么回事? 3。我安装了 9052 rdk 的 sdk 软件(plxmon 等),插入我的扩展卡之后,系统自动辨识扩展卡为 9052 rdk board ,我不使用plx 的设备驱动程序,而载入自己编写的设备驱动程序,系统却告知我该驱动程序不是为该硬件专门设置的。不知道怎样才能告知系统我的设备驱动程序就是专为该硬件设置的?不知道跟 vxd 的 device id 有无关系? 4。 vtoolsd 中,使用 wizard 开发驱动程序时,device id 一般默认为 undefined ,不知道在跟硬件相关联时,该 id 号如何定义? 请各位大虾、各位朋友多多指点。。。。 :( [编辑 - 1/15/02 作者: lvwj] |
|
|
沙发#
发布于:2002-01-15 13:40
1.第一个问题不清楚,我用的是9054,没出现过这种状况,建议你用
plxmon把东西写进去. 2.base address是bios在系统启动时分配的,你只要提供range就可以 了.inf的内容一般只有当硬件不支持即插即用时起作用. 3.4不清楚,因为我不用vxd,windriver和ddk都试过,应该挺好用的,建 议调试的时候还是用plx附带的驱动配合plxmon,这样问题少一点, 等硬件通了再用自己的驱动上去. |
|
|
板凳#
发布于:2002-01-15 18:41
这位兄弟,我不是不想用 plxmon 把 local reg 内容置进去,而是我就没有买开发目标板,只是拷贝了一套软件回来,结果只能看到pci 的配置寄存器内容,而 local reg 和 epprom 的内容均看不到。自己写了个小程序,想将 pci base address 0 指定地址的内容(我认为这是 local reg 的映射地址)读出来,结果出来个 page fault ,真是愁煞人。
谢谢你的帮助,jst7792 。 :) |
|
|
地板#
发布于:2002-01-15 20:37
哎,做东西还是要舍得投本钱,买个rdk用不了多少钱,减少了不少麻烦,值。
|
|
|
地下室#
发布于:2002-01-15 23:23
主要觉得买个 rdk ,仅仅是调试用(我的卡已经做好了,也没办法连到目标板上),而驱动程序不管怎么样还是的自己写,所以就算了。因为我使用 vxd ,rdk 使用 wdm ,两者之间还是有点差异的。
今晚把 local reg 的内容读出来了,跟 eeprom 中设置的内容有点不一样:我在 eeprom 中设置为 isa 模式,但读出数据发现isa 模式没有被设置,而且与 local space0 (mem map)相关的所有设置寄存器均不一样,其他寄存器的内容则基本一致。不知到是 eeprom 的do 需要上拉还是eeprom 内容设置还不对,明天接着试。 :) |
|
|
5楼#
发布于:2002-01-16 11:30
用户被禁言,该主题自动屏蔽! |
|
6楼#
发布于:2002-01-16 11:51
应该是的吧,没有驱动程序的话,pci卡是被禁用的.你的device
id,vender id变了的话,好像驱动程序和inf里的相应参数都要变动 否则是不能用的. |
|
|
7楼#
发布于:2002-01-16 22:49
感谢 jst7792兄 和 tom.cat 兄!!
一切都是我的错,害得大家抓脑袋!!结果如下: 1。 local reg 的控制寄存器 cntrl 有两位 b12:b13 用于控制是否允许 pcibar ,我把内存映射 pcibar0 给 disable 掉了,所以,内存映射总是空。 2。 我自己写的读 local reg 的小程序中,有个小 bug ,使用_inp而不是 _inpw, 结果 isa 标志总被抛弃,总是读不回来,结果折腾了老半天。 一切都是我的错。。。 |
|
|
8楼#
发布于:2002-05-15 20:30
虽然此贴已早就结了,但是看dfreader时,发现好像有些地方值得商榷嘛---“PCI卡在WIN98下,是不是没有驱动程序,则系统不给进行配置地址资源”
由于资源的配置有两个阶段,post期和windows期,所以对于用了eeprom指定请求资源的情况,在post时系统是绝对分配资源的。此外,分不分配地址,等机子起来用windriver一看便知。 以上与大家讨论^_^ |
|
|