реклама на сайте
подробности

 
 
> Перенос FatFs от Chan'a с GCC на IAR AVR, Проблемы
SZ0
сообщение May 7 2010, 09:37
Сообщение #1


Местный
***

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



Решил перенести с GCC на IAR, т.к. мне не удобно или проще говоря, не нравится писать под GCC. Пример от Chan'a я скомпилировал под gcc, проверил, всё нормально работает. Начал переносить на IAR, там по большей части преобразование типов. Может где и ошибся. В итоге вылез косяк, который обнаружился следующим образом:

Код
Line[0] = '1';
Line[1] = '2';
Line[2] = '3';
Line[3] = '4';
Line[4] = '5';
Line[5] = '6';
Line[6] = '7';
Line[7] = '0';
Line[8] = '.';
Line[9] = 't';
Line[10] = 'x';
Line[11] = 't';
Line[12] = 0;

ptr = Line;

disk_initialize(0);
f_mount(0, &Fatfs[0]);
f_open(&file1, ptr, FA_WRITE | FA_OPEN_ALWAYS);

Buff[0] = '1';
Buff[1] = '2';
Buff[2] = '3';
Buff[3] = '4';
Buff[4] = '5';
Buff[5] = '6';
Buff[6] = '7';
Buff[7] = 0;

f_write(&file1, Buff, 7, &s2);
f_close(&file1);
f_mount(0, 0);

Buff[0] = '1';
Buff[1] = '2';
Buff[2] = '3';
Buff[3] = '4';
Buff[4] = '5';
Buff[5] = '6';
Buff[6] = '7';
Buff[7] = '8';
Buff[8] = 0;
    
ptr = Line;
disk_initialize(0);
f_mount(0, &Fatfs[0]);
f_open(&file1, ptr, FA_WRITE | FA_OPEN_ALWAYS);
f_write(&file1, Buff, 8, &s2);
f_close(&file1);
f_mount(0, 0);


В итоге создаются два одинаковых файла с одинаковыми именами, с записью данных в файле 1234567, а должно быть в 1м файле 1234567, а во 2м 12345678. Но, длина, при просмотре корневого каталога показывается: у 1го файла 7 байт, а у 2го - 8 байт, но данные внутри каждого одинаковые - 1234567. Под gcc же после 2й операции создания файла, просто переписываетс изначальной 1й созданный файл. Частично выяснил, что в функции f_open
Код
res = follow_path(&dj, path);    /* Follow the file path */

возвращает каждый раз FR_NO_FILE. Хотя этот ответ должен возвращаться только при первом создании файла, а при втором создании с тем же именем должен возвращаться FR_OK. В результате чего должен переписываться или открываться файл с этим именем.

Может уже кто переносил и я занимаюсь пустой работой? Или подскажите куда копать, т.к. я в этих глубинах кода уже cranky.gif

P.S. Всех с Днём Радио!!! beer.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 22:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01349 секунд с 7
ELECTRONIX ©2004-2016