版块
论坛
喜欢
话题
应用
搜索
登录
注册
ysl206的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=61669
pc上用vxworks调式PCI卡,需要物理地址转换成虚拟地址
我在PC下用vxworks系统调试PCI卡,发现PCI卡后从配置地址中读取membase ,iobase ,intr我用sysMmuAdd(membase,)转换了一下,但没有作用,地址没有变化,我用4K的空间,之后用membase+offaddr读取寄存器出现死机现象,我想me...
全文
回复
(
14
)
2004-05-09 15:31
来自版块 -
VxWorks
◆
◆
表情
告诉我的粉丝
提 交
lhsundriver
:
study
(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)
回复
1
2
下一页 »
ysl206
加关注
写私信
0
关注
0
粉丝
11
帖子
返回顶部