|
|
  |
Вопрос по FatFs от мистера ChaN'а |
|
|
|
Mar 23 2009, 08:29
|
Знающий
   
Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447

|
В симуляторе проверил fprintf , только убрал обращения к объекту file. Получилось следующее: в пустой функции main() вызываю Код const char format[] = "%u/%u/%u %u:%u:%u"; testfprintf(format, 1, 2, 3, 4, 5, 6); так выводит все числа. А вот если Код const char format[] = "%u/%u/%u %u:%u:%u"; testfprintf(format, 1, 22, 333, 4444, 55555, 6666); то на последнем аргументе (6666) va_arg() возвращает 0, и соответственно, выводит только 5 аргументов. Видимо, это та проблема, которая описана в patches.
|
|
|
|
|
Mar 23 2009, 08:42
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(alux @ Mar 23 2009, 10:29)  Видимо, это та проблема, которая описана в patches. Откуда "видимо"? Аргументируйте. В описании патчей написано: Цитата will cause an incorrect behavior on the big-endian processor С каких пор AVR под IARом стал big-endian?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 23 2009, 09:21
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(Сергей Борщ @ Mar 23 2009, 14:42)  Откуда "видимо"? Аргументируйте. В описании патчей написано:С каких пор AVR под IARом стал big-endian? Да, там действительно упоминается по то, что эта ошибка возникает для big-endian. Но, я привык отвечать на вопросы в том объеме, в котором они заданы  В исходном вопросе я нигде не увидел упоминание о типе процессора. И хотя я понимаю, что "вероятностно" это проц. с маленькими индейцами, тем не менее формально рекомендация верна  . А дальше уже дело автора разбираться со своими индейцами (в данном конкртеном случае) или искать причину в другом.
--------------------
Пасу котов...
|
|
|
|
|
Mar 25 2009, 08:52
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Цитата(alux @ Mar 23 2009, 11:29)  В симуляторе проверил fprintf , только убрал обращения к объекту file. Получилось следующее: в пустой функции main() вызываю Код const char format[] = "%u/%u/%u %u:%u:%u"; testfprintf(format, 1, 2, 3, 4, 5, 6); так выводит все числа. А вот если Код const char format[] = "%u/%u/%u %u:%u:%u"; testfprintf(format, 1, 22, 333, 4444, 55555, 6666); то на последнем аргументе (6666) va_arg() возвращает 0, и соответственно, выводит только 5 аргументов. Видимо, это та проблема, которая описана в patches. 6666 это уже 32-битное число. Соответственно, надо const char format[] = "%u/%u/%u %u:%u:% lu";
Сообщение отредактировал Genadi Zawidowski - Mar 25 2009, 09:02
|
|
|
|
|
Mar 31 2009, 12:11
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 23-07-07
Из: Украина, г. Сумы
Пользователь №: 29 306

|
Скажите, если я пишу отак: Цитата FATFS fs; FIL fdst; FRESULT res; f_mount(0, &fs); res = f_open(&fdst, "test.dat", FA_CREATE_ALWAYS | FA_WRITE); fprintf(&fdst, "%s", "This is a test"); f_close(&fdst); f_mount(0, NULL); файловая система сама ищет свободные кластера и туда это всё дело записывает?? Нужно лишь беспокоиться о свободном месте на флешке??? или нет?
|
|
|
|
|
Apr 1 2009, 17:02
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 16-02-06
Пользователь №: 14 375

|
Цитата(Сергей Борщ @ Nov 23 2007, 12:59)  Как что? Не прочитали документацию. Хотя бы на f_mount:Можно было еще заглянуть в исходники, и увидеть, что f_mount только сохраняет адрес этой структуры во внутренней переменной. А заполнение произойдет потом, когда попытаетесь призвести какое-нибудь действие с файлом/директорией. Заинтересовался этим вопросом тоже. avr и flash. Можете, если у вас есть наработки поделиться ими. Буду очень благодарен. здравствуйте. заинтересовался этим вопросом тоже. о пока я не очень представляю механизм написания программы чтения и записи данных в flash. если не трудно, могете поделиться исходниками по работе с fat32 для avr. буду очень благодарен. kostiapan@mail.ru
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|