Ламерский вопрос: нужно ли стирать старый скетч?
- Войдите на сайт для отправки комментариев
Пнд, 09/01/2017 - 15:32
Привет честной компании от очередного чайника!
Вопрос, собственно, вот в чем: я собрал схему, написал для нее скетч, загрузил - все нормально. Отключаю USB-кабель, собираю новую схему, пишу скетч, подсоединяю USB... и сразу начинает работать предыдущая программа.
Я, конечно, чайник, но кажется мне, что это неправильно. Может существуют какие-то азы, о которых все знают, а я прошляпил?
И вдогонку еще один вопрос из этой же серии: просто выдергивать шнур USB при работающем скетче - это правильно?
Стирать и еще раз стирать! С мылом! Шутка :)
При каждой прошивке старый стирается, поскольку пишется поверх существующего. Это простой ответ на простой вопрос без философских мыслей и т.п.
Выдергивать шнур при работающей программе можно, только если с него подается питание, то всё остановится. Насколько это плохо, судить тебе, потому что можно ардуиной запалить атомную бомбу, тогда кто знает, хорошо ли это, выдергивать шнур, может и взорваться.
А если без философии, то да, можно.
Старый скетч лучше стирать загружая на его место пустой скетч
setup(){} loop(){}
(хотя, сам я грешен).
Представьте себе, что Вы в скетче ставите некий порт на вывод и пихаете в него HIHG, а в новой схеме этот порт заведён на землю напрямую. Если Ваш старый скетч начнёт работать с новой схемой, порт сгорит задолго до того, как Вы поймёте что там задымилось и выдерните питание.
просто выдергивать шнур USB при работающем скетче - это правильно?
Если он Вам не нужен, то почти нормально. Но именно "почти". Всё зависит от множества нюансов. Например, от чего питается Ваша ардуина в данный момент. Короче, при выдёргивании, при некоторых условиях, может глюкнуть.
прошей в мк
Уж тогда Blink проще всего прошить, сразу видно, что моргает, значит
стерлосьпрошилось.Старый скетч лучше стирать загружая на его место пустой скетч
т.е. отключать старое, прошивать, подключать новое - это не?
сначала стирать, затем разбирать, подключать новое, прошивать...
*может, в консерватории что-то подправить?
Уж тогда Blink проще всего прошить, сразу видно, что моргает, значит
стерлосьпрошилось.блинком мигать первым пином, что бы наверняка.
Ага, спасибо за ответы.
Получается, что правилом хорошего тона являлась бы загрузка пустого скетча перед тем как отсоединить USB-кабель от платы. Все равно ведь в следующий раз мы его подключим именно для загрузки нового скетча. Ну, если только мы не хотим испытать автономную работу схемы от другого источника питания (не USB).
И если собираемся строить новую схему, то на всякий случай первым делом подключаем пустую плату к компьютеру, записываем пустой скетч, отключаемся и только после этого собираем новую схему.
Получается, что правилом хорошего тона являлась бы загрузка пустого скетча перед тем как отсоединить USB-кабель от платы. Все равно ведь в следующий раз мы его подключим именно для загрузки нового скетча. Ну, если только мы не хотим испытать автономную работу схемы от другого источника питания (не USB).
И если собираемся строить новую схему, то на всякий случай первым делом подключаем пустую плату к компьютеру, записываем пустой скетч, отключаемся и только после этого собираем новую схему.
... объясни ..у, как нужно - ..й стеклянный согнёт.
Кстати, вопрос не совсем уж и ламерский. Года 2 назад тоже им задавался .. ибо, если в машинку залита прога, то она как-то юзает выходы и если надо пересобрать в другое устройство (например вариант детского конструктора а-ля Лего как у нас), то возникает дилеема что делать поперед: или перезалить прогу и потом разобрать старое устройство или собрать новое и перезалить новую прогу или разобрать, перезалить, собрать .. особливо занятно, когда выходы 0,1 в железяке заняты не так как предполагается при перезаливках..
Для себя уже давно решил, что 0,1 выходы не используются и вовсе, а для Нано так и вообще сделал расширительные шилды, у которых этих выводов и нет вовсе, от соблазну подальше (играется то ребенок жеж!). По завершению использования конструкции и её программы, железка разбирается в обязательном порядке (сложи все детальки конструктора на места) и в неё заливается Blink.ino. Сборка нового - как обычно: достал, собрал и залил что надо.
А в чём особенность 0 и 1 выхода?
0,1 выводы у ардуин это UART0 (если их больше 1шт) и он задействован как правило аппаратно для связи с компом по USB порту. Если они заняты как-то ещё в скетче, то потом перепрошить иной скетч может оказаться проблематично. Особенно если ещё занять SPI и JTAG чем-нибудь.. :)
Если они заняты как-то ещё в скетче, то потом перепрошить иной скетч может оказаться проблематично. Особенно если ещё занять SPI и JTAG чем-нибудь.. :)
бррр...
что в каком скетче занято, если при прошивке по UART работает не скетч, а загрузчик?
при прошивке по SPI пины аппаратно конфигурируются - ни о каком запуске микрокода речи быть не может.
Может Вы и правы .. спорить не буду. Но, по мне так лучше разобрать железку и прошить отдельно Blink.ino, чем потом смотреть "как кузяво оно дымит". :)
Может Вы и правы .. спорить не буду. Но, по мне так лучше разобрать железку и прошить отдельно Blink.ino, чем потом смотреть "как кузяво оно дымит". :)
почему блинк, а не полностью стереть флеш?
почему не отключить старое, прошить новое затем подключить новое?
к чему эти танцы с бубном лишнего цикла прошивки/стирания?
Ну .. когда железка разбирается (у на жеж конструктор) то далеко не факт, что прямо сейчас оно будет использовано в новой конструкции .. ребенок может увлечься чем-то иным, как было: сел танк клеить вместо подготовки к соревнованиям (я и так успею) и т.д. .. а когда берешь МК для новой поделки уже фиг его знает что там прошито .. так что blink - как-бы сигнал, что МК "готов" к работе.
Понятно. Спасибо.
blink - как-бы сигнал, что МК "готов" к работе.
кому сигнал? - ребёнку?
если так уж сложилось, что ползатель твоей дуино нечто гиперактивное с короткой памятью как у золотой рыбки, то просто впаяй на все пины резисторы 470 Ом.
:) Я и сам через пару недель не помню что туда заливал .. хорошо, когда машинка стоит неразобранная, как сейчас наш "робот-паук" .. а так крутишь-вертишь плату и не знаешь толи залить в неё что пустое прежде чем собирать, то ли сразу собрать (а как правило, в момент сборки скетча как такового ещё и нет вовсе) .. склероз - наше фсё! .. заставь меня сейчас рассказать чего я писал в коде полгода назад - да проще застрелить. Каждый день пишется по 500-1000 строк да на нескольких языках.. :)
А вот за резисторы - пасибки. Приедет камень Меги2560, буду паять мегу с памятью .. пригодится.
на самом деле сначала всегда bootloader запускается и "смотрит", не загружается ли в плату новая программа!
Интересно, можно ли как-то изменить время ожидания бутлоадера?