yurmala (30.09.2011 12:12, просмотров: 104) ответил Гудвин на У меня то же самое. Посмотрите значение "count" в операции, вызывающей зависание.
Если пошагово дойти до write_disk то получается следующее вложение: 1) res = f_write(&fdst, buffer, br, &bw); /* Write it to the dst file */
2) fp->sclust = clst = create_chain(fp->fs, 0); /* Create a new cluster chain */
3) cs = get_fat(fs, ncl); /* Get the cluster status */
4) case FS_FAT16 : if (move_window(fs, fs->fatbase + (clst / (SS(fs) / 2)))) break; ...
5) if (disk_write(fs->drv, fs->win, wsect, 1) != RES_OK) /* Write back dirty window if needed */
6) if ( MS_BulkSend( sector, count, (volatile USB_INT08U*) buff ) == OK )....
т.е. до записи самих данных не доходит. Исходя из п. 5) - count = 1. И эта 1 присутствует в MS_BulkSend, в которой идет зависание.