|
|
  |
KEIL RTL FAT LIB, Проблемка! |
|
|
|
Jun 3 2007, 16:57
|

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

|
AlexandrY, спасибо за помошь! Взял retarget.c изь вашего проекта и сделал функции пустыми void Commch_send_byte(INT8U chnl, INT8U  {}; INT8U Commch_wait_byte(INT8U chnl, INT16U timeout, INT8U* err) {return 0; } Но проц всё равно улетает в _sys_exit. Если не вызывать функции из STDIO всё работает нормально!
--------------------
<<Первая производная от чужой идеи - уже твоя идея.>>
|
|
|
|
|
Jun 3 2007, 18:27
|

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  {}; INT8U Commch_wait_byte(INT8U chnl, INT16U timeout, INT8U* err) {return 0; } Но проц всё равно улетает в _sys_exit. Если не вызывать функции из STDIO всё работает нормально!
|
|
|
|
|
Jun 4 2007, 19:40
|
Участник

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

|
AlexandrY. А как можно посмотреть исходник? Что значит "пароль в сахаре"? Интересно, как реализован fat для микросхем EEPROM или DataFlash. Каковы минимальные требования для ОЗУ? Сам fat хранится по одному и тому же адресу? То есть при частой записи, часто переписывается? Предусмотрен ли wear leveling?
|
|
|
|
|
Jun 5 2007, 06:49
|

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?
|
|
|
|
|
Jun 5 2007, 08:26
|
Участник

Группа: Участник
Сообщений: 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. Руководство по реализации."
|
|
|
|
|
Jun 5 2007, 09:12
|

Участник

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

|
Цитата(alcosar @ Jun 5 2007, 12:26)  Хм, вижу только Ваш проект "Проект ZigBee. Руководство по реализации." См. ссылку: http://projects.caxapa.ru/index.html?ID=62
|
|
|
|
|
Jun 5 2007, 10:36
|
Участник

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

|
Спасибо.
|
|
|
|
|
May 17 2008, 09:51
|

Местный
  
Группа: Свой
Сообщений: 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);}
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|