Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Débogage du système bi-cœur Arduino Portenta H7 avec Segger J-Link

Composants et fournitures

ComposantQuantité
Arduino Portenta H71
Carte d'extension Portenta H7 Breakout Board1
Sonde de débogage Segger J-Link1
Adaptateur Cortex M Segger1

Applications et services en ligne

Présentation du projet

L'Arduino Portenta H7 offre une puissante architecture bi-cœur : un Cortex-M7 à 480 MHz et un Cortex-M4 à 240 MHz. Les deux cœurs peuvent exécuter des firmwares indépendants et communiquer via la mémoire partagée ou des sémaphores.

Le débogage simultané des deux cœurs nécessite une interface SWD dédiée et un débogueur prenant en charge les sessions multi-cibles. Ce guide montre comment utiliser un Segger J-Link pour se connecter à chaque cœur, configurer l'environnement de développement et exécuter un exemple simple de clignotement démontrant le contrôle indépendant de la LED de chaque cœur.

Configuration matérielle

  1. Montez la Portenta H7 sur sa carte d'extension (breakout board). La carte expose un connecteur 20 broches de style MIPS qui se connecte aux broches SWD des deux cœurs.
  2. Fixez un convertisseur 20 broches MIPS sur l'en-tête de la carte d'extension pour séparer les signaux de débogage.
  3. Câblez le convertisseur vers le Segger J-Link selon le diagramme de brochage ci-dessous. Si vous préférez une solution personnalisée, utilisez des connecteurs au pas de 0,05 pouce et suivez le câblage d'exemple montré sur la seconde image.
Débogage du système bi-cœur Arduino Portenta H7 avec Segger J-Link
Débogage du système bi-cœur Arduino Portenta H7 avec Segger J-Link

Configuration logicielle

  1. Installez Arduino IDE (téléchargeable sur le site Arduino).
  2. Installez Microsoft Visual Studio (2017, 2019 ou 2022) et l'extension Visual Micro (instructions complètes sur le site Visual Micro).
  3. Ajoutez le package Arduino Mbed OS Portenta Boards via l'explorateur Visual Micro ou le gestionnaire de cartes dans l'Arduino IDE.
  4. Remplacez le pilote USB de l'interface 0 du Segger J-Link par le pilote WinUSB en utilisant Zadig. Une vidéo de démonstration courte est liée ci-dessous.

Passons au code

Préparez deux projets distincts, un pour chaque cœur. Les exemples Blink suivants allument une LED différente sur chaque cœur et peuvent être débogués indépendamment.

Important : Dans le projet M7, appelez bootM4() au début de setup() pour vous assurer que les deux cœurs sont actifs.

Configuration du débogage : Cœur M7

Ouvrez le sketch M7 dans Visual Studio, allez dans Déboguer > Matériel et sélectionnez Segger J-Link Debugger (pas la version NoOpenOCD). Compilez et téléversez le sketch sur le cœur M7.

Débogage du système bi-cœur Arduino Portenta H7 avec Segger J-Link

Configuration du débogage : Cœur M4

Ouvrez le sketch M4, choisissez Déboguer > Matériel, et sélectionnez Segger J-Link Debugger (NoOpenOCD). Compilez et téléversez sur le cœur M4.

Démarrer le débogueur

Lancez d'abord une session de débogage pour le sketch M7 en utilisant Déboguer > Attacher au processus. Répétez la même étape pour le sketch M4. Vous pouvez maintenant définir des points d'arrêt dans l'un ou l'autre projet, mettre en pause, exécuter pas à pas ou continuer indépendamment – chaque cœur répond à ses propres commandes.

Débogage du système bi-cœur Arduino Portenta H7 avec Segger J-Link

Vidéo de démonstration

Regardez une démonstration pas à pas sur YouTube :

Débogage Portenta H7 bi-cœur avec Segger J-Link

Liens utiles

Code

Code Blink H7 M4 (Cœur M4)

// Clignotement sur le cœur M4 de la Portenta
void setup() {
  pinMode(LED_BLUE, OUTPUT);
}
void loop() {
  digitalWrite(LED_BLUE, HIGH);
  delay(1000);
  digitalWrite(LED_BLUE, LOW);
  delay(1000);
}

Code Blink H7 M7 (Cœur M7)

// Clignotement sur le cœur M7 de la Portenta
void setup() {
  bootM4(); // Activer le cœur M4
  pinMode(LED_RED, OUTPUT);
}
void loop() {
  digitalWrite(LED_RED, HIGH);
  delay(1000);
  digitalWrite(LED_RED, LOW);
  delay(1000);
}

Schémas

Comment connecter les broches SWD sur la Breakout Board au Segger J-Link :

Débogage du système bi-cœur Arduino Portenta H7 avec Segger J-Link

Processus de fabrication

  1. Arduino lance Portenta H7 : Carte IoT grade industriel débute au CES
  2. Construire un Spybot Arduino piloté par Bluetooth
  3. FlickMote : Télécommande IR à gestes pour maison connectée
  4. TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
  5. Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
  6. Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
  7. Solutions d'alimentation optimisées pour projets Arduino
  8. Morpion sur matrice LED MAX7219 avec boîtier en carton
  9. Construire un robot quadrupède Arduino intelligent : guide étape par étape