Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

108 Часть 1. Общие принципы устройства и функционирования Atтel А VR в саму плату Arduino внутреннего загрузчика, работающего через последователь­ ный порт (Bootloader' a), если он был по каким-то причинам испорчен (вопрос о возможности и целесообразности установки Bootloader' а на обычные контролле­ ры мы рассмотрим в главе 6). Третья возможность интереснее : плату Arduino, как и любой универсальный кон­ троллер, можно запрограммировать для работы в качестве программатора (в том числе, кстати, и универсального параллельного, на чем мы не будем останавливать­ ся). Для этого удобнее применять опять же Uno, но в принципе можно в любую из плат загрузить соответствующий скетч, который называется ArduinoISP. Он нахо­ дится в папке с интегрированными примерами ( Examples ) и доступен прямо из сре­ ды через меню Файл 1 Примеры (в Arduino IDE 1 .6 . 9 он расположен последним, под номером 1 1 ) . Загрузив его в контроллер платы обычным путем из Arduino IDE, вы превратите Arduino в последовательный программатор, с помощью которого можно осуществлять все описанное в предыдущем абзаце, только с меньшим коли­ чеством проблем. Внешний контроллер (или другая плата Arduino) подключается так же, как в первом случае, т. е. к выводам 1 2 (MISO), 1 1 (MOSI), 1 3 (SCK) и т. д. - теперь они играют роль просто интерфейса SPI . За одним важным исклю­ чением - вывод RESET программируемого контроллера подключается к выводу 1 О (вывод SS интерфейса SPI), а не соединяется с выводом Reset платы, как ранее. ЗАМЕТКИ НА ПОЛЯХ Я лично для указанных целей не стал бы долго разбираться со средой , а просто ис­ пользовал бы имеющийся программатор в штатном режиме. В случае Bootloader'a нужный НЕХ-файл можно найти в папке установленной у вас Aгduino IDE в каталоге hardware\arduino\avr\Ьootloaders. Не забудьте еще установку «фьюзов» , необходимую конфигурацию которых можно найти в файле hardware\arduino\avr\Ьoards. txt, - при за­ грузке из Aгdu i no I DE среда их устанавливает сама, а здесь придется вручную (под­ робности приведены в следующем разделе) . Но не все знают, что подготовленный и скомпилированный в среде Aгduino скетч тоже можно загрузить в любой контроллер таким же способом . Нужные НЕХ-файлы придется , правда, поискать , но это не очень сложно . Результаты деятельности Aгduino IDE в случае Windows 7 и более поздних версий размещаются в недрах папки Пользователи\<имя пользователя>\АррDаtа\ Local\Temp. Там вы найдете кучу папок с расширением tmp, название которых начина­ ется с build (например, build290388496895462656. tmp) - внутри одной из них и находится искомый НЕХ-файл, имя которого должно совпадать с именем файла скетча. Заметим еще, что при программировании из среды Arduino нет доступа к конфигу­ рационным ячейкам, а принудительное их изменение внешним программатором может привести к неработоспособности загруженного скетча, и почти наверняка выведет из строя Bootloader, если вы загружали именно его (подробности на эту тему приведены далее). Из этого краткого обзора видно, что из Arduino программа­ тор получается плохой и пригодный в основном для каких-то специфических це­ лей. Тех же целей можно достичь быстрее и без проблем с помощью обычного про­ грамматора в штатном режиме.

RkJQdWJsaXNoZXIy MTExODQxMg==