我用STR710(和STM32差不多,同一个公司出的arm7)+周立功那个FAT16文件系统(zlg/fs)+K9F1208(64MB)想实现u盘功能,套用了STR71x官网下的一个用cpu内部64KB的RAM做存储的小u盘例程的模板程序,小u盘的功能是可以实现了,但我改成用K9F1208做存储就不成功了。周立功那个FAT16文件系统我移植在FLASH上,在固件程序里读写文件都正常,问题是插上usb线连电脑后,u盘盘符可以识别出来(应该说明枚举过程是成功了的吧?),提示需要格式化(肯定失败,因为响应函数里没有加入格式化函数)。 想不明白我已经用了周立功那个库提供的格式化函数成功格好了flash的呀,要不读写文件怎么可能成功呢?
分析了下可能的原因:
(1)会不会是周立功那个格式化不支持u盘功能呀?不知你们做u盘是用的哪个文件系统呢?
(2)是不是FLASH读写函数加载到usb的memory.c那个读写里有问题,目前我只添加了读函数,替换了库里原来读RAM操作的部分,程序也没几行,想了好久也看不出有什么问题呀
不知道各位高手们做u盘功能时有没有遇到格式化出错的问题呢?
附件是我用Bus Hound捕获的数据包信息 前面的控制传输部分都能看懂 后面的UFI指令好多重复的指令回复的内容看不大懂大概是卡在了READ CAPACITY这条指令,不知哪位高手能帮分析下问题出在哪?多谢! |