STM32F103x.FATFS + DMA + CUBEMX

STM32. FATFS + DMA + CUBEMX

 

Александр Левчук dslev@yandex.ru

Аннотация

В статье рассматривается работа файловой системы FatFs с картой памяти микро SD (10 класс) под управлением модуля SDIO в режиме DMA. Код проекта прилагается.

В статье сначала приводятся переведенные выдержки из документа UML1721, описывающие принципы использования FatFS для CubeF4, которые без изменений пригодны и для серии CubeF1.

Далее описывается процесс написания кода для установки FatFs на карту микро SD 10 класса под управлением модуля SDIO, работающего в режиме DMA.

Подробно рассмотрены вопросы настройки FatFs, модуля SDIO, связи с драйвером поддержки платы BSP, взаимодействия прерываний DMA и прерываний драйвера BSP.

Описаны проблемы использования длинных имен и строк на киррилице и решение этих проблем.

Статья выполнена в формате PDF, содержит 33 страницы. За получением статьи обращайтесь к автору. К статье прилагается рабочий проект, выполненный в среде VisualStudio 2013+VisualGDB+CubeMX и документ UM1721.

Оглавление статьи

Обзор FatFs CubeF4 (UM1721 User manual)

Архитектура FatFs

Особенности FatFs

  • Дублирование доступа к файлам
  • Независимость файловых операций (Reentrancy )
  • Длинное имя файла
  • FatFs API низкого уровня
  • FatFs в STM32CubeF4
  • FATFS_LinkDriver()
  • FATFS_UnlinkDriver ()
  • Интерфейс вашего собственного диска для FatFs

 

FatFs приложения CubeF4

  • HAL drivers configuration
  • Длинное имя файла
  • Пример приложения FatFs

 

Приложение пользователя CubeMX в режиме DMA.

  • Схема подключения карты SD.

 

Настройка проекта CubeMX

  • Настройка модуля SDIO
  • Настройка FatFS

 

Файлы FatFs, созданные CubeMX.

  • Файл ffconf.h
  • Файлы fatfs.h и fatfs.c
  • Файлы bsp_driver_sd.h и bsp_driver_sd.c
  • Файл sd_diskio.с

 

Связь низкоуровневых функций FatFs с драйвером BSP

  • Документация драйвера BSP
  • Перегрузка функций драйвера BSP
  • Прерывания DMA и BSP

 

Настройки FatFs. Строки с компилятором Clang

Длинные и короткие имена FatFs. Использование киррилицы

  • Режим записи/чтения файла в UTF8
  • Режим записи/чтения файла в UTF16