Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: KEIL RTL FAT LIB
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
at90
Решил использовать библиотеку FAT RTL из кейла. Ну значь сделал как в доке. Сконфигил в file_config.c. Написал необходимы функции! Вроде работает.Но...
значь функции fat_init() проходит и fformat ("M:SD_CARD"); тоже работает.
пытаюсь работать с файлами при компиляции пишет ошибку.
При f=fopen ("M:\Test.txt","w");

такая ошибка
lcd.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _sys_open was referenced
lcd.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _ttywrch was referenced

Нужно поток stdio переопределить чтоль. Если закомментить такую строчьку
#pragma import(__use_no_semihosting_swi) в файле retarget.c компилится. но не работает. сразу улетает в void _sys_exit(int return_code). Кто нить юзал библиотеку fat? помогите.
Проц sam7x256
AlexandrY
А как же, конечно юзали.
Вот ссылка на проект где была портирована FS от Keil-a на Serial Flash
http://aly.projektas.lt/Projects/ADP_LPC2148/ADP_LPC.htm

Цитата(at90 @ Jun 3 2007, 15:59) *
Решил использовать библиотеку FAT RTL из кейла. Ну значь сделал как в доке. Сконфигил в file_config.c. Написал необходимы функции! Вроде работает.Но...
значь функции fat_init() проходит и fformat ("M:SD_CARD"); тоже работает.
пытаюсь работать с файлами при компиляции пишет ошибку.
При f=fopen ("M:\Test.txt","w");

такая ошибка
lcd.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _sys_open was referenced
lcd.axf: Error: L6915E: Library reports error: __use_no_semihosting_swi was requested, but _ttywrch was referenced

Нужно поток stdio переопределить чтоль. Если закомментить такую строчьку
#pragma import(__use_no_semihosting_swi) в файле retarget.c компилится. но не работает. сразу улетает в void _sys_exit(int return_code). Кто нить юзал библиотеку fat? помогите.
Проц sam7x256
at90
AlexandrY, спасибо за помошь!
Взял retarget.c изь вашего проекта и сделал функции пустыми
void Commch_send_byte(INT8U chnl, INT8U cool.gif{};
INT8U Commch_wait_byte(INT8U chnl, INT16U timeout, INT8U* err) {return 0; }
Но проц всё равно улетает в _sys_exit. Если не вызывать функции из STDIO всё работает нормально!
AlexandrY
Еще требуется выделить HEAP в стартапе не меньше 512 байт на каждый открытый файл.


Цитата(at90 @ Jun 3 2007, 20:27) *
AlexandrY, спасибо за помошь!
Взял retarget.c изь вашего проекта и сделал функции пустыми
void Commch_send_byte(INT8U chnl, INT8U cool.gif{};
INT8U Commch_wait_byte(INT8U chnl, INT16U timeout, INT8U* err) {return 0; }
Но проц всё равно улетает в _sys_exit. Если не вызывать функции из STDIO всё работает нормально!
at90
AlexandrY cheers.gif Заработало когда увеличил размер heap.
теперь вопрос как создать файл. Функции fcreate в доках не нашел?
Сергей Борщ
Цитата(at90 @ Jun 4 2007, 19:02) *
теперь вопрос как создать файл. Функции fcreate в доках не нашел?
Читать учебники по С на предмет второго параметра функции fopen()
alcosar
AlexandrY. А как можно посмотреть исходник? Что значит "пароль в сахаре"? Интересно, как реализован fat для микросхем EEPROM или DataFlash. Каковы минимальные требования для ОЗУ? Сам fat хранится по одному и тому же адресу? То есть при частой записи, часто переписывается? Предусмотрен ли wear leveling?
AlexandrY
Нет FAT там не причем.
FAT - это такая логическая абстракция и нигде на физическом уровне во FLASH не используется.
Конкретно в библиотеке RTL драйвер FAT используеться только для доступа к SD/MMC картам, которые используют FAT для общения с внешним миром.
Ко всем остальным медиа Keil использует свой оригинальный формат.
Вот этот оригинальный формат и был использован при портировании на Serial Flash.
Файловые функции C ведь не регламентируют логическую и физическую структуру файловой системы.

А www.caxapa.ru - это сайт такой, там в разделе проектов лежит то, что нужно.

Цитата(alcosar @ Jun 4 2007, 23:10) *
AlexandrY. А как можно посмотреть исходник? Что значит "пароль в сахаре"? Интересно, как реализован fat для микросхем EEPROM или DataFlash. Каковы минимальные требования для ОЗУ? Сам fat хранится по одному и тому же адресу? То есть при частой записи, часто переписывается? Предусмотрен ли wear leveling?
alcosar
Цитата(AlexandrY @ Jun 5 2007, 09:49) *
Нет FAT там не причем.
FAT - это такая логическая абстракция и нигде на физическом уровне во FLASH не используется.
Конкретно в библиотеке RTL драйвер FAT используеться только для доступа к SD/MMC картам, которые используют FAT для общения с внешним миром.
Ко всем остальным медиа Keil использует свой оригинальный формат.
Вот этот оригинальный формат и был использован при портировании на Serial Flash.
Файловые функции C ведь не регламентируют логическую и физическую структуру файловой системы.

А www.caxapa.ru - это сайт такой, там в разделе проектов лежит то, что нужно.

Хм, вижу только Ваш проект "Проект ZigBee. Руководство по реализации."
sqrt
Цитата(alcosar @ Jun 5 2007, 12:26) *
Хм, вижу только Ваш проект "Проект ZigBee. Руководство по реализации."

См. ссылку:
http://projects.caxapa.ru/index.html?ID=62
alcosar
Спасибо.
zorromen
Скажите почему не открывается файл. Формат и free работают. Keil. Файл создан и лежит в корневом коталоге.

FILE *f;

fat_init ();

//fformat ("M:SD_CARD");
FREEEE = fat_free();
sprintf(counter_str,"%d Byte", FREEEE);
LCD_sting_HH(0, 10 , counter_str , GREEN, 0);

f = fopen ("123.txt","r");
if (f == NULL) { /* error when opening the file */
LCD_string_HH(0,20 , "Файл не открыт" , GREEN, 0);}
InsolentS
Александр, мне было бы очень интересно прочитать статью про ZigBee, но к сожалению ссылки на Сахаре битые. Не могли бы Вы перезалить?
VAI
InsolentS, это офтоп...
Не это?
http://aly.ogmis.lt/Articles/ZigBee/Direction-ZigBee.htm
InsolentS
Цитата(VAI @ May 18 2008, 09:30) *
InsolentS, это офтоп...
Не это?
http://aly.ogmis.lt/Articles/ZigBee/Direction-ZigBee.htm

Да, огромное спасибо! beer.gif
За офтоп прошу прощения 05.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.