Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Двухъядерная отладка Portenta H7

Компоненты и расходные материалы

Arduino Portenta H7
× 1
Коммутационная плата Arduino Portenta H7
× 1
Зонд отладки Segger J-Link
× 1
Адаптер Segger Cortex M
× 1

Приложения и онлайн-сервисы

IDE Arduino
Microsoft Visual Studio 2017
Visual Micro

Об этом проекте

Arduino Portenta H7 может похвастаться широким спектром функций и возможностью запускать ваш код на двух отдельных ядрах, которые также могут взаимодействовать друг с другом!

Мы все время от времени сталкиваемся с проблемами в наших проектах, поэтому здесь мы покажем, как можно использовать Segger JLink для отладки кода, работающего на обоих ядрах одновременно!

Настройка оборудования

После того, как ваш Portenta H7 установлен на коммутационной плате, вам нужно будет подключить 20-контактный преобразователь MIPS, чтобы отключить отладочные контакты.

Затем вы можете подключить преобразователь к Segger J-Link, как показано на изображениях ниже.

Если у вас есть разъемы с правильным шагом (0,05 дюйма), вы также можете подключить свой собственный разъем, как показано на втором изображении:

Настройка программного обеспечения

Мы предполагаем, что вы уже установили IDE Arduino на свой компьютер (если не загрузите здесь).

Затем установите Visual Studio (2017/2019/2022) и расширение Visual Micro Extension. Полные инструкции доступны здесь.

Вам также потребуется установить пакет платы для плат Arduino Mbed OS Portenta . из Visual Micro Explorer (или из Boards Manager в Arduino IDE).

Вам нужно будет заменить драйвер USB на интерфейсе 0 вашего Segger J-Link с помощью инструмента Zadig.exe (пошаговое руководство см. В видео внизу).

Давайте код!

Теперь нам нужно настроить отдельный проект, по одному для каждого ядра нашей платы Portenta Board. Прилагаемый код представляет собой простой пример Blink, в котором каждое ядро ​​мигает светодиодом разного цвета. Для отладки настройте каждое ядро ​​в отдельном экземпляре Visual Studio.

Не забудьте вызвать функцию bootM4 () в своем проекте M7 Core, чтобы убедиться, что оба ядра работают.

Настройка отладки:M7 Core

Откройте свой M7 Core Sketch и выберите «Отладка»> «Оборудование» и «Отладчик J-Link Segger» ( НЕ версия "NoOpenOCD")

На этом этапе соберите и загрузите свой M7 Sketch в ядро ​​M7.

Настройка программного обеспечения:M4 Core

Откройте ваш Sketch и выберите Debug> Hardware и Segger J-Link Debugger (NoOpenOCD)

На этом этапе создайте и загрузите свой M4 Sketch в ядро ​​M4.

Запустить отладчик

Сначала начните отладку, используя эскиз M7 Core, используя «Отладка> Присоединить к процессу».

Затем начните отладку, используя эскиз M4 Core, используя «Отладка> Присоединить к процессу».

Теперь у вас должна быть возможность добавить точку останова к любому скетчу и наблюдать, как отладчик останавливается на нем ... при этом каждое ядро ​​может останавливаться / шагать / продолжать независимо !!

Видеообзор

См. Пошаговое руководство по этому процессу ниже на YouTube ....

Полезные ссылки

Документация + схема подключения

Доска для обсуждения Portenta

Segger JLink

Код

  • Мигающий код H7 M4
  • Мигающий код H7 M5
Мигающий код H7 M4 Arduino
Код для демонстрации мигания на ядре Portenta M4
 // Код для демонстрации мигания на ядре Portenta M4 // функция настройки запускается один раз, когда вы нажимаете кнопку сброса или включаете плату, избегайте setup () {// инициализируйте цифровой контакт 13 как вывод. pinMode (LED_BLUE, OUTPUT);} // функция цикла выполняется снова и снова навсегдаvoid loop () {digitalWrite (LED_BLUE, HIGH); // включаем светодиод (HIGH - уровень напряжения) delay (1000); // ждем второй digitalWrite (LED_BLUE, LOW); // выключить светодиод, установив напряжение LOW delay (1000); // ждем секунду} 
Мигающий код H7 M5 Arduino
Код для демонстрации мигания на ядре Portenta M7
 // Код для демонстрации мигания на ядре Portenta M7 // функция настройки запускается один раз при нажатии кнопки сброса или включении платыvoid setup () {bootM4 (); // инициализируем цифровой вывод 13 как выход. pinMode (LED_RED, OUTPUT);} // функция цикла выполняется снова и снова навсегдаvoid loop () {digitalWrite (LED_RED, HIGH); // включаем светодиод (HIGH - уровень напряжения) delay (1000); // ждем второй digitalWrite (LED_RED, LOW); // выключить светодиод, установив напряжение LOW delay (1000); // ждем секунду} 

Схема

Как подключить контакты SWD на коммутационной плате к Segger J-Link

Производственный процесс

  1. Плата Arduino предназначена для промышленного Интернета вещей
  2. Arduino Spybot
  3. FlickMote
  4. Самодельный телевизор B-Gone
  5. Основные часы
  6. Найди меня
  7. Arduino Power
  8. Tech-TicTacToe
  9. Четвероногий Arduino
  10. Джойстик Arduino