Фантастика, программа, залитая через VisualStudio 2019 не принимает данные по последовательному порту
- Войдите на сайт для отправки комментариев
Пнд, 20/01/2020 - 18:06
Кто объяснит такое странное явление. Собирал на днях приборную панель под Eurotrack Simulator 2.
Я вообще все пишу в VisualStudio 2019. Так вот, впервые программа, залитая через VisualStudio не работает, т.е. ардуино не получает вообще никаких данных из игры по последовательному порту!
А если ее залить через Arduino IDE, то все нормально!
Пришлось писать все в VS, а заливать через IDE, с включенной опцией внешнего редактора.
Все проверил несколько раз, не понимаю какая разница!
Что удивительно у ардуино мигает светодиод TX в обоих случаях.
Кстати, на китайских Mega 2560 перепутана маркировка TX/RT на портах с номером больше 0.
Кстати, на китайских Mega 2560 перепутана маркировка TX/RT на портах с номером больше 0.
Не на всех, а только на одном, емнип - на Serial1, т.е. RX1 и TX1 перепутаны местами по шелкографии. Или RX2 и TX2 - точно не помню. Но точно - только по шелкографии и только на одном из дополнительных UART.
Да какая разница! Не об этом же тема
Все проверил несколько раз, не понимаю какая разница! Что удивительно у ардуино мигает светодиод TX в обоих случаях.
Какая ардуина?
Опции контроллера (частота ядра и фьюзы) - одинаковые в обоих случаях?
Да какая разница! Не об этом же тема
Разница в том, что вы неправы. Хотя да - тема не об этом.
Ардуино - одна и та же (и она мега). Разница только в средстве компиляции и загрузки. Хотя загрузчик точно один и тот же - avrdude, очевидно.
Ардуино - одна и та же (и она мега). Разница только в средстве компиляции и загрузки. Хотя загрузчик точно один и тот же - avrdude, очевидно.
Ну так просмотрите и сравните с какими параметрами вызывается avrdude из Ардуино IDE и VS
Ардуино - одна и та же (и она мега). Разница только в средстве компиляции и загрузки. Хотя загрузчик точно один и тот же - avrdude, очевидно.
Ты в студии порт-то настроил правильно?
Ты в студии порт-то настроил правильно?
правильно, правильно, а то куда бы вообще прошивка загрузилась и почему плата перестала отрабатывать телеметрию, пока ее не обновишь снова через ардуино ide :)
avrdude тут вообще ни при чем. одинаковые там параметры.
а сборка, конечно, там разная: где скетч ардуино, с простой структурой каталога, а где решение vs, с кучей вложенных проектов ...
Разница в том, что вы неправы.
В чем, пардон, именно? Что я обобщил? Ну, конечно же, китайских поделок полно разных, и я всех китайцев не желал обидеть. Ок, но если Вам угодно: на моей китайской меге - вот такой косяк в шелкографии. :D)))))))
avrdude тут вообще ни при чем. одинаковые там параметры.
простите, господин с 100500 проектами - это вы так, чтобы поболтать говооите - или реально убедились в том, что параметры avrdude одинаковы?
Вы можете говорить что угодно о своем опыте - но сейчас вы задаете типичный новичковый вопрос - и потому и отношение к вам, как к новичку, за которым нужно все проверять.
Профи. 5 лет программирующий в VS - такого вопроса в форуме бы не задал
Разница в том, что вы неправы.
В чем, пардон, именно? Что я обобщил?
Вы написали, что на ВСЕХ UART, кроме нулевого, перепутана шелкография. Это не так - только на одном из них. Собственно, всё. К теме топика это отношения не имеет, но вселенская справедливость требует сатисфакции :))
Если же по теме: к сожалению, ни разу не встречал такого поведения студии. Что можно сходу предложить - посмотреть, не изменилось ли там чего в тулчейне, чудес, как известно, не бывает, и где-то таки зарыта собака. Может, выложить сюда лог компиляции/загрузки, как вариант?
Вы написали, что на ВСЕХ UART, кроме нулевого, перепутана шелкография. Это не так - только на одном из них. Собственно, всё. К теме топика это отношения не имеет, но вселенская справедливость требует сатисфакции :))
Знаете, а Вы ведь правы... Зрение подвело. Просто ранее я использовал другие платы, жаль стало потеряного времени, решил поделиться.
Если же по теме: к сожалению, ни разу не встречал такого поведения студии. Что можно сходу предложить - посмотреть, не изменилось ли там чего в тулчейне, чудес, как известно, не бывает, и где-то таки зарыта собака. Может, выложить сюда лог компиляции/загрузки, как вариант?
Эээ, пардон. А где там тулчейн?... Я не в AtmelStudio, а в Microsoft Visual Studio 2019 с vMicro. Все по умолчанию, и в других проектах, у меня ничего подобного не наблюдается же. gcc toolchain у всех же проектов должен быть априори одинаковый.
Логи соберу...
Ты в студии порт-то настроил правильно?
правильно, правильно, а то куда бы вообще прошивка загрузилась и почему плата перестала отрабатывать телеметрию, пока ее не обновишь снова через ардуино ide :)
Я тебе про эти параметры, чувак
Я тебе про эти параметры, чувак
Чувак, я ж про монитор порта ничего не спрашивал. Плата кушает данные телеметрии от ПК. Все. Прошьешь через Arduino - плата принимает от игры телеметрию, стрелочки крутятся. Прошьешь через VS - тишина. Ищу разницу, понять не могу, прям обидно.
Ну, вопросов больше не имею.
Cкорее всего косяк в программе типа утечки памяти, buffer overrun или что-то в этом роде. При одной сборке не приводит сразу к фатальным последствиям, а при другой, из-за отличающегося порядка размещения данных в памяти - приводит.
Cкорее всего косяк в программе типа утечки памяти, buffer overrun или что-то в этом роде. При одной сборке не приводит сразу к фатальным последствиям, а при другой, из-за отличающегося порядка размещения данных в памяти - приводит.
Плагин Vmicro собирает бинарник через Ардуино - и при одинаковых настройках компиляции и сборки не должно быть разницы.
Скорее все-таки в Студии и АрдуиноИДЕ эти настройки разные - но похоже ТС даже не в курсе, что это, чтоб проверить...
Cкорее всего косяк в программе типа утечки памяти, buffer overrun или что-то в этом роде. При одной сборке не приводит сразу к фатальным последствиям, а при другой, из-за отличающегося порядка размещения данных в памяти - приводит.
не-не. программа не виснет, не перегружается, отдает дебаг-информацию по другому порту, просто не принимает.
и там нет ничего такого, что могло бы приводить к переполнению или в таком роде.
ладно, сначала логи сборки и заливки.
Ну дак локализуй проблему. Сначала напиши маленькую программу, которая только принимает/аддаёт по сериалу какую-нить осмысленную хню. Залей через IDE и через VS, потести. Мне штоли тебя учить дебаггингу с твоими 100500 праэктов...
Ну, спасибо ))
Ok, ну, раз старожилы высказались, а воркэраунд, в принципе и был, да и проект уже сдан, то, пожалуй, фиг с ним, буду жить с тем, что есть. ))
Эээ, пардон. А где там тулчейн?... Я не в AtmelStudio, а в Microsoft Visual Studio 2019 с vMicro. Все по умолчанию, и в других проектах, у меня ничего подобного не наблюдается же. gcc toolchain у всех же проектов должен быть априори одинаковый.
Логи соберу...
Под тулчейном имеется в виду вся цепочка вызовов, она есть в любом случае: компилятор - линковщик - загрузчик, промежуточные звенья. VisualMicro же не с воздуха берёт бинарник - он gcc дёргает, как минимум. А вот версии gcc, также как и ключи его вызова - могут отличаться.
Короче! Это всё лирика. Раз проблема есть - значит, есть её источник. Порой - бывает очень сложно понять, в чём дело. Например, я бы сходу предложил в Arduino IDE включить все сообщения компиляции, и посмотреть - чего там шарашит в вывод. Возможно, из-за разных опций оптимизации и наличия одной мааахонькой ошибки в прошивке - и творится сия хрень. При этом этот баг может быть "плавающим", т.е. в одном случае - не проявляться, а в другом - больно бить по морде топором.
Есть ещё скотское дело - сравнивать бинарники, на предмет отличий. Если уж очень хочется докопаться - это самый последний бастион. Но раз оно работает, как я понял - то можно и забить :)