zshuc
驱动小牛
驱动小牛
  • 注册日期2001-08-16
  • 最后登录2012-04-19
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1393回复:5

关于OSR例子中的AMCC 5933 传输控制的问题!

楼主#
更多 发布于:2003-01-25 10:53
在它的头文件中,有这样一句话
#define OSR_PCI_MAX_TXFER 65535
这是用来定义和应用层交换数据时所支持的最大传输控制量,为64K。
可是我们是以什么样的原则来制定这个大小规则的呢?我可不可以将它设为1M或者更大的。
另外,如果我的芯片中在配置寄存器里有DRAM或者其它的寄存器,这些寄存器的大小需要我重新定义吗?
大家好!
mengzi
驱动牛犊
驱动牛犊
  • 注册日期2001-08-02
  • 最后登录2004-05-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-08 17:55
当然可以超过1M啦。
PCI设备允许有6个逻辑空间,如果PCI控制器没有限制,大小随您定,理论上可以分配在内存以上的高端地址空间,但最大空间通常由您的计算机决定,在主桥或各个PCI-PCI桥中通常限定了每条PCI总线的空间大小,与其对应的BIOS在机器上电分配空间时就有相应的安排,所以不同的机器的BIOS中的微代码是不同的,但对于通常的32位计算机系统而言,有32位的外设地址线,外设的地址通常可以分配在2G~4G的范围,可以满足大多数用户的需要,一个例外是计算机中插了2G以上的内存,但这种情况通常不会发生,也就是说PCI的6个空间,只要不是大得过分(上G),任意大小的分配都是允许且安全的。
mengzi
驱动牛犊
驱动牛犊
  • 注册日期2001-08-02
  • 最后登录2004-05-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-14 20:26
我的上述回答有问题,我未看清您的问题,您指的可能是DMA传输时的传输量,您的用户程序能分配多大的空间,并且在内核可以完全锁定,您就可以传输多大的数据。
edgesoul
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2007-09-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-19 10:21
有32位的外设地址线,外设的地址通常可以分配在2G~4G的范围,可以满足大多数用户的需要,一个例外是计算机中插了2G以上的内存,但这种情况通常不会发生,也就是说PCI的6个空间,只要不是大得过分(上G),任意大小的分配都是允许且安全的。

请教,如果>2G时应该如何处理呢?
mengzi
驱动牛犊
驱动牛犊
  • 注册日期2001-08-02
  • 最后登录2004-05-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-22 20:48
edgesoul兄:
     如果>2G时,没有别的办法,只能分配小于1G的PCI空间,而对于卡上的缓冲区,此时只能采用分页寻址的办法。
    
edgesoul
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2007-09-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-22 21:08
edgesoul兄:
     如果>2G时,没有别的办法,只能分配小于1G的PCI空间,而对于卡上的缓冲区,此时只能采用分页寻址的办法。
    


了解了。谢谢!
游客

返回顶部