Перейти к содержанию
    

SD Card - програмная реализация интерфейса

Привет, всем! Кто-нибудь делал поддержку длинного имени файлов у fatfs? У меня не получается.Ставлю _USE_LFN =1 , добавляю функции ff_convert() и ff_wtoupper(). А имена так и остались короткими? Что делаю не так ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

stm32 - это хорошо, сам недавно вязал F4Discovery c SD по SPI, и огрызок FAT16 прикручивал (читает только из корня, только короткие

имена и непрерывные цепочки кластеров, зато свое и для моей задачи хватило) :rolleyes:

А вот нет ли у кого рабочего примера LPC2478 + MCI (достаточно чтения - записи блока)

Изменено пользователем sherr

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Привет, всем! Кто-нибудь делал поддержку длинного имени файлов у fatfs? У меня не получается.Ставлю _USE_LFN =1 , добавляю функции ff_convert() и ff_wtoupper(). А имена так и остались короткими? Что делаю не так ?

Доргая prussta.

Поскольку у Вас ещё нет личного ящика, напишу здесь.

Не нужно дублировать сообщения в разных темах форума.

Во избежание недоразумений в будущем настоятельно рекомендую прочитать правила.

Искренне Ваш,

Модератор

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот нет ли у кого рабочего примера LPC2478 + MCI (достаточно чтения - записи блока)

Драйвер можно найти, например, и в примерах Кейла и у того же Чана и в книжке Тревора Мартина. Еще в сети есть ресурс Мартина Томаса. Гугл в помощь. =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Память выделить под длинное имя и показать fatfs где эта память.

 

 

skripach, с памятью ясно, а как показать где эта память? )Можно, по подробнее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что делаю не так ?

Если мне не изменяет память, то шаги такие - в ff.h добавьте _USE_LFN 1. Теперь надо сменить кодировку (например _CODE_PAGE 866) и подключить ccsbcs.c (в нем живет ff_convert).

Ну и пример из документации, где видно как это юзается.

FRESULT scan_files (char* path)
{
FRESULT res;
FILINFO fno;
DIR dir;
int i;
char *fn;
#if _USE_LFN
static char lfn[_MAX_LFN * (_DF1S ? 2 : 1) + 1];
fno.lfname = lfn;
fno.lfsize = sizeof(lfn);
#endif


res = f_opendir(&dir, path);
if (res == FR_OK) {
	i = strlen(path);
	for (;;) {
		res = f_readdir(&dir, &fno);
		if (res != FR_OK || fno.fname[0] == 0) break;
		if (fno.fname[0] == '.') continue;
#if _USE_LFN
		fn = *fno.lfname ? fno.lfname : fno.fname;
#else
		fn = fno.fname;
#endif
		if (fno.fattrib & AM_DIR) {
			sprintf(&path[i], "/%s", fn);
			res = scan_files(path);
			if (res != FR_OK) break;
			path[i] = 0;
		} else {
			printf("%s/%s\n", path, fn);
		}
	}
}

return res;
}

Изменено пользователем IgorKossak
[codebox] для длинного кода!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А мне интерестно кто нибудь из местных тут на форуме делал свою полную реализацию SD под stm32f4 с использованием SDIO?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Lotor, Skripach спасибо за помощь! Заработало!)) Объявление памяти (см. листинг) вставила в get_fileinfo (DIR *dj, FILINFO *fno), что в ff.c.

И потом все запархало)))

#if _USE_LFN
static char lfn[_MAX_LFN * (_DF1S ? 2 : 1) + 1];
fno.lfname = lfn;
fno.lfsize = sizeof(lfn);
#endif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

пытаюсь прикрутить пример стм32 от fatfs, вылезают проблемы, какое то не сходство с новой версией библиотеки, и переопределение функций.

 

 

кто нибудь может прикрепить готовый работающий проект с SD картой через 4пин SDIO под stm32f4?

 

 

можно даже и любая другая библиотека работающая? или если есть линк на пример? я поискал в нете, но нигде конкретного примера работающего не нашел. везде вылезают ошибки.

ктото может поделится примером рабочим?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ктото может поделится примером рабочим?

Драйвер Вы можете, например, посмотреть в примерах Кейла (\Keil\ARM\RL\FlashFS\Drivers). У меня версия 4.22 и там есть драйверы для STM32F2. В более новых версиях может есть и для f4, если там большие отличия.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну не тока драйвер

я говорил про рабочий готовый проект, который можно запустить и чтобы он записа данные тестовые не SD карту.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну не тока драйвер

я говорил про рабочий готовый проект, который можно запустить и чтобы он записа данные тестовые не SD карту.

Ох... %)

 

Кеил на то драйверы и дает, что это аппаратно зависимая часть их fat.

 

PS: Если уж по руководству не сможете разобраться, всегда можно посмотреть, как это сделано на примерах для демоборд. Например \Keil\ARM\Boards\ST\STM3220G-EVAL\RL\FlashFS\SD_File. Уверен, что у IAR аналогично.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ох... %)

 

Кеил на то драйверы и дает, что это аппаратно зависимая часть их fat.

 

А с FatFs как быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...