Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Portenta H7 Dual Core-foutopsporing

Componenten en benodigdheden

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

Apps en online services

Arduino IDE
Microsoft Visual Studio 2017
Visual Micro

Over dit project

De Arduino Portenta H7 beschikt over een breed scala aan functies en de mogelijkheid om uw code uit te voeren op twee afzonderlijke kernen, die ook met elkaar kunnen communiceren!

We komen allemaal wel eens in de problemen met onze projecten, dus hier laten we zien hoe je een Segger JLink kunt gebruiken om de code die op beide cores draait, tegelijkertijd te debuggen!

Hardware-installatie

Zodra u uw Portenta H7 op het breakout-bord hebt gemonteerd, moet u uw MIPS 20-pins converter aansluiten om de foutopsporingspinnen te doorbreken.

Vervolgens kunt u uw converter aansluiten op de Segger J-Link, zoals weergegeven in de onderstaande afbeeldingen.

Als u de juiste steekconnectoren (0,05") hebt, kunt u ook uw eigen connector aansluiten, zoals weergegeven in de tweede afbeelding:

Software-installatie

We gaan ervan uit dat je de Arduino IDE al op je computer hebt geïnstalleerd (indien niet download hier).

Installeer vervolgens Visual Studio (2017/2019/2022) en de Visual Micro Extension, met volledige instructies die hier beschikbaar zijn.

U moet ook het Board Package installeren voor Arduino Mbed OS Portenta Boards van de Visual Micro Explorer (of van Boards Manager in Arduino IDE).

U moet het USB-stuurprogramma op interface 0 van uw Segger J-Link vervangen met behulp van de tool Zadig.exe (zie video onderaan voor een uitleg).

Laten we coderen!

Nu moeten we een apart project opzetten, één voor elke kern van ons Portenta-bord. De bijgevoegde code is een eenvoudig Blink-voorbeeld, waarbij elke kern een andere gekleurde LED knippert. Stel voor foutopsporing elke kern in een apart exemplaar van Visual Studio in.

Vergeet niet ervoor te zorgen dat u de bootM4()-functie op uw M7 Core-project aanroept om ervoor te zorgen dat beide kernen actief zijn.

Foutopsporing instellen:M7 Core

Open je M7 Core Sketch en selecteer Debug> Hardware, en de Segger J-Link Debugger (NIET de "NoOpenOCD-versie)

Bouw en upload nu je M7 Sketch naar de M7 core.

Software-installatie:M4 Core

Open je Sketch en selecteer Debug> Hardware en de Segger J-Link Debugger (NoOpenOCD)

Bouw en upload nu je M4-schets naar de M4-kern.

Debugger starten

Begin eerst met debuggen met behulp van de M7 Core-schets door "Debug> Attach to Process" te gebruiken.

Begin dan met debuggen met behulp van de M4 Core-schets door "Debug> Attach to Process" te gebruiken.

Je zou nu in staat moeten zijn om een ​​breekpunt aan beide schetsen toe te voegen en de debugger erop te zien stoppen..... waarbij elke kern in staat is om onafhankelijk te stoppen/stappen/doorgaan!!

Doorloopvideo

Bekijk een uitleg voor dit proces hieronder op YouTube....

Documentatie + bedradingsschema

Portenta Breakout Board

Segger JLink

Code

  • H7 M4 Knippercode
  • H7 M5-knippercode
H7 M4 KnippercodeArduino
Code om te demonstreren Blink op de Portenta M4 Core
// Code om te demonstreren Blink op de Portenta M4 Core// de setup-functie wordt één keer uitgevoerd wanneer u op reset drukt of de boardvoid setup () aanzet { // initialiseer digitale pin 13 als een uitvoer. pinMode(LED_BLUE, OUTPUT);}// de loop-functie wordt steeds opnieuw uitgevoerd forevervoid loop() {digitalWrite(LED_BLUE, HIGH); // zet de LED aan (HOOG is het spanningsniveau) vertraging (1000); // wacht op een tweede digitalWrite (LED_BLUE, LOW); // schakel de LED uit door de spanning LAGE vertraging (1000) te maken; // wacht even}
H7 M5 KnippercodeArduino
Code om Blink aan te tonen op de Portenta M7 Core
// Code om Blink aan te tonen op de Portenta M7 Core// de setup-functie wordt één keer uitgevoerd wanneer u op reset drukt of de boardvoid setup() aanzet { bootM4(); // initialiseer digitale pin 13 als uitgang. pinMode(LED_RED, OUTPUT);}// de loop-functie wordt steeds opnieuw uitgevoerd forevervoid loop() {digitalWrite(LED_RED, HIGH); // zet de LED aan (HOOG is het spanningsniveau) vertraging (1000); // wacht op een tweede digitalWrite (LED_RED, LOW); // schakel de LED uit door de spanning LAGE vertraging (1000) te maken; // wacht even}

Schema's

De SWD-pinnen op het Breakout Board verbinden met de Segger J-Link

Productieproces

  1. Arduino-bord richt zich op industrieel IoT
  2. Arduino Spybot
  3. FlickMote
  4. Zelfgemaakte tv B-Gone
  5. Hoofdklok
  6. Vind mij
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Quadruped
  10. Arduino-joystick
  11. CNC-machine