Перейти к содержанию
    

Переход к новой версии FatFS

Добрый день

 

Программирую на отладочной плате 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. Это что же, эти функции нужно переписывать с учетом отсутствующих драйверов, или искать драйвера?

 

Как сделать правильнее и проще?

StudyProject_v2.rar

Изменено пользователем electrotehnik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну если вы уверены что вы эти функции не будите использовать, ну сделайте пустые заглушки для них (пустая функция которая ничего не делает). Пусть он их найдет и успокоится.

Ведь если они ему нужны, вы без них не обойдетесь. Другое дело если он их еще и использовать захочет... тогда придется их найти или написать правильные самому...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже при переходе к новой версии файл diskio.c остается неизменным, так как в нем описываются функции взаимодействия библиотеки с драйвером. Разве что эти функции необходимо поправить для соответствия нововведениям в библиотеке. В поставке с библиотекой этот файл представляет собой лишь пример. Поправьте меня, если я ошибаюсь, или мое предположение не точно.

Изменено пользователем electrotehnik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

discio это всего лишь интерфейс доступа к физическому хранилищу для FatFS, где будет лежать ваша ФC вы тут и решаете, реализуя соответствующие функции. Если ATA не будет использоваться, просто выкиньте их из этого файла и перепишите его для взаимодействия с SD.

А ошибки выдает линковщик, который не может найти эти функции в объектных файлах, *.о которые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, разобрался!

diskio.c переписал по образу и подобию старой версии, при этом поглядывая на diskio.h. Последний - остался без изменений. Остальные файлы тоже просто копируются общим скопом.

Так и получается обновление.

Изменено пользователем electrotehnik

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...