阅读:1412回复:9
9052地址分配问题?很菜,可我不会.希望能指点一下.
isa转pci.io功能.16位数据.无中断.8M晶振.9052卡.没有装驱动,开机可以看到硬件.
局部地址 LA9~LA2,ISAA1.ISAA0.组成的局部地址是0x200~0x206 LAS1RR: FFFFFF01 (所以在BAR3中系统分配了0X400--0X4FF,我觉得 范围大点好像也没有关系似的) LAS1BA: 00000201 LAS1BRD:00400022 CS1BASE:00000209 (对这个我一直理解不了,干什么用的?值又该如 何定义?) INTCSR: 00001000 cntrl: 007C4012 在windriver中写bar3时(0x400--ox4ff),发现局部地址是这样排列的: bar3(00--03)地址是一样的,是0x204.bar3(04--07)是0x208.bar3(08-0c)是0x20c.......依此类推. 为什么我的地址会变成这样? 读bar3,发现读出来的是地址?时序不对?那又要怎么调整时序/ 我的基本功不好,望能指点一下. ...................... 答的好,分一点也不吝啬. |
|
最新喜欢:mapofl |
沙发#
发布于:2003-10-20 14:22
我只用过非isa方式。CSXBASE有4个,里面设定你local端开辟的四段空间的基地址和偏移量。注意最后基地址要右移一位。
|
|
板凳#
发布于:2003-10-20 16:46
兄弟,我现在一直处于模糊状态...
9052的三个模式应该是一样的. LAS1BA为00000201 ,应该是定义基地址为200吧? LAS1RR: FFFFFF01 (所以在BAR3中系统分配了0X400--0X4fF)? CS1BASE:00000209 这个家伙的值到底该怎么定义?看了n偏的阴文,和你的说明.还是不知道.....郁闷ing... 我现在就是没有办法让我的局部地址变成200~206.上面的配置结果显示是204,208.20C.210.214.218.21C. 帮帮我,送多少分都可以. |
|
地板#
发布于:2003-10-21 10:05
我有一段时间没搞了,记不清了。我查了我以前的工作记录,上次我回的帖子有错误,现在纠正,应该是偏移量的值要右移一位,不是基地址。
(1)CS1BASE:00000209的意思是基地址200H,偏移量10H。 10H-->0001,0000B 右移一位-->0000,1000B 选通CS1BASE-->0000,1001B 所以最后得到209H (2)你要查一查datasheet,看看端口映射能否开辟256位的端口,如果不行,那你的LAS1RR要重新设置。 (3)你最后写的是什么呀?我看不懂。 |
|
地下室#
发布于:2003-10-21 12:44
基址除以2然后或基址大小
0位如果是1,就可以 不是1,或1 你试试,肯定行 记得给分 |
|
5楼#
发布于:2003-10-22 14:41
谢谢mustang兄,
偏移量10H是什么意思?是每次局部地址增加的尺度吗? 基地址就是我的局部地址200h吗? 最后一句我自己都不是很明白.呵呵... 主要是我用windriver5.05调试的时候,对bar3进行io口的写.结果如下: 0ffset:0-3(0.1.2.3的值读出来的局部地址是一样的.) size:16 测试LA9~LA2,ISAA1,ISAA0为 204h 0ffset:4-7 size:16 测试LA9~LA2,ISAA1,ISAA0为 208h 0ffset:8-c size:16 测试LA9~LA2,ISAA1,ISAA0为 20Ch . . . . ..// (我的设想是局部地址要按照从底到高 200.201.202.203.204.205.206这样排列的.) 是我软件用错了吗??? 谢谢dyxing2000兄. \"基址除以2然后或基址大小\" 是这样理解的吗? 我的基地址为200.除以2后为100.或基址为300/? 还是你的基址大小定义为我基址范围? 再次感谢两位的回复.解决了马上就结帐.呵呵...... |
|
6楼#
发布于:2003-10-23 14:14
“或”就是数字电路的“加”
|
|
7楼#
发布于:2003-10-23 15:07
1,基地址除以2就是右移一位。
2,如果你采用端口映射,偏移量10H就是指端口16位。如果你采用内存映射,偏移量10H就是指申请的内存空间16个字节。基地址就是你的板卡上内存地址200h。 3,我还是没看明白你写的,你是不是用到FPGA了?要先看看你的VHDL程序有没有问题。只要能读写,又不死机,其他的都是小问题。 |
|
8楼#
发布于:2003-10-24 13:46
是的,我是用到了一片gal.局部地址线都连接到上面了...
所以,我希望局部地址线能按照200~206的排列顺序变化.但是用windriver写io口时发现他们是按照204.208.20C.210.214.218.21C顺序排列.这...大概回事什么原因? 对于cs1base我有点理解了.谢谢两位. 最后还有一个问题.. isa模式,16位数据, 我的局部地址是LA9~LA2.ISAA1.那这个地址最地位是ISAA1吗? 剩余的LBE0#.2#.3#三个线怎么处理,?不用管他们,悬空者吗? |
|
9楼#
发布于:2003-10-25 08:36
应该是基址范围除以2然后加上基址的值,0位是否为1
不是1,则加1 不好意思,我的记忆有点模糊 |
|