Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: файлы на SD карте KEIL
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
asimo
прошу помощи. на сдкарте хранятся файлы, требуется в кейле считать всю инфу о файлах и директориях для создания каталога с вложениями. да и для удаления файлов и директорий сей алгоритм пригодится. мож кто делал уже, подскажите.
kovigor
Цитата(asimo @ Mar 5 2011, 15:47) *
прошу помощи. на сдкарте хранятся файлы, требуется в кейле считать всю инфу о файлах и директориях для создания каталога с вложениями. да и для удаления файлов и директорий сей алгоритм пригодится. мож кто делал уже, подскажите.


Смешались в кучу кони, люди ...
А какая связь между кейлом и SD - карточкой, можно спросить ? Вам нужен считыватель карточек ? Так они есть готовые. Кейл тут ни при чем ...
SergeyDDD
Цитата(kovigor @ Mar 5 2011, 15:20) *
Смешались в кучу кони, люди ...
А какая связь между кейлом и SD - карточкой, можно спросить ? Вам нужен считыватель карточек ? Так они есть готовые. Кейл тут ни при чем ...


Не стоит умничать и флудить...
Хоть вопрос и "корявый", но предмет вопроса понятен.

Цитата(asimo @ Mar 5 2011, 14:47) *
прошу помощи. на сдкарте хранятся файлы, требуется в кейле считать всю инфу о файлах и директориях для создания каталога с вложениями. да и для удаления файлов и директорий сей алгоритм пригодится. мож кто делал уже, подскажите.


Доустановите в Keil библиотеку "RealView Real-Time Library for ARM-powered Microcontrollers".
В состав входит FlashFS
Это то что Вам нужно
kovigor
Цитата(SergeyDDD @ Mar 5 2011, 21:11) *
Не стоит умничать и флудить...
Хоть вопрос и "корявый", но предмет вопроса понятен.


Виноват. Погорячился. Прошу прощения ...
asimo
да, скачал установил. не могу алгоритма продумать как сделать. есть функция делит, но она удаляет пустые папки либо файлы, есть функция ффинд. но чет взаимосвязать их не могу...
yashok
Если нужен алгоритм для просмотра файлов и директорий можно воспользоваться примером с документации от FAT

Код
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;
}


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.