IAR EW ARM: работа с файловой системой FAT на карточках SD/MMC (с использованием библиотеки EFSL) |
![]() |
Добавил(а) microsin | ||||||||||||||||||||||||||||||||||||||||||||||||||||
Проект предназначен для IAR Embedded Workbench for ARM 5.20 и отладочной платы Olimex SAM7-EX256 (хотя может работать и на любом другом устройстве с минимальной косметической правкой). Здесь демонстрируется чтение файловой системы карточек SD/MMC с помощью библиотеки EFSL (см. [6]). Карточка SD подключена к SPI0 микроконтроллера AT91SAM7X256 (точно так же, как в примере USB Mass Storage Device). У меня заработала SD-карточка на 512 мегабайт, а на 16 мегабайт карточка MMC почему-то не заработала. Ошибка была не в карте и не в последовательном интерфейсе, так как Mass Storage Device на этой карте работало, и объем этой карточки определялся правильно. Что-то не сложилось в EFSL (может, из-за файловой системы FAT12?). Примеры вариантов подключения карты SD/MMC к микроконтроллеру ARM7 (AT91SAM7X128, AT91SAM7X256, AT91SAM7X512) приведены в таблице ниже. Можно подключить карту либо к SPI0, либо к SPI1. Например, в макетной плате Olimex SAM7-EX256 используется вариант 1 подключения карты SD/MMC. Для макетной платы AT91SAM7X можно выбрать любой вариант подключения, соответствующим образом настроив порты и SPI. Для подключения сигнала выборки ~CS существует еще больше вариантов, так как каждый из SPIn имеет по 4 аппаратных выхода выборки.
Чтобы заработал индикационный светодиод, показывающий обращение к карточке (он подключен к ножке 66 процессора), не забудьте ввести макроопределение OlimexDBG. Поведение библиотеки EFSL настраивается в файле efsl_0_2_7\inc\config.h. Проект нужно компилировать для работы во flash (почему-то в sram у меня библиотека EFSL глючила), и размер HEAP надо задать не меньше 0x1200 байт, иначе вызовы подпрограмм библиотеки EFSL будут производить вываливание в Undefined_Handler. Библиотека EFSL, как выяснилось, штука довольно капризная. Скачать проект arm-basic-efsl можно здесь. Чтобы EFSL заработала на любой платформе, не только ARM (говорят, что EFSL работает на PC (GNU/Linux, среда разработки), TMS C6000 DSP от Texas instruments и ATMega от Atmel), нужно выполнить следующее: [Ссылки] 1. Другая популярная реализации файловой системы для микроконтроллеров - Petit FAT File System Module. См. также FatFs Generic FAT File System Module, как использовать SD/MMC.
|