1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yao_mi-ufatfs

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

UFATFs

Введение

Обычно при разработке встраиваемых систем мы используем Fatfs в качестве файловой системы, но методы работы с файлами отличаются от тех, что используются в Windows. Чтобы сделать файловые операции, написанные для ПК, легко переносимыми на микроконтроллеры, я добавил дополнительный уровень пользователя (user layer) поверх Fatfs. Это позволяет почти без изменений переносить файловые операции с ПК на микроконтроллеры. Например, для типа FILE* P на ПК достаточно изменить его на uFILE* P. Подробное описание использования см. в функции fatfs_test(); В этом тесте мы создаем область памяти на ПК для имитации работы с W25Q128, а также используем LCD-симулятор для отображения и MemDbg для отладки памяти. Все эти инструменты были использованы в предыдущих проектах.

Архитектура программного обеспечения

Инструкции по установке

Используемая версия Fatfs — R0. 14. Для переноса на другую платформу см. инструкции по переносу в файле.

Инструкции по использованию

  1. Для всех файловых операций на ПК достаточно добавить префикс u, например: uf_open, uf_close, uf_read, uf_write, uf_gets, uf_putc, uf_puts, uf_tell, uf_size, uf_seek, uf_opendir, uf_closedir, uf_mkdir, uf_scan_dir, uf_readdir, uf_unlink, uf_rename, uf_typetell, uf_cpy_msg, uf_filecopy, uf_get_file_name, uf_foldercopy, uf_folderdsize, uf_mount, uf_mkfs, uf_getfree, uf_setlabel, uf_getlabel.
  2. Эти функции совместимы со стандартными функциями Stdio и имеют аналогичные прототипы. Примеры прототипов: uFILE * uf_open(const char *path, const char *mode); // Открыть файл int uf_close(uFILE *ufile); // Закрыть файл size_t uf_read(void *ptr, size_t size, size_t nmenmb, uFILE ufile); // Чтение содержимого файла size_t uf_write(void ptr, size_t size, size_t nmenmb, uFILE ufile); // Запись содержимого файла char uf_gets(char outbuf, uint32 size, uFILE file); // Чтение строки из файла int uf_putc(char c, uFILE *ufile); // Запись одного символа int uf_puts(char *str, uFILE *ufile); // Запись строки . . . . . . . . . . . . . . . . . . . . . . . .
  3. Большинство файловых функций, которые могут понадобиться на ПК, представлены здесь. Однако при работе с большими файлами следует учитывать ограничения памяти. Если файл слишком большой, может возникнуть нехватка памяти. Конкретные ограничения я не помню, так как это было написано давно. Если кто-то из коллег обнаружил эти ограничения, пожалуйста, дайте знать. Обычно файлы на микроконтроллерах не бывают слишком большими, поэтому в большинстве случаев все работает корректно.
  4. Тип FILE на ПК, это и есть тип uFILE здесь, просто добавьте u в начало, но DIR и FILINFO можно оставить без изменений. Подробный пример использования см. в функции fatfs_test()
  5. Для включения режима отладки можно установить UFILE_DEBUG_ENABLE в 1 в файле user_fats.h, что позволит выводить подробную информацию о выполненных операциях с файлами

Как внести вклад

  1. Создайте форк этого репозитория
  2. Создайте ветку Feat_xxx
  3. Подключите свой код
  4. Создайте Pull Request

Специальные возможности

  1. Используйте Readme_XXX.md для поддержки различных языков, например Readme_en.md, Readme_zh.md
  2. Официальный блог Gitee blog.gitee.com
  3. Вы можете посетить https://gitee.com/explore для изучения лучших открытых проектов на Gitee
  4. GVP — это сокращение от Gitee Most Valuable Open Source Project, что означает лучшие проекты, выбранные по критериям оценки
  5. Официальная документация Gitee https://gitee.com/help
  6. Секция Gitee Stars представляет собой рубрику, посвященную представлению достижений пользователей Gitee https://gitee.com/gitee-stars/

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

При разработке встроенных систем мы часто используем Fatfs в качестве файловой системы, но методы работы с ней отличаются от методов работы с файловой системой Windows. Поэтому, чтобы код операций с файлами, написанный на ПК, можно было легко перенести на микроконтроллер, я добавил ещё один уровень обёртки над Fatfs, то есть создал пользовательс... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/yao_mi-ufatfs.git
git@api.gitlife.ru:oschina-mirror/yao_mi-ufatfs.git
oschina-mirror
yao_mi-ufatfs
yao_mi-ufatfs
master