Расширенные функции Arduino M0 Pro
Руководство по расширенным функциям Arduino M0 Pro
Примечание
Это снятый с производства продукт.
В этом документе мы объясняем расширенные функции этой платы, охватывая характеристики встроенного отладчика, процедуру программирования загрузчика и использование встроенного отладчика с Atmel Studio.
Интерфейсы встроенного отладчика
Плата Arduino M0 Pro оснащена встроенным отладчиком Atmel Embedded Debugger (EDBG) для отладки на плате. EDBG является составным USB-устройством, имеющим три различных интерфейса: отладчик, виртуальный COM-порт и интерфейс Data Gateway Interface (DGI).
В сочетании с Atmel Studio интерфейс отладчика EDBG способен программировать и отлаживать ATSAMD21G18A. На самой плате есть два интерфейса SWD: первый подключён к EDBG, а второй — к ATSAMD21G18A.
Поскольку бортовой виртуальный COM-порт подключён к порту UART на ATSAMD21G18A, он обеспечивает простой способ связи с целевым приложением через простое терминальное программное обеспечение. Его функции включают настраиваемую скорость передачи данных, чётность и настройки стоп-бит. Обратите внимание, что настройки на UART целевого устройства должны соответствовать настройкам в терминальном программном обеспечении.
DGI состоит из нескольких физических интерфейсов данных для связи с компьютером. Связь через интерфейсы является двунаправленной. Он может использоваться для отправки событий и значений от ATSAMD21G18A или в качестве универсального канала данных в стиле printf. Трафик через интерфейсы может быть отмечен временными метками на EDBG для более точного отслеживания событий. Обратите внимание, что добавление временных меток создаёт накладные расходы, снижающие максимальную пропускную способность. DGI использует проприетарный протокол и, следовательно, совместим только с Atmel Studio.
EDBG управляет двумя светодиодами на M0 Pro: светодиодом питания и светодиодом состояния.
Режим работы |
Светодиод питания |
Светодиод состояния |
|---|---|---|
Нормальная работа |
Светодиод питания горит при подаче питания на плату. |
Индикатор активности, светодиод мигает каждый раз при событии на EDBG. |
Режим загрузчика (ожидание) |
Светодиод питания и светодиод состояния мигают одновременно. |
(см. столбец «Светодиод питания») |
Режим загрузчика (обновление прошивки) |
Светодиод питания и светодиод состояния мигают попеременно. |
(см. столбец «Светодиод питания») |
Процедура прошивки загрузчика
Для правильной записи загрузчика M0 PRO вы можете использовать программный порт и инструмент от ATMEL «AtmelStudio». Следуйте этим шагам:
Откройте AtmelStudio.
Подключите плату M0 PRO через «Programming Port» к USB-порту вашего ПК.
Перейдите в «Tools -> Device Programming» или нажмите клавиши «CTRL + SHIFT + P».
В поле Tool выберите «EDBG».
В поле Device выберите «ATSAMD21G18A».
В поле Interface выберите «SWD».
Нажмите «Apply».
Перейдите в «Memories».
Нажмите «Erase now» и, если всё прошло успешно, в консоли журнала вы увидите «OK».
Перейдите в «Fuses».
Убедитесь, что значение «NVMCTRL_BOOTPROT» равно «0x07», в противном случае установите это значение двойным щелчком по значению.
Нажмите «Program». В консоли журнала будет отображено «OK», если всё прошло гладко.
Перейдите в «Memories».
Выберите файл для записи (обычно Bootloader_board_Vxxx.hex).
Нажмите «Program» и снова в консоли журнала вы увидите «OK».
Отладка с помощью ATMEL STUDIO 6
В этом примере мы будем использовать Arduino Software (IDE) и Atmel Studio 6.
Создание файла для отладки
Запустите Arduino Software (IDE), откройте скетч blink.ino и выберите Arduino M0 Pro (Programming Port) в меню плат:
Закомментируйте строки 26 и 28, чтобы убрать вызов delay, и сохраните скетч под новым именем (например, сохраните как blink1.ino):
Нажмите кнопку со стрелкой, чтобы скомпилировать скетч и запрограммировать Arduino M0 Pro. После завершения скопируйте в буфер обмена путь к файлу Blink1.cpp.bin, указанный в окне вывода (например: C:\Users………..\AppData\Local\Temp\build6278736204043834605.tmp):
Использование Atmel Studio 6 для отладки
Теперь запустите Atmel Studio 6 и в главном меню перейдите: File -> Open -> Open Object File For Debugging
Выберите файл Blink1.cpp.elf в поле Object File To Debug, затем нажмите «next»:
Выберите SAMD21G18A, как показано на следующем рисунке, и нажмите «finish»:
На этом этапе появится окно «Remap Object Files To Disk Files»:
Выберите кнопку с тремя точками в строке файла Blink1.ino:
и откройте сам файл Blink1.ino, затем нажмите «finish». Теперь откройте запись Blink1.ino в рабочей области Solution Explorer главного окна Atmel Studio:
Нажмите на левую сторону (серую область) окна исходного кода, чтобы установить точку останова (например, в строке 25):
Нажмите значок воспроизведения на верхней панели, чтобы начать отладку:
Появится окно с предложением выбрать отладчик/программатор edbg, нажмите «continue» и затем выберите соответствующие записи EDBG и SWD, как показано на рисунке ниже:
Нажмите ещё раз кнопку воспроизведения и, если потребуется, обновите прошивку edbg и нажмите «play» ещё раз. Отладка начнётся, и код остановится на точке останова. Вы можете продолжить отладку, нажимая F11 или F10. Программа выполнит следующую функцию или инструкцию, в зависимости от нажатой клавиши. Обратите внимание, что код выполняется на самой плате, поэтому мы закомментировали два вызова delay, чтобы ускорить пример отладки.
Вернитесь на страницу начала работы с Arduino M0 Pro.