Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обнаружил баг в FlashFile (от prllc) версии 2.11
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
subver
В общем, использую файловую систему FlashFile v2.11
Периодически возникают ошибки - появляются файлы с общими кластерами.

В функции fcreate обнаружена непроинициализированная переменная (clus_temp), что при определенных условиях может привести к вызову процедуры стирания цепочки кластеров, что ведет к частичной или полной потере файла.

Как пофиксить:

Было

FILE *fcreate(uchar *NAME, uchar MODE)
{
#ifdef _DIRECTORIES_SUPPORTED_
uchar fpath[14];
ulong addr_temp;
#endif
DIR_ENT_TIME ff_time;
DIR_ENT_DATE ff_date;
uint clus_temp; // <----- Это оно




Стало

FILE *fcreate(uchar *NAME, uchar MODE)
{
#ifdef _DIRECTORIES_SUPPORTED_
uchar fpath[14];
ulong addr_temp;
#endif
DIR_ENT_TIME ff_time;
DIR_ENT_DATE ff_date;
uint clus_temp = 0;


В общем, на всякий случай поделился, мало ли...
IgorKossak
Забыли добавить, что это был файл file_sys.c из папки Flash.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.