Arduino Bootloader


9

Я очень новичок во встроенном мире. Я до сих пор работал только на S / W

Может кто-нибудь объяснить, пожалуйста, использование Arduino Bootloader? Я хочу, чтобы Arduino выполнил простую математику, используя некоторые дополнительные компоненты, которые должны быть вставлены в чип.

Нужен ли обязательно загрузчик?

Ответы:


10

Arduino - это просто микроконтроллер Atmel AVR с достаточным количеством вспомогательной электроники для работы. В AVR есть встроенная вспышка, позволяющая сохранять программы при выключенном питании, но для непосредственного программирования микросхемы AVR вам необходим такой инструмент, как STK-500. Arduino преодолевает это, также имея небольшой USB-интерфейс на плате, и код загрузчика Arduino уже на чипе. Это позволяет приложению на стороне ПК переносить ваши программы на устройство, и, по сути, оно само мигает.

Итак, суть в том, что если вы получаете Arduino, загрузчик уже есть и выполняет свою работу автоматически. Вы кодируете свою программу на ПК, нажимаете кнопку «загрузить» в IDE, и через несколько секунд ваша программа запускается на Arduino. Загрузчик делает свою работу полностью прозрачно.

Кстати, у меня лично есть Arduino 2009 и STK-500, и я могу программировать на металле на AVR, но не нашел необходимости обходить загрузчик Arduino.


Я хотел бы видеть больше информации об использовании Arduino для программирования AVR.
Грег


@ Грег, на самом деле есть эскиз, поддерживаемый Arduino, для duemilanove, чтобы прошить загрузчик на голый процессор atmega328. Очевидно, что эта функциональность может быть расширена, чтобы прошить любую программу на чистую atmega328. Вам не нужен разъем ISP. По сути, вы превращаете свой Arduino Micro в ISP.
Ник Халден

5

Arduino необходим загрузчик для программирования ваших эскизов через последовательный порт / USB. Без него вам потребуется встроенный программатор AVR (ISP) для непосредственного программирования флэш-памяти в микросхеме AVR.

Если вы купите Arduino, он выйдет с уже загруженным загрузчиком в чип AVR. Вам нужно беспокоиться об этом, только если вы строите свою собственную доску.

Это должно помочь: я не понимаю концепцию Arduino


4

Я дам немного более теоретический ответ; другие ответы довольно хороши с практической точки зрения. Загрузчик - это код, который находится в специальном сегменте флэш-памяти. Коду, находящемуся в этом сегменте, разрешено выполнять инструкции самопрограммирования, что позволяет изменять флэш-память (т. Е. Там, где находится код пользователя) без использования обычного программатора (например, ISP для системного программирования или HVP для программирования высокого напряжения), такого как STK500 или AVRISP mkII.

В принципе, подпрограмма обслуживания прерывания получения данных UART (ISR) выполняет функциональный вызов кода загрузчика, который копирует образ программы, отправляемый последовательно в пространство пользовательских программ во флэш-памяти. При запуске, какая бы ни была программа на чипе, начинает работать, но, если правильно сформированные последовательные данные получены рано, AVR переходит в своего рода режим самопрограммирования. В UART ISR есть некоторая логика, которая во время запуска откладывает код загрузчика только на короткий промежуток времени. Детали немного сложнее, но это основная идея.

Прелесть этого в том, что вы можете купить Arduino и ничего более, загрузить бесплатную интегрированную среду разработки (IDE) и начать писать наброски (программы) Arduino и загружать их на AVR просто так, через USB не меньше, спасибо к причудливой маленькой микросхеме FTDI, встроенной в плату Arduino.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.