阅读:1452回复:5
关于OSR例子中的AMCC 5933 传输控制的问题!
在它的头文件中,有这样一句话
#define OSR_PCI_MAX_TXFER 65535 这是用来定义和应用层交换数据时所支持的最大传输控制量,为64K。 可是我们是以什么样的原则来制定这个大小规则的呢?我可不可以将它设为1M或者更大的。 另外,如果我的芯片中在配置寄存器里有DRAM或者其它的寄存器,这些寄存器的大小需要我重新定义吗? |
|
|
沙发#
发布于:2003-02-08 17:55
当然可以超过1M啦。
PCI设备允许有6个逻辑空间,如果PCI控制器没有限制,大小随您定,理论上可以分配在内存以上的高端地址空间,但最大空间通常由您的计算机决定,在主桥或各个PCI-PCI桥中通常限定了每条PCI总线的空间大小,与其对应的BIOS在机器上电分配空间时就有相应的安排,所以不同的机器的BIOS中的微代码是不同的,但对于通常的32位计算机系统而言,有32位的外设地址线,外设的地址通常可以分配在2G~4G的范围,可以满足大多数用户的需要,一个例外是计算机中插了2G以上的内存,但这种情况通常不会发生,也就是说PCI的6个空间,只要不是大得过分(上G),任意大小的分配都是允许且安全的。 |
|
板凳#
发布于:2003-02-14 20:26
我的上述回答有问题,我未看清您的问题,您指的可能是DMA传输时的传输量,您的用户程序能分配多大的空间,并且在内核可以完全锁定,您就可以传输多大的数据。
|
|
地板#
发布于:2003-02-19 10:21
有32位的外设地址线,外设的地址通常可以分配在2G~4G的范围,可以满足大多数用户的需要,一个例外是计算机中插了2G以上的内存,但这种情况通常不会发生,也就是说PCI的6个空间,只要不是大得过分(上G),任意大小的分配都是允许且安全的。 请教,如果>2G时应该如何处理呢? |
|
地下室#
发布于:2003-02-22 20:48
edgesoul兄:
如果>2G时,没有别的办法,只能分配小于1G的PCI空间,而对于卡上的缓冲区,此时只能采用分页寻址的办法。 |
|
5楼#
发布于:2003-02-22 21:08
edgesoul兄: 了解了。谢谢! |
|