После внесения некоторых изменений в скетч, его загрузка аппаратно убивает USB COM порт соединения с компом. Т.е модуль Pro Micro выкидывается.
Нечто подобное бывало, но лечилось после перезагрузки операционки и нового открытия IDE.
В настоящем скетче и это не помогает.
Какие функции могут приводить к такому? На что обратить внимание? Код сложно выложить, но скажу есть:
PROGMEM const int masL[10][16]
#include "MemoryExplorer.h"
#include <avr/pgmspace.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
размер скетча 80%, переменных 60%
Похоже, что баг появляется после объявления дополнительных массивов, или их размеров.
Pro MICRO. Влияние скетча на связь с компом
- Реклама
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1916
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Pro MICRO. Влияние скетча на связь с компом
Правда, есть гадатели и экстрасенсы ... но хоть поделитесь хоть фрагментом кода, который добавляете "до" и "след" возникновения проблемы.
Догадка: stack overflow: переполнение стека с добавлением большого массива.
Вариант: оптимизируйте, уменьшите размер масива, исключитье другую функцию (например, ненужную или временно для теста)
или ... переключитесь на другой МК. (частично пользуюсь переводчиком)
Догадка: stack overflow: переполнение стека с добавлением большого массива.
Вариант: оптимизируйте, уменьшите размер масива, исключитье другую функцию (например, ненужную или временно для теста)
или ... переключитесь на другой МК. (частично пользуюсь переводчиком)
Re: Pro MICRO. Влияние скетча на связь с компом
да, создаю еще один такой же массив.
PROGMEM const int masL[10][16]... был один, стало два с разными именами...
По стеку почитаю, спасибо. Т.е. вы подтверждаете что переполнение может необратимо запарывать USB порт?
Эксперименты...они дорого обходятся(((( уже 3 шт арудинок в топку
Происходит это так: "пишет заливка успешно". Но программа виснет, скажем на индикаторе старая инфа. Попытка новой прощивки - уже "порт не обнаружен".
PROGMEM const int masL[10][16]... был один, стало два с разными именами...
По стеку почитаю, спасибо. Т.е. вы подтверждаете что переполнение может необратимо запарывать USB порт?
Эксперименты...они дорого обходятся(((( уже 3 шт арудинок в топку
Происходит это так: "пишет заливка успешно". Но программа виснет, скажем на индикаторе старая инфа. Попытка новой прощивки - уже "порт не обнаружен".
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1916
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Pro MICRO. Влияние скетча на связь с компом
Выясните (для себя), что происходит с "затронутыми" модулями. Оттуда будет направление для решения (или защита от воздействия).
Очень вероятно, что только "слетел" загрузчик. Ничего страшного нет, восстанавливается программатором.
Очень вероятно, что только "слетел" загрузчик. Ничего страшного нет, восстанавливается программатором.
Re: Pro MICRO. Влияние скетча на связь с компом
Спасибо за помощь. Программатором восстановил загрузчик (повезло, что выпаивать не надо).
Включил подробный вывод при компиляции. Никаких отличий работающего (предыдущего) скетча, от последнего ("убивающего") не наблюдаю.
Соотношения расхода ресурсов 84/53 предыдущий, и 86/58 - последний по сообщению компилятора.
Может надо читать сообщения именно при загрузке, чтоб надтолкнуться на причину?
Добавлено after 13 minutes 51 second:
[uquote="veso74",url="/forum/viewtopic.php?p=4411825#p4411825"]Выясните (для себя), что происходит с "затронутыми" модулями.[/uquote]
Я понимаю, что ответ сложно дать. Для меня, как НЕ профи, вообще это шок, что код может свалить "железо".
Поэтому признателен за любые намеки... Что такое "модуль" - это ардуино-плата или фрагмент кода (функция, модуль).??
Массивы сделал по [12][2], а было 15/2. Полет нормальный. А вот функцию размещения PROGMEM const не изучал... просто скачал кусок. Она важна?
Включил подробный вывод при компиляции. Никаких отличий работающего (предыдущего) скетча, от последнего ("убивающего") не наблюдаю.
Соотношения расхода ресурсов 84/53 предыдущий, и 86/58 - последний по сообщению компилятора.
Может надо читать сообщения именно при загрузке, чтоб надтолкнуться на причину?
Добавлено after 13 minutes 51 second:
[uquote="veso74",url="/forum/viewtopic.php?p=4411825#p4411825"]Выясните (для себя), что происходит с "затронутыми" модулями.[/uquote]
Я понимаю, что ответ сложно дать. Для меня, как НЕ профи, вообще это шок, что код может свалить "железо".
Поэтому признателен за любые намеки... Что такое "модуль" - это ардуино-плата или фрагмент кода (функция, модуль).??
Массивы сделал по [12][2], а было 15/2. Полет нормальный. А вот функцию размещения PROGMEM const не изучал... просто скачал кусок. Она важна?
- Реклама
Re: Pro MICRO. Влияние скетча на связь с компом
На нанке/про-мини частенько имеет место ошибка в случае, если программа в адуринке использует для своих нужд СОМ порт.
В таком случае, перед загрузкой нового содержимого из IDE нужно в обязательном порядке предварительно включать
"инструменты -> монитор порта" (для корректного перехода в режим программирования адуринки).
Ну и проверка на размер кода, размер используемого ОЗУ после компиляции и прочие возможные ошибки/предупреждения (обязательно включить опцию IDE
"файл -> настройки -> сообщения компилятора -> ВСЕ")

И ... НЕ ЗАБЫВАЕМ про качественный контакт в разъёмах кабеля USB!

В таком случае, перед загрузкой нового содержимого из IDE нужно в обязательном порядке предварительно включать
"инструменты -> монитор порта" (для корректного перехода в режим программирования адуринки).
Ну и проверка на размер кода, размер используемого ОЗУ после компиляции и прочие возможные ошибки/предупреждения (обязательно включить опцию IDE
"файл -> настройки -> сообщения компилятора -> ВСЕ")
И ... НЕ ЗАБЫВАЕМ про качественный контакт в разъёмах кабеля USB!


