我在PC下用vxworks系统调试PCI卡,发现PCI卡后从配置地址中读取membase ,iobase ,intr我用sysMmuAdd(membase,)转换了一下,但没有作用,地址没有变化,我用4K的空间,之后用membase+offaddr读取寄存器出现死机现象,我想me...
全文
回复(14) 2004-05-09 15:31 来自版块 - VxWorks
表情
lhsundriverstudy(2010-04-12 10:56)
aquariuscamus我记得应该加E0,你读出来的是中断级别,所要连接的是中断号,在PC。H中有定义宏,可以帮你做这个转换,不要自己做,因为这个便宜两根据机器硬件不同而不同(2005-01-25 19:52)
maple_wasp如果是x86板子应该 + 0x20, 即 INUM_TO_IVEC(vwDevice[unit].ivec + 0x20) ,其它板子也可能要加一定的偏移量,其实也就是加上 IRQ0 (2005-01-25 18:03)
shaohua我也遇到相同的问题,能详细地告诉我解决办法吗? shaohua@bentium.net(2004-08-26 20:26)
ysl206请教一下,中断服务不能运行,是什么原因,谢谢 1、Vw2010IntConnect = (FUNCPTR) pciIntConnect; 2、 if((Vw2010IntConnect((VOIDFUNCPTR *)(INUM_TO_IVEC(vwDevice[...(2004-05-14 11:21)
aquariuscamus关于pciHeaderShow,应该是加入PCI configuration组件(硬件的总线里),另外加上pci show routines(开发工具的显示里)吧?我没用过,应该是这样的(2004-05-13 00:21)
aquariuscamus对于PCI设备,基地址的值是在系统上电的时候,由BIOS管理分配的,所以什么值都无所谓,只要不和其它的冲突就行。(详细请参考PCI规范,不详细的可以看我刚发的文) 你的测试方法是对的,可以正确的返回PCI设备所需内存的长度,你的设备需要10000的空间(好大啊,不过对于图像...(2004-05-13 00:12)
ysl206再核实一下, 我在PCI配置空间里读到基地址0的值为0xef130000,我测试了一下空间大小,从PCI配置空间基地址0写0xffffffff值,再从PCI配置空间基地址0读出来的值为0xfffe0000; 但经过sysMmuMapAdd()后基地址0的值变成了0xfffe0...(2004-05-12 16:22)
ysl206解决了,是由于硬件需求空间设置太大,谢谢了板主, 对了在shell下我没办法用pciHeaderShow看 需要加什么组件,我应该都加了。(2004-05-12 14:07)
ysl206谢谢了,你说的 前面的做法都很对,而且很规范,后面的我有个疑问 //地址转换,我用VM_PAGE_SIZE设为4K或8K都用过,sysMmuMapAdd()调用了几次,但都不行,好象地址都没有转换。 #define VM_PAGE_SIZE ...(2004-05-12 10:41)

返回顶部