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

Portenta H7 Dual-Core-Debugging

Komponenten und Verbrauchsmaterialien

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

Apps und Onlinedienste

Arduino-IDE
Microsoft Visual Studio 2017
Visual Micro

Über dieses Projekt

Der Arduino Portenta H7 bietet eine Vielzahl von Funktionen und die Möglichkeit, Ihren Code auf zwei separaten Kernen auszuführen, die auch miteinander kommunizieren können!

Wir alle haben von Zeit zu Zeit Probleme mit unseren Projekten, daher zeigen wir hier, wie Sie einen Segger JLink verwenden können, um den Code, der auf beiden Kernen gleichzeitig läuft, zu debuggen!

Hardware-Setup

Sobald Sie Ihre Portenta H7 auf dem Breakout-Board montiert haben, müssen Sie Ihren MIPS 20-Pin-Konverter anschließen, um die Debugging-Pins auszubrechen.

Dann können Sie Ihren Konverter wie in den Bildern unten gezeigt an den Segger J-Link anschließen.

Wenn Sie Steckverbinder mit dem richtigen Rastermaß (0,05") haben, können Sie auch Ihren eigenen Steckverbinder verdrahten, wie im zweiten Bild gezeigt:

Software-Setup

Wir gehen davon aus, dass Sie die Arduino IDE bereits auf Ihrem Computer installiert haben (falls nicht hier herunterladen).

Installieren Sie dann Visual Studio (2017/2019/2022) und die Visual Micro-Erweiterung. Die vollständigen Anweisungen finden Sie hier.

Sie müssen auch das Board-Paket für Arduino Mbed OS Portenta Boards installieren aus dem Visual Micro Explorer (oder aus dem Boards Manager in der Arduino IDE).

Sie müssen den USB-Treiber auf Schnittstelle 0 Ihres Segger J-Link mit dem Tool Zadig.exe ersetzen (siehe Video unten für eine exemplarische Vorgehensweise).

Lets Code!

Jetzt müssen wir ein separates Projekt einrichten, eines für jeden Kern unseres Portenta-Boards. Der beigefügte Code ist ein einfaches Blink-Beispiel, bei dem jeder Kern eine andersfarbige LED blinkt. Richten Sie zum Debuggen jeden Kern in einer separaten Instanz von Visual Studio ein.

Vergessen Sie nicht, die bootM4()-Funktion in Ihrem M7-Core-Projekt aufzurufen, um sicherzustellen, dass beide Kerne laufen.

Debug-Setup:M7 Core

Öffnen Sie Ihren M7 Core Sketch und wählen Sie Debug> Hardware und den Segger J-Link Debugger (NICHT die "NoOpenOCD-Version)

Erstellen Sie jetzt Ihre M7-Skizze und laden Sie sie auf den M7-Kern hoch.

Software-Setup:M4 Core

Öffnen Sie Ihre Skizze und wählen Sie Debug> Hardware und den Segger J-Link Debugger (NoOpenOCD)

Erstellen Sie jetzt Ihre M4-Skizze und laden Sie sie auf den M4-Kern hoch.

Debugger starten

Beginnen Sie zuerst mit dem Debuggen mit der M7 Core-Skizze, indem Sie "Debug> Attach to Process" verwenden.

Beginnen Sie dann mit dem Debuggen mit der M4 Core-Skizze, indem Sie "Debug> Attach to Process" verwenden.

Sie sollten jetzt in der Lage sein, jedem Sketch einen Breakpoint hinzuzufügen und zu beobachten, wie der Debugger darauf stoppt ..... wobei jeder Kern in der Lage ist, unabhängig zu stoppen/schritten/fortzufahren!!

Walkthrough-Video

Eine exemplarische Vorgehensweise für diesen Vorgang finden Sie unten auf YouTube....

Dokumentation + Schaltplan

Portenta Breakout-Board

Segger JLink

Code

  • H7 M4 Blinkcode
  • H7 M5 Blinkcode
H7 M4 BlinkcodeArduino
Code zum Demonstrieren von Blink auf dem Portenta M4 Core
 // Code zum Demonstrieren von Blink auf dem Portenta M4 Core // Die Setup-Funktion wird einmal ausgeführt, wenn Sie Reset drücken oder das Boardvoid-Setup einschalten () { // Digital Pin 13 als an . initialisieren Ausgang. pinMode (LED_BLUE, OUTPUT);} // die Schleifenfunktion wird immer wieder ausgeführt forevervoid loop () { digitalWrite (LED_BLUE, HIGH); // schalten Sie die LED ein (HIGH ist der Spannungspegel) Verzögerung (1000); // auf eine zweite warten digitalWrite (LED_BLUE, LOW); // schalten Sie die LED aus, indem Sie die Spannung auf LOW stellen (1000); // warte eine Sekunde}
H7 M5 BlinkcodeArduino
Code zum Demonstrieren von Blink auf dem Portenta M7 Core
// Code zum Demonstrieren von Blink auf dem Portenta M7 Core // Die Setup-Funktion wird einmal ausgeführt, wenn Sie Reset drücken oder das Boardvoid einschalten. setup() { bootM4(); // Digital-Pin 13 als Ausgang initialisieren. pinMode (LED_RED, OUTPUT);} // die Schleifenfunktion wird immer wieder ausgeführt forevervoid loop () { digitalWrite (LED_RED, HIGH); // schalten Sie die LED ein (HIGH ist der Spannungspegel) Verzögerung (1000); // Warte auf ein zweites DigitalWrite (LED_RED, LOW); // schalten Sie die LED aus, indem Sie die Spannung auf LOW stellen (1000); // warte eine Sekunde}

Schaltpläne

So verbinden Sie die SWD-Pins des Breakout Boards mit dem Segger J-Link

Herstellungsprozess

  1. Arduino-Board zielt auf industrielles IoT ab
  2. Arduino Spybot
  3. FlickMote
  4. Selbstgemachter Fernseher B-Gone
  5. Hauptuhr
  6. Finde mich
  7. Arduino-Power
  8. Tech-TicTacToe
  9. Arduino-Vierbeiner
  10. Arduino-Joystick