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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Работа с WinAVR+AVRStudio4.12+avrlib, Не могу использовать библиотеки.
MRW
сообщение Mar 6 2006, 18:23
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 17-06-04
Пользователь №: 36



Решил я перейти с Асма на С. Поставил WinAVR, avr-lib. Пишу в AVRStudio 4.12.
Все бы хорошо, но решил использовать библиотеки из avr-lib (http://hubbard.engr.scu.edu/embedded/avr/avrlib/).
При использовании библиотек (например uart/h) компиллер выдает ошибки.
Помогите неучу, только сильно не пинайте, как подключать библиотеки ьакого плана, где есть .h файл и описание функций в .c файле.

Интересно поподробнее узнать как это все работает. Пробовал CodeVision, но там он сам все как-то делает, что мне не нравится. Хочется процес контролировать.

Сообщение отредактировал MRW - Mar 6 2006, 18:37
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 6 2006, 20:38
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(MRW @ Mar 6 2006, 20:23) *
как подключать библиотеки ьакого плана, где есть .h файл и описание функций в .c файле.

.c подключить к проекту, а заголовки .h присоединять с помощью include "путь\имя.h"
Go to the top of the page
 
+Quote Post
MRW
сообщение Mar 7 2006, 09:07
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 17-06-04
Пользователь №: 36



Все используеиые компоненты .c подключать в AVRStudio (Add to file)?
Я думал он сам понимает, что подключать.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 7 2006, 11:50
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



#include <x> включает текст файла x на место директивы.
.с .lib .obj файлы должны явно указываться чтобы попасть в компиляцию
Советую поиграться с родными для дистрибутива Prog Notepad и MFile
тогда процесс сборки станет понятным.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
MRW
сообщение Mar 7 2006, 12:43
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 17-06-04
Пользователь №: 36



Спасибо большое, а то я кучу времени пытался это победить. Теперь пошло.
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 22 2007, 19:28
Сообщение #6


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Люди добрые помогите. Я только учусь.
Установил AvrLib, WinAvr. WinAvr работает без проблем. Пишу в NP.
Решил подключить avrlib.
Но он у меня сразу ошибки нашел, это мол не так, то нетак.
Может нужно использовать только его библиотеки, или они лиш дополнения к основным.
WinAvr и drvlib самые последние.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 22 2007, 21:51
Сообщение #7


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(bullit @ Jun 22 2007, 23:28) *
Люди добрые помогите. Я только учусь.
Установил AvrLib, WinAvr. WinAvr работает без проблем. Пишу в NP.
Решил подключить avrlib.
Но он у меня сразу ошибки нашел, это мол не так, то нетак.
Может нужно использовать только его библиотеки, или они лиш дополнения к основным.
WinAvr и drvlib самые последние.

Какие ошибки? Может быть библиотеки в makefile не указаны для линкера?


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 23 2007, 11:23
Сообщение #8


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Папка с моими программами находится не в папке с WinAvr и Avrlib. Структура папок в приложенном файле.

Подключил его так:
#include <AVRLib/uart.h> и в "" заключал и прямой путь указывал, все бестолку
И в мейк файле, через Mfile.exe, дабавлял uart.c файл? как сишный сорс.
Ошибка такая: uartproba.c:11:25: warning: AVRLib/uart.h: No such file or directory
Что нетак делаю.
Притом программы экземплы внутри avrlib выполняются. Что теперь пути менять, но как? И почему это происходит? Объясните пожалуйста.
Переменная среды как AVRLIB есть.

Или такую ошибку: make: *** No rule to make target `uartproba.elf', needed by `elf'. Stop.
Прикрепленные изображения
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
the_victor
сообщение Jun 24 2007, 12:46
Сообщение #9





Группа: Новичок
Сообщений: 8
Регистрация: 7-04-07
Из: Пермь
Пользователь №: 26 848



Цитата(bullit @ Jun 23 2007, 14:23) *
#include <AVRLib/uart.h> и в "" заключал и прямой путь указывал, все бестолку
И в мейк файле, через Mfile.exe, дабавлял uart.c файл? как сишный сорс.
Ошибка такая: uartproba.c:11:25: warning: AVRLib/uart.h: No such file or directory

путь указан не верно
прописать полный путь
#include <d:\dev\avr\AVRLib\uart.h>
или
#include <..\AVRLib\uart.h>

Цитата
Или такую ошибку: make: *** No rule to make target `uartproba.elf', needed by `elf'. Stop.

хз, может косяк с makefile.
попробовать создать при помощи входящей в комплект winavr утилиты MFile [WinAVR]
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 24 2007, 16:35
Сообщение #10


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



я тут еще не пробывал. Но говорят файлик global.h надо кидать в папку с проектом.
Так? И какие воопче надо делать процедуры, чтоб проект запахал.

makefile делаю именно утилитой MFile.
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 24 2007, 19:24
Сообщение #11


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



А как-то использовать avrlib-овский мейкфайл нужно. Или с помощью утилиты MFile.exe как нибудь настраивать?
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 24 2007, 20:41
Сообщение #12


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



В makefile можно, а в Вашем нужно указать директорию для дополнительных includ'ов. Есть строка в файле, добавить также, что надо линковать из дополнительных библиотек.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 24 2007, 21:13
Сообщение #13


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Выглядит эта строка в мейкфайле так?
Код
########### you should not need to change the following line #############
include bla-bla-bla


И почему ругается на это: $(AVRLIB)/ в майкфайле? Хотя переменная среды существует.

Avrlib конечно заработал, но после того как я все его файлы кторые упоминались в инклудах себе в папку запихал. А нельзя без такого гемороя?
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 25 2007, 06:47
Сообщение #14


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(bullit @ Jun 25 2007, 01:13) *
Выглядит эта строка в мейкфайле так?
Код
########### you should not need to change the following line #############
include bla-bla-bla

Конечно не так! Для утилиты make существуют свои правила написания makefile. -I и другие команды.
В файле существуют комментированные строки с описанием того, что за команда. Их можно раскомментировать и дополнить. Почитайте, пожалуйста, документацию к этой утилите. С помощью нее можно много чего делать.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 26 2007, 08:28
Сообщение #15


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Гы. С ангельским не очень дружу.
Пойду смотреть дальше. Просто думал кто подскажет. Придется самому, нет времени. програмирую в свободное время, которого нет.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 26 2007, 09:56
Сообщение #16


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Из makefile:
SRC = сюда файлы для компиляции через пробел, указать полный пуль к необходимым исходникам от avrlib ( типа $AVRLIB\xxx.c)
EXTRAINCDIRS = указать директорию, где лежат *.h от avrlib
LDFLAGS к этому ключу при необходимости добавить указания на библиотеки.

удачи.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 26 2007, 10:13
Сообщение #17


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Спасибо. Только перед этим хотел проверить эту директиву.
А вот по поводу строки $AVRLIB\xxx.c , её так нужно писать или так: $(AVRLIB)\xxx.c ? Я конечно проверю, но в makefile написанно с скобках.
И по поводу LDFLAGS, какие библиотеки сюда подключаются. Если можно в примере.
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 26 2007, 11:26
Сообщение #18


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Что-то не помогло. Может кто скинет пример. так чеб все видно было. + структуру катологов. Где проекты и где avrlib с WinAVR.
Ошибка не исчезла: undefined reference to `uartInit'
Все как выше написанно сделал. Не помогает.
Работа стоит.
Заранее большое спасибо.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 27 2007, 11:59
Сообщение #19


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



В makefile для include
EXTRAINCDIRS = $(AVRLIB)/conf $(AVRLIB)

Исходники от AVRLIB я не смог скомпилировать указав что-то похожее
SRC = test1.c test2.c $(AVRLIB)/uart2.c
Make ругается на цели, похоже не любит исходники в разных директориях. Даже указание полного пути к test2.c приводит к ошибке.
Возможный путь решения:
IMHO: avrlib дается в исходниках, то соответствующие xxx.c в рабочий каталог, а в makefile их добавить и указать EXTRAINCDIRS = $(AVRLIB)/conf $(AVRLIB)
В этом случае все собирается. Библиотека универсальная. Например, работа с COM портом сильно навороченная (буферы). Можно взять идеи и сделать покороче и быстрее, о чем в форуме уже говорилось.

успехов.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 27 2007, 12:09
Сообщение #20


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Именно тот способ что вы предлагаете у меня и за работал изначально. Просто я считал, что можно и без переносов файлов. Просто указал пути и всё. А может быть тому причина наклон слеша. В хелпе написанно обратный слеш. Не пробывали.
Кстати тоже примеры из АВРЛИБа не компилировались - странно.
Думаю перенести папку с АВРЛИБом в WINAVR - может поможет. Одним словом танцы с бубном и тыканье пальца...
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 27 2007, 18:53
Сообщение #21


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(bullit @ Jun 27 2007, 16:09) *
А может быть тому причина наклон слеша. В хелпе написанно обратный слеш. Не пробывали.
Кстати тоже примеры из АВРЛИБа не компилировались - странно.
Думаю перенести папку с АВРЛИБом в WINAVR - может поможет. Одним словом танцы с бубном и тыканье пальца...

Слэшы пробовал оба, не прошло.
Перенос папки скорее всего не поможет.
Сам AVRLIB довольно старый по времени создания, в нем используются старые макро. Современный WINAVR более "строгий". Я включаю почти все предупреждения и на AVRLIB их идет масса, причем не всегда безобидных. Для своих проектов не использую AVRLIB.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 27 2007, 19:10
Сообщение #22


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Не используете их в чистом виде? Или используете в переработанном виде?
А как avrlib подключать в AVRStudio? Где именно? И главное как?
Чтоб такой проблемы не было.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 28 2007, 20:36
Сообщение #23


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(bullit @ Jun 27 2007, 23:10) *
Не используете их в чистом виде? Или используете в переработанном виде?
А как avrlib подключать в AVRStudio? Где именно? И главное как?

Не использую, библиотека универсальная в ущерб скорости (IMXO), идеи работы хорошие, их и использую. Например, UART на мой взгляд наворочен сильно, своя версия с кольцевыми буферами быстрее работает.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 29 2007, 10:49
Сообщение #24


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



В добавлении к предыдущему:
Для компиляции из нескольких мест можно использовать VPATH, надо только аккуратно обойтись с путями для объектных файлов (команда notdir).
В приложении описания GNU make на русском с примерами, надеюсь поможет подправить Вам свой makefile.
Прикрепленные файлы
Прикрепленный файл  gnumake.zip ( 178 килобайт ) Кол-во скачиваний: 254
 


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 29 2007, 10:54
Сообщение #25


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Большое спасибо.
Как не крути, а на первых парах лучше разобраться как роботает чужой код, чем его править.
Пока все не заработает как нужно, переделкой либа я не буду заниматься. А там глядиш и не надо будет.
Go to the top of the page
 
+Quote Post
Maddy
сообщение Jun 29 2007, 15:52
Сообщение #26


Участник
*

Группа: Validating
Сообщений: 56
Регистрация: 15-10-06
Пользователь №: 21 335



Если еще актуально

Код
AVRLIB=C:\Programming\AvrLib

AVRLIBMODULES = buffer.c uart.c rprintf.c timer.c vt100.c debug.c cmdline.c extint.c
VPATH = .:$(AVRLIB)


SRC = main.c  intelIf2.c $(AVRLIBMODULES)


Кусок рабочего makefile wink.gif

Цитата(bullit @ Jun 26 2007, 12:28) *
Гы. С ангельским не очень дружу.
Пойду смотреть дальше. Просто думал кто подскажет. Придется самому, нет времени. програмирую в свободное время, которого нет.

opennet
и Программа управления компиляцией GNU make 3.73- Старовато , но для начала сойдет wink.gif
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 29 2007, 17:09
Сообщение #27


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Спасибо большое.
Всё это актуально. + тому кто сюда придет с таким же вопросом

А как avrlib использовать в проектах AVRStudio.
Если там она запахает, буду студию использовать.
Бегаю между PN из WinAVR и Студией.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jun 29 2007, 20:27
Сообщение #28


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(bullit @ Jun 29 2007, 21:09) *
А как avrlib использовать в проектах AVRStudio.
Если там она запахает, буду студию использовать.
Бегаю между PN из WinAVR и Студией.

Я использую в качестве IDE Eclipse. Мне нравится больше, чем PN и редактор от AVRStudio. Где-то на форуме вопрос о IDE уже поднимался.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
bullit
сообщение Jun 29 2007, 20:29
Сообщение #29


пуля
****

Группа: Свой
Сообщений: 674
Регистрация: 10-05-06
Из: Уфа
Пользователь №: 16 959



Поисчу обезательно.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th June 2025 - 07:47
Рейтинг@Mail.ru


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