Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Debugging des Arduino Portenta H7 Dual-Core-Systems mit Segger J-Link

Komponenten und Zubehör

Arduino Portenta H7 × 1
Arduino Portenta H7 Breakout Board × 1
Segger J-Link Debug Probe × 1
Segger Cortex M Adapter × 1

Apps und Online-Dienste

Projektübersicht

Der Arduino Portenta H7 liefert eine leistungsstarke Dual-Core-Architektur: Ein Cortex-M7 mit 480 MHz und ein Cortex-M4 mit 240 MHz. Die beiden Kerne können unabhängige Firmware ausführen und über gemeinsamen Speicher oder Semaphoren kommunizieren.

Das gleichzeitige Debuggen beider Kerne erfordert eine dedizierte SWD-Schnittstelle und einen Debugger, der Multi-Target-Sessions unterstützt. In dieser Anleitung zeigen wir, wie man einen Segger J-Link verwendet, um sich mit jedem Kern zu verbinden, die Entwicklungsumgebung einzurichten und ein einfaches Blink-Beispiel auszuführen, das die unabhängige Steuerung der LED jedes Kerns demonstriert.

Hardware-Setup

  1. Montieren Sie den Portenta H7 auf seinem Breakout Board. Das Board exponiert einen 20-poligen MIPS-Style-Header, der mit den SWD-Pins beider Kerne verbunden ist.
  2. Befestigen Sie einen 20-poligen MIPS-Konverter am Breakout-Header, um die Debug-Signale zu trennen.
  3. Verbinden Sie den Konverter gemäß dem Pinout-Diagramm unten mit dem Segger J-Link. Wenn Sie eine benutzerdefinierte Lösung bevorzugen, verwenden Sie 0,05-Zoll-Pitch-Connectoren und folgen Sie der im zweiten Bild gezeigten Beispiel-Verdrahtung.
Debugging des Arduino Portenta H7 Dual-Core-Systems mit Segger J-Link
Offizieller MIPS-Konverter Anschluss
Debugging des Arduino Portenta H7 Dual-Core-Systems mit Segger J-Link
Benutzerdefinierte Verdrahtung mit 0,05-Zoll-Connectoren

Software-Setup

  1. Installieren Sie die Arduino IDE (Download von der Arduino-Website).
  2. Installieren Sie Microsoft Visual Studio (2017, 2019 oder 2022) und die Visual Micro Extension (vollständige Anweisungen auf der Visual Micro Website).
  3. Fügen Sie das Arduino Mbed OS Portenta Boards Paket über den Visual Micro Explorer oder den Boards Manager in der Arduino IDE hinzu.
  4. Ersetzen Sie den USB-Treiber auf Interface 0 des Segger J-Link mit dem WinUSB-Treiber mithilfe von Zadig. Ein kurzes Walkthrough-Video ist unten verlinkt.

Lass uns coden

Bereiten Sie zwei separate Projekte vor, eines für jeden Kern. Die folgenden Blink-Beispiele lassen eine unterschiedliche LED auf jedem Kern leuchten und können unabhängig debuggt werden.

Wichtig: Im M7-Projekt rufen Sie bootM4() zu Beginn von setup() auf, um sicherzustellen, dass beide Kerne aktiv sind.

Debug-Setup: M7-Kern

Öffnen Sie den M7-Sketch in Visual Studio, gehen Sie zu Debug > Hardware und wählen Sie Segger J-Link Debugger (nicht die NoOpenOCD-Version). Bauen Sie und laden Sie den Sketch auf den M7-Kern hoch.

Debugging des Arduino Portenta H7 Dual-Core-Systems mit Segger J-Link
Debug-Konfiguration für M7-Kern

Debug-Setup: M4-Kern

Öffnen Sie den M4-Sketch, wählen Sie Debug > Hardware und wählen Sie Segger J-Link Debugger (NoOpenOCD). Bauen Sie und laden Sie auf den M4-Kern hoch.

Debugger starten

Starten Sie zuerst eine Debugging-Session für den M7-Sketch mit Debug > An Prozess anhängen. Wiederholen Sie den gleichen Schritt für den M4-Sketch. Sie können nun Breakpoints in jedem Projekt setzen, anhalten, schrittweise ausführen oder fortsetzen – unabhängig voneinander; jeder Kern reagiert auf seine eigenen Befehle.

Debugging des Arduino Portenta H7 Dual-Core-Systems mit Segger J-Link
Gleichzeitiges Debugging beider Kerne

Walkthrough-Video

Sehen Sie sich eine Schritt-für-Schritt-Demonstration auf YouTube an:

Debugging Portenta H7 Dual-Core mit Segger J-Link

Nützliche Links

Code

H7 M4 Blink Code

// Blink auf Portenta M4 Kern
void setup() {
  pinMode(LED_BLUE, OUTPUT);
}

void loop() {
  digitalWrite(LED_BLUE, HIGH);
  delay(1000);
  digitalWrite(LED_BLUE, LOW);
  delay(1000);
}

H7 M7 Blink Code

// Blink auf Portenta M7 Kern
void setup() {
  bootM4(); // M4 Kern aktivieren
  pinMode(LED_RED, OUTPUT);
}

void loop() {
  digitalWrite(LED_RED, HIGH);
  delay(1000);
  digitalWrite(LED_RED, LOW);
  delay(1000);
}

Schaltpläne

Wie man die SWD-Pins am Breakout Board mit dem Segger J-Link verbindet:

Debugging des Arduino Portenta H7 Dual-Core-Systems mit Segger J-Link
SWD-Pinbelegung Breakout Board zu Segger J-Link

Herstellungsprozess

  1. Arduino launcht Portenta H7: Industrial-Grade IoT Board Debutiert auf CES
  2. Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
  3. FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
  4. DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
  5. Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
  6. Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
  7. Optimierte Stromversorgungslösungen für Arduino-Projekte
  8. Arduino Tic Tac Toe mit MAX7219 LED-Matrix und Karton-Gehäuse
  9. Intelligenten Arduino-Vierbeiner-Roboter bauen: Schritt-für-Schritt-Anleitung
  10. DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau