Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Переход к новой версии FatFS
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
electrotehnik
Добрый день

Программирую на отладочной плате HY-MiniSTM32V. Карта памяти подключена по SDIO. Попался мне проект, где версия FatFS 0.08b уже отконфигурирована под работу с SDIO.
Но на данный момент уже вышла версия FatFS 0.10b.

Обновил аккуратно файлы FatFS, добавил где надо необходимые инклуды, по аналогии с рабочим проектом. Драйвер SDIO в отдельном файле реализован.
Однако компилер (Keil4) продолжает ругаться таким образом:

Код
...
.\Project_firmware.axf: Error: L6218E: Undefined symbol ATA_disk_initialize (referred from diskio.o).
.\Project_firmware.axf: Error: L6218E: Undefined symbol ATA_disk_read (referred from diskio.o).
...
.\Project_firmware.axf: Error: L6218E: Undefined symbol USB_disk_initialize (referred from diskio.o).
.\Project_firmware.axf: Error: L6218E: Undefined symbol USB_disk_read (referred from diskio.o).
...
.\Project_firmware.axf: Error: L6218E: Undefined symbol MMC_disk_initialize (referred from diskio.o).
.\Project_firmware.axf: Error: L6218E: Undefined symbol MMC_disk_read (referred from diskio.o).
...
.\Project_firmware.axf: Error: L6218E: Undefined symbol get_fattime (referred from ff.o).
...


Я собираюсь работать только с SD. Драйвер подключен только для SD и, соответственно, драйверов для ATA и USB у меня нет, поэтому в файле diskio.c сделал так:

Код
#include "diskio.h"        /* FatFs lower layer API */
//#include "usbdisk.h"    /* Example: USB drive control */
//#include "atadrive.h"    /* Example: ATA drive control */
//#include "sdcard.h"        /* Example: MMC/SDC contorl */
#include "sdio_sd.h"


Упомянутые необъявленные символы встречаются почти в каждой функции файла diskio.c. Это что же, эти функции нужно переписывать с учетом отсутствующих драйверов, или искать драйвера?

Как сделать правильнее и проще?
Golikov A.
ну если вы уверены что вы эти функции не будите использовать, ну сделайте пустые заглушки для них (пустая функция которая ничего не делает). Пусть он их найдет и успокоится.
Ведь если они ему нужны, вы без них не обойдетесь. Другое дело если он их еще и использовать захочет... тогда придется их найти или написать правильные самому...
electrotehnik
Похоже при переходе к новой версии файл diskio.c остается неизменным, так как в нем описываются функции взаимодействия библиотеки с драйвером. Разве что эти функции необходимо поправить для соответствия нововведениям в библиотеке. В поставке с библиотекой этот файл представляет собой лишь пример. Поправьте меня, если я ошибаюсь, или мое предположение не точно.
shmur
discio это всего лишь интерфейс доступа к физическому хранилищу для FatFS, где будет лежать ваша ФC вы тут и решаете, реализуя соответствующие функции. Если ATA не будет использоваться, просто выкиньте их из этого файла и перепишите его для взаимодействия с SD.
А ошибки выдает линковщик, который не может найти эти функции в объектных файлах, *.о которые.
electrotehnik
Спасибо, разобрался!
diskio.c переписал по образу и подобию старой версии, при этом поглядывая на diskio.h. Последний - остался без изменений. Остальные файлы тоже просто копируются общим скопом.
Так и получается обновление.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.