Конфликт библиотек
- Войдите на сайт для отправки комментариев
Ср, 10/06/2015 - 22:57
Arduino: 1.6.4 (Windows 7), Плата"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)" C:\Users\AACE~1\AppData\Local\Temp\build5164620195255099023.tmp/core.a(HardwareSerial0.cpp.o): In function `__vector_25': C:\Arduino\hardware\arduino\avr\cores\arduino/HardwareSerial0.cpp:48: multiple definition of `__vector_25' GSM\GSM.cpp.o:C:\Arduino\libraries\GSM/GSM.cpp:177: first defined here c:/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions collect2.exe: error: ld returned 1 exit status Ошибка компиляции. Коллеги доброго дня вам. Сегодня столкнулся с проблемой, включил в программу новую библиотеку и получил ошибку. кто подскажет в чем засада?
Попробуйте версию IDE 1.0.х.
Версию менял эффект тот же.
Для удобства компилирует, для меня ругается.
Попытка использовать свой обработчик прерывания __vector_25, но он уже реализован в HardwareSerial0.cpp в строке 48. Надеюсь, не будет вопроса какой обработчик, я имя файла и номер строки указал, посмотреть несложно.
Эту часть библиотеки ещё не смотрел, но сильно подозреваю, что HardwareSerial использует USART0 для своей работы. Ваша новая библиотека похоже пытается сесть тоже на него. В вашей Меге - их (usart-ов) аж 4 штуки. Поменяйте в одной библиотек через какой usart работать, думаю ошибка пропадет.
Класс Serial использует данный обработчик прерывания, но если ТС пытается подключить к тому же УАРТу, в который выводит какие то данные, еще и GSM модуль, то это уже не конфликт библиотек, а конфликт здравого смысла. Но так как код нам не показывают, остается только гадать.
Действительно, библиотеки стучаться в один уарт. Дело в том, что в одной библиотеке реализована работа по TCP в другой по СМС, а в проекте нужна работа и с тем и с другим. Как можно их объединить?
Изменить назначение USART, скорее всего проще в вашей "новой" библиотеке GSM. Пока что, всё что отсмотрел из Wiring - крайне топорно писано.
Смотрите описания к обоим библиотекам и КАК (скорее всего какой-нибудь специальный #define) указать библиотеке какой конкретно usart использовать. Если в описаниях нет, то открывайте исходные коды и ищите настройку регистров USART . Не думаю, что там есть "сложности".
Изменить назначение USART, скорее всего проще в вашей "новой" библиотеке GSM.
Смотрите описания к обоим библиотекам и КАК (скорее всего какой-нибудь специальный #define) указать библиотеке какой конкретно usart использовать. Если в описаниях нет, то открывайте исходные коды и ищите настройку регистров USART . Не думаю, что там есть "сложности".
Смешно читать. Вот интересно, вы о чем думаете, когда такое советуете или вы не думаете и лишь бы просто что нибудь посоветовать? По вашему задача состоит в том, что бы решить конфликт библиотек? А будут после эти библиотеки работать вместе или нет, это уже не важно. А что дальше посоветуете, поставить на другой уарт еще один GSM модуль?
Пока что, всё что отсмотрел из Wiring - крайне топорно писано.
Поверьте, гараздо топорнее написаны ваши посты.
maksim, +100500
Великий програмист нас посетил снова :) Видимо на других сайтах его забанили. Выучил слово USART, гыыы хотя USARTом оно станет только после танцев с бубнами.
Но как он порет чушь... гыыв
Комрады, не будем делать из мухи слона.
Естественно разносить работу на разные порты бессмысленно, так как управлять нужно одним устройством с одним портом. Буду думать как объединить библиотеки. Если есть мысли буду рад их узреть.
Чего тут узревать то? У тебя 4 уарт порта, пользуйся ими. Все библиотеки при инициализации просят указать на каком порту висит устройство.
2 устройства на одном уарт не будут работать даже в пьяном угаре с 5 бубнами.
это не конфликт библиотек, это отсутствие понимания в голове.
да и какой с вас колега. Если вы дальше копипаста ничего не умеете.
Да не, устройство одно, библиотеки две.
Да не, устройство одно, библиотеки две.
О.о зачем?
Ну так пишет же:
Одна библиотека скорее всего юзает дуиновский класс Serial, а вторая работает с регистрами/обработчиками "напрямую".
А еще скорее всего в одной из библиотек есть и SMS и TCP, хотя кто его знает что там за библиотеки...
А еще скорее всего в одной из библиотек есть и SMS и TCP.
Гыыыы. Скорее всего так и есть. Либо существует 3 библиотека которая включает и то и другое и блекджек с девушками.
Бум гадать что и как он там использует...
Главное же usart. Гыыы
То есть пост №4 таки оказался верен... ГЫ... не, пишите исчо, а я вам буду подкидывать "топорные куски кода". :)
То есть пост №4 таки оказался верен... ГЫ... не, пишите исчо, а я вам буду подкидывать "топорные куски кода". :)
Тоесть продолжаешь тупить?
Хочу посмотреть как ты подключишь один gsm модуль к 2 разным портам и заставишь его работать через эти 2 порта с 2 разными библиотеками...
Не, ТАК тупить, как тут вам удается ... ни смагу-у-у... :)
Кстати, "шарик, ты - балбес". Даже дважды. :)
1. В посту номер четыре, указана тока причина проблемы ... заместо гениальных догадок поменять версию среды ... можно ишо комп резетом попробовать подпихнуть ... авось сведет библиотеки. А вовсе не подключать скока-то там модулей к чему-то там. Количество модулей и оконечная цель ТС-ом озвучена позжее поста №4. "чукча не читатель" аднака. ;)
2. В соседней теме, вы зазря обскорбили новичка, пришедшего за помощью. И это ПОСЛЕ того как в моей теме высказались
"Ну судя по тому что ТС не имеет ... , а везде с одним емайлом ходит." .. обозвать человека клоном ... моск включать не пгобовали? :)
впрочем, судя по вашему обильному и бесполезному творчеству и, учитывая близость к модераторам ... вывод о форуме в целом у меня - таки верный.
Неужели покинете нас в третий раз?
заместо гениальных догадок поменять версию среды
У вас еще опыта работы с версиями IDE и библиотеками маловато, что бы решать, что гениально, а что нет.
Не-а, ни даждетись.. у вас тут весело. ;)
Не-а, ни даждетись.. у вас тут весело. ;)
Ну тогда заведите себе отдельно тему или старую продолжайте. И там и пишите про криворукость разработчиков, не совершенство мира и тупых нас. .
Я даже туда буду иногда заглядывать и головой кивать.
Пухлявый действительно какой я вам коллега, вы крутой программер и мне до вас далеко, я даже так хайть других не умею. Но если посмотреть ваши посты, кроме как поливать других ничего толкового вы не предлагаете.
Для всех остальных нормальных людей готовых помочь.
Есть библиотека (работает на низком уровне) которая замечательно передает данные на сервер, но коряво работает с sms. На амперке нашел другую библиотеку который хорошо работает с sms. В моем проекте нужна и передача данных и работа с sms. Отсюда и желание подружить две библиотеки.
Гы
давайте, на пальцах попробую обьяснить.
То что вы делаете, это попытка установить 2 драйвера к одному устройству...
для этого модуля столько библиотек, что только ленивый не пробовал что то писать.
100500% что и нужная вам существует. Гитхабе вагон вариантов.
как там вообще может что то плохо работать. Он управляется обычными АТ командами.
Естественно модем управляется АТ командами, послать их в модем труда не составляет, но вот правильно обработать ответ увы проблема.
Естественно модем управляется АТ командами, послать их в модем труда не составляет, но вот правильно обработать ответ увы проблема.
Тоесть если к вам придет человек и скажет слушай я тут купил мышку, и установил ей сразу 2 драйвера и почему то они глючат и не хотят работать.. Что вы о нем подумаете?
насколько я вижу в хрустальном шаре у вас SIM900... ибо для ардуино особо нет выбора... щас появился еще SIM800. на этом форуме пару тем об этом точно... и обрабатывать там какбы особо нечего.
Так же хорошо понимать что это поделки для энтузиастов... причем очень дешевые поделки.. и не факт что одновременно получиться инициализировать все плюшки... вполне может быть что либо GRPS, либо SMS.... а если и то и другое сразу, то что то может глючить...
и если вас вдруг забанили гугл, то есть вполне себе нормальное сообщество по этим шильдам
http://www.gsmlib.org/index.html