阅读:1377回复:11
谁知道??有分
我用5933设计pci接口,但我可以说是不懂驱动那一部分的概念,所以我不知道如何设置寄存器组中的MWAR中的东西。
我想问一下:设置MWAR时,是不是根据应用程序提供的线性地址转换后的物理地址啊?所说得物理地址是指实际内存的地址吗?因为我是add-on端的cpu来设置MWAR,所以我就不知道如何来设置这个地址,怎么才合适,不和其他程序之类的冲突啊?是不是我可以随意设置一个内存实际地址,由我的驱动来转换到一个合适的逻辑地址啊?那收数据的应用程序又是如何知道到那去取数据那? 我得问题可能弱智了一些,实在没办法,就是不懂 |
|
沙发#
发布于:2002-11-09 21:35
你的芯片的配置寄存器中一个是记录物理地址信息的,你应该在驱动中访问他,再转换成线性地址传递到应用程序再可以直接访问了。
|
|
板凳#
发布于:2002-11-09 21:38
给分吗,我可以说的更详细一点,因为我比设作的和这差不多。
|
|
地板#
发布于:2002-11-10 14:25
给分啊!绝对没问题
我再补充一点:我现在不太清楚驱动程序和硬件如何协调工作的。我准备由add-on端发起数据传输,也是由add-on端送往pc,但是我不知道这时MWAR中的地址如何确定?也就是说这个地址是固定的那(在add-on端的程序中写好的),还是由驱动在初始化时传递给add-on端,存放在外部cpu的一个寄存器中(当需要启动数据传输时,写到MWAR中)? 等着你的帮助,一定给分的! |
|
地下室#
发布于:2002-11-10 14:35
还有,MWAR的设置值应该与配置空间的配置没关系吧?
你对5933的master方式下猝发传输理解吗?如果理解可以给小弟讲讲吗? |
|
5楼#
发布于:2002-11-11 21:43
你可以先启动配置,获取5933的配置空间首址后,访问+24h的寄存器可以得到你要的。
|
|
6楼#
发布于:2002-11-11 21:45
我使用的是mailbox和fifo方式
|
|
7楼#
发布于:2002-11-12 15:53
我使用FIFO的方式的,你看看我上面的问题,对应的回答一下好吗?
现在放分! |
|
8楼#
发布于:2002-11-12 21:41
当你插上板子后系统检测到新硬件执行配置周期,自动分配资源,你只需直接取,一般使用默认值,防止冲突。
5933内部有两个fifo,输入和输出,实现addon到pci的数据传输,你可以访问wrfifo,rdfifo信号来实现,他们的地址在寄存器中,你应该参考有关资料,找到对应地址。 |
|
9楼#
发布于:2002-11-13 10:08
hemu兄,谢谢你!
可能是我表达的不清楚,你回答的对我有用,但还不是我最想知道的. 那我再问另一个问题吧,你对5933发起的数据猝发理解嘛?如果理解你就给我讲讲add-on端送数据到pci端中,5933在那取到数据?怎么发起pci传输?如何送到pci总线上的?他是每一次一个单位数据的从pci端的寄存器取出嘛?然后送到pci总线上?我的感觉不是这样的,但又不知道是什么样的 |
|
10楼#
发布于:2002-11-15 22:33
我建议你参考一下Windows设备编程程序,电子工业出版社的,他上面就是以5933为例的,讲的挺全的。
|
|
11楼#
发布于:2002-11-16 17:59
再次真心感谢!!!!
|
|