Спрошу здесь дабы новую тему не создавать.
Вообщем в своем приложении нужно было создать таблицу разделов на SD карте и отформатировать - посмотрел код f_fdisk().
глаз зацепился за следуюжее:
CODE
/* Set partition table */
...
p[2] = (BYTE)((b_cyl >> 2) + 1); /* Start sector */
p[3] = (BYTE)b_cyl; /* Start cylinder */
...
p[6] = (BYTE)((e_cyl >> 2) + 63); /* End sector */
p[7] = (BYTE)e_cyl; /* End cylinder */
При удачном стечении обстоятельств в p[2] (p[6]) для номера цилиндра окажутся не те значения.
Если использовать LBA - нет проблем. А если через CHS - то ...
Собственно вопрос: я придираюсь или в f_disk() есть ошибка при заполнении полей таблицы разделов?
PS: В своем коде сделал примерно так: p[6] = ((BYTE)((e_cyl >> 2)&(0xC0)) | 63);