🛠 Le core Zephyr : sketches ELF chargés à chaud via llext (fin du reflash complet)

Arduino Portenta H7 · avance · Schéma : IMG-portenta-h7-avance-2-portenta-h7-zephyr-llext.svg — architecture du core Zephyr sur Portenta H7 : loader Zephyr précompilé en bas, sketch compilé en ELF chargé dynamiquement par llext au-dessus, flèche d'upload sans reset, terminal Zephyr shell affichant la commande sketch

Objetivos

El core ArduinoCore-zephyr está llamado a reemplazar al core Mbed en todos los dispositivos que soporta, incluida la Portenta H7. Su idea: un cargador Zephyr precompilado permanece en la placa, y tu sketch —compilado como un ELF autónomo— es cargado en caliente mediante llext, sin reflash completo ni reinicio. Desde la versión 0.90.0 del core, el cargador se instala automáticamente en la primera subida. Vas a instalar el core, comprender el modelo de carga y utilizar el shell de Zephyr en modo Debug para diagnosticar fallos de carga.

Material

Código completo

// zephyr_blink.ino — API Arduino standard sur Zephyr RTOS
// 1. Installe "Arduino Zephyr Boards" dans le Board Manager
// 2. Choisis Portenta H7 ; le premier upload installe le loader
//    automatiquement (core >= 0.90.0, cible arduino_portenta_h7//m7)
// 3. Les uploads suivants chargent le sketch sans reset complet.
#include <Arduino.h>

void setup {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(200);
  digitalWrite(LED_BUILTIN, LOW);
  delay(800);
}
// Astuce du README : compiler en mode Debug pour obtenir le Zephyr
// shell sur la serie par defaut, puis la commande `sketch` lit les
// erreurs de chargement llext.

Verificación esperada

Tras la primera subida (instalación del cargador), las siguientes son casi instantáneas en la placa: el sketch arranca sin el ciclo completo de reflash. En modo Debug, el shell de Zephyr responde por el puerto serie y el comando sketch muestra el estado del ELF cargado —la herramienta de diagnóstico n.º 1 cuando nada arranca. La compilación previa del cargador se realiza con ./extra/build.sh portentah7 (objetivo arduino_portenta_h7//m7).

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales