阅读:1189回复:4
有关做u盘的buffer设计问题
我是拿motorola 850做usb设备和pc做上传下载的交互。要求免驱的。我现在是按u盘做的,用ram模拟的fat16文件系统。握手信号什么的都是硬件自己回的。我现在的问题是:如果是scsi的写命令,写一个扇区的话,那么就会一次产生9个中断(scsi命令加512/64=8块),9个buffer。我的后台处理就要把这9个buffer都保存下来,留以后处理。那么要是一次写多个块呢?我抓u盘看见过一次写8个块的,那就是65个buffer要保存,要30多k的缓冲。大家的buffer缓冲是做的多大呢?怎么解决的这个问题?
还有对fat16的文件系统的处理程序哪里有? 我是拿vworks的ram模拟的u盘,对于vxworks这端我怎么把文件读出来呢?vxwork支持fat16的文件系统么? 还是说我开始的设计就有问题?不该按u盘做? |
|
沙发#
发布于:2003-09-16 14:17
you can respond NAK to host while recive one int, thus only 512 byte OK :D
|
|
板凳#
发布于:2003-09-17 10:18
motorola的ppc850是自动回握手的阿,这点我想过了不行的。
我的bd在大数据量写的时候根本就不够用 谁做用850做过usb阿 |
|
地板#
发布于:2003-09-17 12:21
这要求你的固件能够不断的将缓冲区的数据取走,这样就不要很大的缓冲区了!
|
|
地下室#
发布于:2003-09-17 14:56
问题是我现在固件是做好的,850是先根据bd填充buffer,然后上报中断,我得到中断后才能处理。没有bd的话,会出现bsy中断错误,因为没有bd,导致包的丢失。因为是握手自动回复,当有write命令写大数据的时候,我根本没法流控的。:(
不知道谁用850做过usb的,还有你们做的时候有没有bd的概念 |
|