🛠 Premier sketch sur le cœur M4 : le blink qui se flash par ADB

Arduino Portenta X8 · debutant · Schéma : IMG-portenta-x8-debutant-2-portenta-x8-premier-sketch-m4.svg — Arduino Portenta X8 avec le SoC STM32H747XI zoomé sur son cœur Cortex-M4 240 MHz, flèche de transfert USB-C vers la carte étiquée adb / upload Arduino, LED utilisateur clignotante, fenêtre Arduino IDE montrant le board Portenta X8 sélectionné

Objectifs

Programmer le côté Arduino de la X8 : c'est le Cortex-M4 du STM32H747XI (jusqu'à 240 MHz) que tu programmes depuis l'IDE Arduino, pendant que le Cortex-M7 du même SoC exécute le firmware bridge « normalement invisible » qui expose les périphériques du MCU à Linux. La grande différence avec une carte classique : le sketch est uploadé par ADB (upload.tool=adb, VID 0x2341 / PID 0x0061, slot applicatif 0x08100000–0x08200000), pas en série classique. Tu vas installer le core, flasher un blink et comprendre qui fait quoi des trois systèmes embarqués dans la carte.

Matériel

Code complet

// blink_m4.ino — coeur Cortex-M4 du STM32H747XI de la Portenta X8
// Carte : "Arduino Portenta X8" (arduino:mbed_portenta:portenta_x8)
// L'upload passe par ADB, pas par un port série classique.

#include "SerialRPC.h"   // optionnel : monitor série proxyfie vers Linux

int compteur = 0;

void setup {
  Serial.begin(115200);      // visible cote Linux via le service m4-proxy
  while (!Serial) {}
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.println("Portenta X8 - sketch M4 en vie");
}

void loop {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);
  delay(500);
  Serial.print("tick ");
  Serial.println(compteur++);
}

Vérification attendue

Dans l'IDE, l'upload affiche une progression via adb puis le sketch démarre : la LED clignote à 1 Hz. Le Serial de ce sketch n'est pas un port USB série classique — il est proxyfié vers Linux par le service m4-proxy (le tuto RPC t'apprendra à le lire depuis un conteneur). Garde la carte des yeux : si l'upload échoue, adb devices doit déjà répondre avant de toucher au code.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels