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

 
 
> Использование библиотеки freemodbus, Как скомпилировать cof-файл для библиотеки freemodbus
AlexKas
сообщение Jun 24 2009, 12:13
Сообщение #1





Группа: Участник
Сообщений: 3
Регистрация: 28-06-08
Из: СПб
Пользователь №: 38 613



Доброго времени суток!!!


Есть мультиплатформенная библиотека freemodbus (http://freemodbus.berlios.de/), которая позволяет реализовать протокол Modbus(slave). Очень хочется ее использовать.

Я только начинаю работать с WinAVR, поэтому испытываю трудности при работе с make-файлами. В данной ситуации у меня не получается скомпилировать cof-файл для demo.c . Какие изменения необходимо внести в make-файл, чтобы получить cof-файл?Прикрепленный файл  Makefile.rar ( 1.18 килобайт ) Кол-во скачиваний: 147


Подскажите, как скомпилировать и запустить на моделирование demo в AVRStudio без внешнего make-файла?

Спасибо за помощь!!!

Примечание: Спасибо ARV за помощь с hex!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dimka76
сообщение Jun 24 2009, 12:28
Сообщение #2


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Код
##Link
$(TARGET).elf: $(OBJECTS) $(MBOBJECTS) $(MBPORTOBJECTS)
     $(CC) $(LDFLAGS) $(OBJECTS) $(MBPORTOBJECTS) $(MBOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET).elf

%.hex: $(TARGET).elf
    ##$(OBJCOPY) -O ihex $(HEX_FLASH_FLAGS)  $< $@
    avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@

%.cof: $(TARGET).elf

В этом участке кода попробуйте заменить
Код
%.cof: $(TARGET).elf


на
Код
%.cof: $(TARGET).cof


А вообще в пакете WinAVR есть утилита MFile. Попробуйте использовать ее. А еще лучше поставьте AVR_Studio и работайте через нее. К ней можно прицепить WinAVR. И она makefile сама создает.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
AlexKas
сообщение Jun 25 2009, 20:21
Сообщение #3





Группа: Участник
Сообщений: 3
Регистрация: 28-06-08
Из: СПб
Пользователь №: 38 613



Доброго времени суток!
Цитата(dimka76 @ Jun 24 2009, 16:28) *
В этом участке кода попробуйте заменить
Код
%.cof: $(TARGET).elf

на
Код
%.cof: $(TARGET).cof

Спасибо за ответ, но замена %.cof: $(TARGET).elf на %.cof: $(TARGET).cof не помогла при компилировании cof-файла.
Цитата(dimka76 @ Jun 24 2009, 16:28) *
А вообще в пакете WinAVR есть утилита MFile. Попробуйте использовать ее. А еще лучше поставьте AVR_Studio и работайте через нее. К ней можно прицепить WinAVR. И она makefile сама создает.

Да я пользуюсь этой утилитой для создания make-файлов в WinAVR, но в данном случае в этой библиотеке очень много внутренних ссылок, и я не знаю как их подключить через эту утилиту.

AVR-Studio я использую ,а именно после того как в ней появилась поддержка GCC, я перешел на нее и не жалею.
При запуске demo-проекта для AVR от freemodbus с приложенным make-файлом, я могу пошагово отлаживаться только по ассемблерному коду (с ассемблером только начинаю "водить дружбу"), поэтому хотел получить cof-файл, чтобы отлаживаться на Си.
Запустить demo-проект, когда AVR-Studio сама создает make-файла, у меня не получается, постоянно выскакивают ошибки, предполагаю, что нужно делать хитрые настройки в "Configuration options".
К примеру, ниже приведенный код содержится в make-файле, приложенном к demo-проекту, я так понимаю, что при компиляции к проекту подключаются библиотеки, которые содержаться в папках "Port", "rtu", "ascii" и "include".
Код
CFLAGS = $(COMMON) \
         -Iport -I. \
         -I../../modbus/rtu -I../../modbus/ascii -I../../modbus/include

Данные папки я подключил к AVR-Studio в "Configuration options"->"Include directories" - не помогло.

Заинтересовался другим участком кода:
Код
OBJECTS = demo.o
MBPORTOBJECTS = port/portserial.o \
            port/portevent.o \
            port/porttimer.o \
            port/mbcrc.o
MBOBJECTS = ../../modbus/mb.o \
            ../../modbus/rtu/mbrtu.o \
            ../../modbus/ascii/mbascii.o \
            ../../modbus/functions/mbfunccoils.o \
            ../../modbus/functions/mbfuncdiag.o \
            ../../modbus/functions/mbfuncholding.o \
            ../../modbus/functions/mbfuncinput.o \
            ../../modbus/functions/mbfuncother.o \
            ../../modbus/functions/mbfuncdisc.o \
            ../../modbus/functions/mbutils.o

(Если кто-то объяснит зачем этот участок кода в make-файле буду очень благодарен.)
Попытался что-то подобное сделать в AVR-Studio в "Configuration options"->"Libraries", а именно, в окне "Library search path" указал пути, после чего в окне "Available link objects" появились portserial.o...mbutils.o, после этого с помощью кнопки "Add Libraries" данные объектные файлы я добавил в окно "Link with these objects". При компиляции в ошибках вывел имя каждого добавленного объектного файла и "No such file or directory".
Подскажите, в каком направлении идти дальше?
"Configuration options"
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 09:48
Рейтинг@Mail.ru


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