ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
9 июля
275694 Топик полностью
yurmala (30.09.2011 12:12, просмотров: 94) ответил Гудвин на У меня то же самое. Посмотрите значение "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, в которой идет зависание.