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

 
 
 
Reply to this topicStart new topic
> KEIL RTL FAT LIB, Проблемка!
at90
сообщение Jun 3 2007, 12:29
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 866
Регистрация: 31-03-05
Из: Краснодар
Пользователь №: 3 814



Решил использовать библиотеку 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


--------------------
<<Первая производная от чужой идеи - уже твоя идея.>>
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 3 2007, 13:48
Сообщение #2


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



А как же, конечно юзали.
Вот ссылка на проект где была портирована 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
Go to the top of the page
 
+Quote Post
at90
сообщение Jun 3 2007, 16:57
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 866
Регистрация: 31-03-05
Из: Краснодар
Пользователь №: 3 814



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 всё работает нормально!


--------------------
<<Первая производная от чужой идеи - уже твоя идея.>>
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 3 2007, 18:27
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Еще требуется выделить 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 всё работает нормально!
Go to the top of the page
 
+Quote Post
at90
сообщение Jun 4 2007, 16:02
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 866
Регистрация: 31-03-05
Из: Краснодар
Пользователь №: 3 814



AlexandrY cheers.gif Заработало когда увеличил размер heap.
теперь вопрос как создать файл. Функции fcreate в доках не нашел?


--------------------
<<Первая производная от чужой идеи - уже твоя идея.>>
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 4 2007, 16:28
Сообщение #6


Гуру
******

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



Цитата(at90 @ Jun 4 2007, 19:02) *
теперь вопрос как создать файл. Функции fcreate в доках не нашел?
Читать учебники по С на предмет второго параметра функции fopen()


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
alcosar
сообщение Jun 4 2007, 19:40
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-03-06
Пользователь №: 15 598



AlexandrY. А как можно посмотреть исходник? Что значит "пароль в сахаре"? Интересно, как реализован fat для микросхем EEPROM или DataFlash. Каковы минимальные требования для ОЗУ? Сам fat хранится по одному и тому же адресу? То есть при частой записи, часто переписывается? Предусмотрен ли wear leveling?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jun 5 2007, 06:49
Сообщение #8


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Нет 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?
Go to the top of the page
 
+Quote Post
alcosar
сообщение Jun 5 2007, 08:26
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-03-06
Пользователь №: 15 598



Цитата(AlexandrY @ Jun 5 2007, 09:49) *
Нет FAT там не причем.
FAT - это такая логическая абстракция и нигде на физическом уровне во FLASH не используется.
Конкретно в библиотеке RTL драйвер FAT используеться только для доступа к SD/MMC картам, которые используют FAT для общения с внешним миром.
Ко всем остальным медиа Keil использует свой оригинальный формат.
Вот этот оригинальный формат и был использован при портировании на Serial Flash.
Файловые функции C ведь не регламентируют логическую и физическую структуру файловой системы.

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

Хм, вижу только Ваш проект "Проект ZigBee. Руководство по реализации."
Go to the top of the page
 
+Quote Post
sqrt
сообщение Jun 5 2007, 09:12
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 66
Регистрация: 14-07-05
Из: Moscow
Пользователь №: 6 786



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

См. ссылку:
http://projects.caxapa.ru/index.html?ID=62
Go to the top of the page
 
+Quote Post
alcosar
сообщение Jun 5 2007, 10:36
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 30-03-06
Пользователь №: 15 598



Спасибо.
Go to the top of the page
 
+Quote Post
zorromen
сообщение May 17 2008, 09:51
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 322
Регистрация: 13-12-05
Пользователь №: 12 147



Скажите почему не открывается файл. Формат и 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);}
Go to the top of the page
 
+Quote Post
InsolentS
сообщение May 17 2008, 12:20
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Александр, мне было бы очень интересно прочитать статью про ZigBee, но к сожалению ссылки на Сахаре битые. Не могли бы Вы перезалить?


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
VAI
сообщение May 18 2008, 03:30
Сообщение #14


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



InsolentS, это офтоп...
Не это?
http://aly.ogmis.lt/Articles/ZigBee/Direction-ZigBee.htm


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
InsolentS
сообщение May 18 2008, 10:03
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(VAI @ May 18 2008, 09:30) *
InsolentS, это офтоп...
Не это?
http://aly.ogmis.lt/Articles/ZigBee/Direction-ZigBee.htm

Да, огромное спасибо! beer.gif
За офтоп прошу прощения 05.gif


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:25
Рейтинг@Mail.ru


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