大家好,请教一个问题
目前在公司的OS上开发USB Mass storage Device驱动 ,连上PC后能变成一个优盘。
现在的软件平台是ThreadX的,硬件接口是USB1.1的,目前ThreadX上面没有挂文件系统,想把SPI
Flash上某个区域做成一个分区,然后USB Mass storage Device驱动挂接该分区,使得连上PC后那
个区域能够像优盘那样读取(写入是不需要的,这样可以简化文件系统和USB Mass storage
Device驱动)
目前USB驱动,Mass storage Device驱动和文件系统都没有,想移植Linux上面的Mass storage
Device驱动,文件系统就想用最简单的FAT16,请问移植的难度大不大?有没有现成的移植案例可
供选择?
PS:我想MP3上面如果用软件实现Mass storage Device的话,应该跟我要做的东西差不多,谁有相
关的代码请教了
谢谢
这个难度还是有的 ,如果思路清晰还好做,否则就累了。
1,首先构建 FFS - FTL - NAND 三层程序结构;
2,再构建 Mass Storage - FTL -NAND 三层程序结构;
3,怎么自动切换,那就是你自己的设计了。
我也不会~
-------------------------
玩
QQ空间,看
优酷电影。
比较简单。
去看看mass的协议吧。
和文件系统无关。
只要实现扇区的读写就可以了
目前做USB大容量存储器件驱动时遇到一个问题。项目的主要目的是利用公司芯片上的USB Device控制器来实现USB大容量存储,也就是优盘了
,使用Bulk-only方式传输。目前在枚举阶段能够通过,PC端也可以识别出Inquiry命令传回的数据。但是问题是公司的USB控制器的Bulk-In端
点每次送出至少要15个字节的数据,如果少于15个字节,DMA传输就会Hang住,而且没有FIFO填充数据方式,只能用DMA传输。因为Universal
Serial Bus Mass Storage Class UFI Command Specification里面的Command Status Wrapper(CSW,规定13个字节长度)和Read Capacity等
命令需要传输的数据没有15个字节,所以我现在用的方法是不足15个字节的补0到15个字节再发送,这样像CSW这些数据传输就不符合规范了。
我现在想问的是如果我发送这些不规范的数据,Host端会不会Reset我的器件呢?也就是如果我发送的数据不符合规范,主机端的驱动是不是不
认?
PS:我在模拟CD-ROM时,如果发送不规范数据,从调试信息上来看是没有Reset动作的,但是我把Inquiry传回的数据的DeviceType改为优盘时
,每次Inquiry或READ10命令后就会有Reset的动作,目前还找不到原因
谢谢。