реклама на сайте
подробности

 
 
> Переход к новой версии FatFS, Инструкция по обновлению библиотеки
electrotehnik
сообщение Oct 24 2014, 05:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



Добрый день

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

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

Сообщение отредактировал electrotehnik - Oct 24 2014, 05:41
Прикрепленные файлы
Прикрепленный файл  StudyProject_v2.rar ( 3.8 мегабайт ) Кол-во скачиваний: 11
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Golikov A.
сообщение Oct 24 2014, 05:55
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



ну если вы уверены что вы эти функции не будите использовать, ну сделайте пустые заглушки для них (пустая функция которая ничего не делает). Пусть он их найдет и успокоится.
Ведь если они ему нужны, вы без них не обойдетесь. Другое дело если он их еще и использовать захочет... тогда придется их найти или написать правильные самому...
Go to the top of the page
 
+Quote Post
electrotehnik
сообщение Oct 24 2014, 06:04
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



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

Сообщение отредактировал electrotehnik - Oct 24 2014, 06:20
Go to the top of the page
 
+Quote Post
shmur
сообщение Oct 24 2014, 07:05
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 28-11-11
Пользователь №: 68 553



discio это всего лишь интерфейс доступа к физическому хранилищу для FatFS, где будет лежать ваша ФC вы тут и решаете, реализуя соответствующие функции. Если ATA не будет использоваться, просто выкиньте их из этого файла и перепишите его для взаимодействия с SD.
А ошибки выдает линковщик, который не может найти эти функции в объектных файлах, *.о которые.
Go to the top of the page
 
+Quote Post
electrotehnik
сообщение Oct 24 2014, 14:56
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 26-09-14
Пользователь №: 82 927



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

Сообщение отредактировал electrotehnik - Oct 24 2014, 14:58
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th August 2025 - 19:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016