Конфликт библиотек

MDV
Offline
Зарегистрирован: 08.08.2013
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
Ошибка компиляции.
Коллеги доброго дня вам.
Сегодня столкнулся с проблемой, включил в программу новую библиотеку и получил ошибку.
кто подскажет в чем засада?
  

 

maksim
Offline
Зарегистрирован: 12.02.2012

Попробуйте версию IDE 1.0.х.

MDV
Offline
Зарегистрирован: 08.08.2013

Версию менял эффект тот же.
Для удобства компилирует, для меня ругается.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Попытка использовать свой обработчик прерывания __vector_25, но он уже реализован в HardwareSerial0.cpp в строке 48. Надеюсь, не будет вопроса какой обработчик, я имя файла и номер строки указал, посмотреть несложно.

 

Arhat109
Offline
Зарегистрирован: 26.05.2015

Эту часть библиотеки ещё не смотрел, но сильно подозреваю, что HardwareSerial использует USART0 для своей работы. Ваша новая библиотека похоже пытается сесть тоже на него. В вашей Меге - их (usart-ов) аж 4 штуки. Поменяйте в одной библиотек через какой usart работать, думаю ошибка пропадет.

maksim
Offline
Зарегистрирован: 12.02.2012

Класс Serial использует данный обработчик прерывания, но если ТС пытается подключить к тому же УАРТу, в который выводит какие то данные, еще и GSM модуль, то это уже не конфликт библиотек, а конфликт здравого смысла. Но так как код нам не показывают, остается только гадать.

MDV
Offline
Зарегистрирован: 08.08.2013

Действительно, библиотеки стучаться в один уарт. Дело в том, что в одной библиотеке реализована работа по TCP в другой по СМС, а в проекте нужна работа и с тем и с другим. Как можно их объединить?

Arhat109
Offline
Зарегистрирован: 26.05.2015

Изменить назначение USART, скорее всего проще в вашей "новой" библиотеке GSM. Пока что, всё что отсмотрел из Wiring - крайне топорно писано.

Смотрите описания к обоим библиотекам и КАК (скорее всего какой-нибудь специальный #define) указать библиотеке какой конкретно usart использовать. Если в описаниях нет, то открывайте исходные коды и ищите настройку регистров USART . Не думаю, что там есть "сложности".

maksim
Offline
Зарегистрирован: 12.02.2012

 

Arhat109 пишет:

Изменить назначение USART, скорее всего проще в вашей "новой" библиотеке GSM. 

Смотрите описания к обоим библиотекам и КАК (скорее всего какой-нибудь специальный #define) указать библиотеке какой конкретно usart использовать. Если в описаниях нет, то открывайте исходные коды и ищите настройку регистров USART . Не думаю, что там есть "сложности".

Смешно читать. Вот интересно, вы о чем думаете, когда такое советуете или вы не думаете  и лишь бы просто что нибудь посоветовать? По вашему задача состоит в том, что бы решить конфликт библиотек? А будут после эти библиотеки работать вместе или нет, это уже не важно. А что дальше посоветуете, поставить на другой уарт еще один GSM модуль?

Arhat109 пишет:

Пока что, всё что отсмотрел из Wiring - крайне топорно писано.

Поверьте, гараздо топорнее написаны ваши посты.

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

maksim, +100500

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Великий програмист нас посетил снова :) Видимо на других сайтах его забанили. Выучил слово USART, гыыы хотя USARTом оно станет только после танцев с бубнами.
Но как он порет чушь... гыыв

MDV
Offline
Зарегистрирован: 08.08.2013

Комрады, не будем делать из мухи слона.
Естественно разносить работу на разные порты бессмысленно, так как управлять нужно одним устройством с одним портом. Буду думать как объединить библиотеки. Если есть мысли буду рад их узреть.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Чего тут узревать то? У тебя 4 уарт порта, пользуйся ими. Все библиотеки при инициализации просят указать на каком порту висит устройство.
2 устройства на одном уарт не будут работать даже в пьяном угаре с 5 бубнами.
это не конфликт библиотек, это отсутствие понимания в голове.
да и какой с вас колега. Если вы дальше копипаста ничего не умеете.

maksim
Offline
Зарегистрирован: 12.02.2012

Да не, устройство одно, библиотеки две.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

maksim пишет:

Да не, устройство одно, библиотеки две.


О.о зачем?

maksim
Offline
Зарегистрирован: 12.02.2012

Ну так пишет же:

MDV пишет:
Дело в том, что в одной библиотеке реализована работа по TCP в другой по СМС, а в проекте нужна работа и с тем и с другим.

Одна библиотека скорее всего юзает дуиновский класс Serial, а вторая работает с регистрами/обработчиками "напрямую".

А еще скорее всего в одной из библиотек есть и SMS и TCP, хотя кто его знает что там за библиотеки...

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

maksim пишет:

А еще скорее всего в одной из библиотек есть и SMS и TCP.


Гыыыы. Скорее всего так и есть. Либо существует 3 библиотека которая включает и то и другое и блекджек с девушками.

Бум гадать что и как он там использует...
Главное же usart. Гыыы

Arhat109
Offline
Зарегистрирован: 26.05.2015

То есть пост №4 таки оказался верен... ГЫ... не, пишите исчо, а я вам буду подкидывать "топорные куски кода". :)

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Arhat109 пишет:

То есть пост №4 таки оказался верен... ГЫ... не, пишите исчо, а я вам буду подкидывать "топорные куски кода". :)


Тоесть продолжаешь тупить?
Хочу посмотреть как ты подключишь один gsm модуль к 2 разным портам и заставишь его работать через эти 2 порта с 2 разными библиотеками...

Arhat109
Offline
Зарегистрирован: 26.05.2015

Не, ТАК тупить, как тут вам удается ... ни смагу-у-у... :)

Arhat109
Offline
Зарегистрирован: 26.05.2015

Кстати, "шарик, ты - балбес". Даже дважды. :)

1. В посту номер четыре, указана тока причина проблемы ... заместо гениальных догадок поменять версию среды ... можно ишо комп резетом попробовать подпихнуть ... авось сведет библиотеки. А вовсе не подключать скока-то там модулей к чему-то там. Количество модулей и оконечная цель ТС-ом озвучена позжее поста №4. "чукча не читатель" аднака. ;)

2. В соседней теме, вы зазря обскорбили новичка, пришедшего за помощью. И это ПОСЛЕ того как в моей теме высказались

"Ну судя по тому что ТС не имеет ... , а везде с одним емайлом ходит." .. обозвать человека клоном ... моск включать не пгобовали? :)

впрочем, судя по вашему обильному и бесполезному творчеству и, учитывая близость к модераторам ... вывод о форуме в целом у меня - таки верный.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Неужели покинете нас в третий раз?

maksim
Offline
Зарегистрирован: 12.02.2012

Arhat109 пишет:

заместо гениальных догадок поменять версию среды

У вас еще опыта работы с версиями IDE и библиотеками маловато, что бы решать, что гениально, а что нет.

Arhat109
Offline
Зарегистрирован: 26.05.2015

Не-а, ни даждетись.. у вас тут весело. ;)

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Arhat109 пишет:

Не-а, ни даждетись.. у вас тут весело. ;)


Ну тогда заведите себе отдельно тему или старую продолжайте. И там и пишите про криворукость разработчиков, не совершенство мира и тупых нас. .
Я даже туда буду иногда заглядывать и головой кивать.

MDV
Offline
Зарегистрирован: 08.08.2013

Пухлявый действительно какой я вам коллега, вы крутой программер и мне до вас далеко, я даже так хайть других не умею. Но если посмотреть ваши посты, кроме как поливать других ничего толкового вы не предлагаете.
Для всех остальных нормальных людей готовых помочь.
Есть библиотека (работает на низком уровне) которая замечательно передает данные на сервер, но коряво работает с sms. На амперке нашел другую библиотеку который хорошо работает с sms. В моем проекте нужна и передача данных и работа с sms. Отсюда и желание подружить две библиотеки.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Гы
давайте, на пальцах попробую обьяснить.
То что вы делаете, это попытка установить 2 драйвера к одному устройству...
для этого модуля столько библиотек, что только ленивый не пробовал что то писать.
100500% что и нужная вам существует. Гитхабе вагон вариантов.
как там вообще может что то плохо работать. Он управляется обычными АТ командами.

MDV
Offline
Зарегистрирован: 08.08.2013

Естественно модем управляется АТ командами, послать их в модем труда не составляет, но вот правильно обработать ответ увы проблема.

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

MDV пишет:

Естественно модем управляется АТ командами, послать их в модем труда не составляет, но вот правильно обработать ответ увы проблема.

Тоесть если к вам придет человек и скажет слушай я тут купил мышку, и установил ей сразу 2 драйвера и почему то они глючат и не хотят работать.. Что вы о нем подумаете?

насколько я вижу в хрустальном шаре у вас SIM900... ибо для ардуино особо нет выбора... щас появился еще SIM800. на этом форуме пару тем  об этом точно... и обрабатывать там какбы особо нечего.

Так же хорошо понимать что это поделки для энтузиастов... причем очень дешевые поделки.. и не факт что одновременно получиться инициализировать все плюшки...  вполне может быть что либо GRPS, либо SMS.... а если и то и другое сразу, то что то может глючить... 

и если вас вдруг забанили гугл, то  есть вполне себе нормальное сообщество по этим шильдам

http://www.gsmlib.org/index.html