Читаем Программируем Arduino. Профессиональная работа со скетчами полностью

На рис. 2.4 показано, что происходит после щелчка на кнопке Upload (Загрузить).

Рис. 2.4. Комплект инструментов Arduino

Скетчи для Arduino хранятся в виде текстовых файлов с расширением .ino в папке с тем же именем, но без расширения.

Когда пользователь пытается выгрузить скетч в плату, в дело включается среда разработки Arduino IDE, которая управляет множеством вспомогательных программ, выполняющих основную работу. Сначала компонент Arduino IDE, который я (за неимением лучшего названия) называю препроцессором (Arduino IDE preprocessor), собирает файлы, составляющие скетч. Обратите внимание на то, что обычно скетч состоит из единственного файла. При желании в папку скетча можно добавить другие файлы, правда, при этом для их создания придется использовать другой редактор.

Если в папке присутствуют другие файлы, они также будут включены в процесс сборки. Файлы с программным кодом на языках C и C++ компилируются отдельно друг от друга. В начало главного файла скетча добавляется строка, подключающая arduino.h.

Так как существует множество разных моделей плат Arduino, использующих разные микроконтроллеры с разными наименованиями контактов, Arduino IDE должна выбрать правильные их определения. Если заглянуть в папку hard-ware/arduino/variants, можно увидеть отдельные папки для всех моделей плат Arduino, в каждой из которых хранится свой файл pins_arduino.h. Этот файл содержит имена контактов для своей платформы.

После объединения файлов вызывается компилятор GCC. Это компилятор C++, распространяемый с открытым исходным кодом и входящий в состав дистрибутива Arduino. Он принимает скетч, заголовочный файл и файлы реализации с исходным кодом на C и преобразует их в код, который может выполняться микроконтроллером на плате Arduino. Этот компилятор выполняет следующие шаги.

1. Препроцессор интерпретирует все команды #if и #define и определяет, какой код должен быть скомпилирован.

2. Затем выполняются компиляция и компоновка кода в единственный файл, пригодный для выполнения процессором на плате.

3. Когда компилятор завершит свою работу, запускается открытый программный компонент с названием avrdude, который пересылает в плату выполняемый двоичный код в шестнадцатеричном формате через последовательный интерфейс USB.

Теперь мы в царстве Arduino. В плате Arduino имеется небольшая резидентная программа, устанавливаемая в каждый микроконтроллер. Эта программа называется загрузчиком (bootloader). Загрузчик выполняется каждый раз, когда происходит сброс платы Arduino. Именно поэтому, когда происходит передача данных по последовательному интерфейсу, аппаратура связи в Arduino Uno производит принудительный сброс платы, чтобы дать загрузчику возможность проверить входящие скетчи.

Если был получен скетч, плата Arduino программирует сама себя, распаковывая шестнадцатеричное представление программы в двоичное и сохраняя его во флеш-памяти. Когда в следующий раз произойдет сброс платы, после обычной проверки на наличие нового скетча загрузчик автоматически запустит программу, хранящуюся во флеш-памяти.

Возникает естественный вопрос: почему компьютер не может запрограммировать микроконтроллер напрямую, минуя такую сложную процедуру? Причина в том, что для программирования микроконтроллера требуется специальная аппаратура, использующая другой способ связи с платой Arduino (кто-нибудь из вас спрашивал себя, зачем на плате колодка с шестью контактами?). Благодаря загрузчику, постоянно прослушивающему последовательный порт, мы можем программировать Arduino через USB без использования специальной аппаратуры.

Однако если у вас есть такой программатор, например AVRISPv2, AVRDragon или USBtinyISP, с его помощью вы сможете программировать Arduino напрямую, в обход загрузчика. Фактически, как будет показано далее в этой главе, в роли такого программатора можно использовать вторую плату Arduino.

AVR Studio

Тертые инженеры-электронщики могут выразить свое презрение к Arduino IDE, заявив, что она не имеет никаких преимуществ перед инструментами компании Atmel для программирования всего семейства микроконтроллеров AVR. С технической точки зрения это верно. Но при этом не учитывается, что Arduino помогает раскрыть все тайны процесса использования микроконтроллеров и выйти из-под контроля таких экспертов. Действительно, многое из того, что делает нас поклонниками Arduino, можно считать дилетантством, и в ответ на это я могу только сказать: «Ну и что!»

AVR Studio — это лицензионное программное обеспечение, предоставляемое производителем для программирования микроконтроллеров, на основе которых сконструированы платы Arduino. Его можно использовать вместо Arduino IDE. Однако в этом случае вам придется смириться со следующими ограничениями.

• Работа возможна только в окружении Windows.

• Программирование выполняется с использованием специального оборудования вместо USB.

• Среда разработки сложнее в использовании.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных