Пишу тесты для работы с SD карточкой
for (i=0; i<512; i++) Arr[i]=0x55;
if (disk_initialize()==RES_OK);
{
result=disk_read ( Arr, 1, 1); // считать сектор
for (i=0; i<512; i++) Arr[i]=0x22;
result=disk_write( Arr, 1, 1); // записать сектор
for (i=0; i<512; i++) Arr[i]=0x55;
result=disk_read ( Arr, 1, 1); // считать сектор
}
Функция чтения и записи сектора проверяет состояние диска в переменной
volatile DSTATUS Stat = STA_NOINIT; /* Disk status */
disk_initialize() заканчивается
Stat &= ~STA_NOINIT; /* When device goes ready, clear STA_NOINIT */
return RES_OK;
При пошаговом прохождении функции(J-LINK) disk_initialize() переменная Stat сбрасывается в 0, функция возвращает RES_OK.
Если в функцию не заходить, то она возвращает RES_OK, а переменную Stat не очищает :-(
Явно глюк.
Только чей?