Я думаю, что когда появился Leonardo, я прочитал несколько статей о том, как осторожно делать некоторые вещи, которые могут привести к тому, что он больше не будет загружать новые эскизы, поэтому нужно переписать загрузчик. Поскольку я планирую использовать параметры энергосбережения, например, для отключения неиспользуемых аппаратных компонентов, таких как порт USB, я боюсь сделать что-то не так.
Один Леонардо-деликатес, который я нашел до сих пор:
- если прерывания отключены, загрузка новых эскизов завершится неудачно, если не будет нажата кнопка «Сброс», как только в среде Arduino IDE появится «Загрузка ...»
Какие вещи (кроме обычных аппаратных представлений, таких как подключение выводов, сконфигурированных на выходе, к фиксированным потенциалам) могут повредить контроллер или потребовать перепрошивки Leonardo свежим загрузчиком?
power
arduino-leonardo
Томас С.
источник
источник
Ответы:
Если вы загрузите программу, которая изменяет скорость ядра USB, она будет почти кирпичной. Что произойдет, это:
Проблема здесь заключается в том, что вы не только должны нажать «сброс» к программе, после сброса вы должны быстро выбрать правильный com-порт и затем загрузить его до запуска программы.
Redbearlab Blend Micro требует, чтобы скорость ядра USB была установлена в пользовательской программе. В их инструкциях по настройке есть шаг, чтобы отредактировать Arduino main.cpp и добавить раздел для этого. Если этот шаг пропущен, возникает вышеуказанная проблема.
источник
Мне удалось на кирпичную стену ATMega128RFA1. Загрузчик и загруженное в него программное обеспечение работали нормально. Но было невозможно стереть / записать ПЗУ.
После проверки того, что произошло, я обнаружил в спецификации, что некоторые предохранители в ядре AVR предназначены для защиты от случайной записи в ПЗУ. Какие-то предохранители.
Я никогда не обнаруживал ошибку, записанную в этих байтах (так как это была действительно большая программа, и мы были тремя людьми, вовлеченными в кодирование), но да, мы просто взорвали предохранитель и потеряли MCU из-за ошибки.
Что касается леонардо, может произойти несколько вещей, но ничто из этого не может замуровать вашу доску, если вы не перегорели один из этих предохранителей.
источник
С некоторым действительно умным кодом можно использовать загрузчик для перезаписи самого себя.
Выдержка:
Таким образом, в основном, вы можете заняться каким-то интересным программированием и заставить загрузчик работать самостоятельно, делая MCU бесполезным без специального программиста.
источник
Один из тех, о которых я знаю, - заставить Леонарда действовать как USB-мышь, которая повсюду хлопает и печатает случайные клавиши, так что вы не сможете перепрограммировать ее, не совершив какой-то хитрости, чтобы обойти ее. Но они упоминают это на Api Docs.
источник