🛠 Zephyr RTOS sur le Nucleo STM32H743ZI : west build, flash et le piège des 96 MHz

STM32H7 Nucleo-144 (modèle phare : NUCLEO-H743ZI) · intermediaire · Schéma : IMG-stm32h7-nucleo-intermediaire-1-stm32h743zi-zephyr-rtos.svg — terminal affichant « west build -b nucleo_h743zi » et « west flash », flèche vers la Nucleo-144 STM32H743ZI avec sa LED LD1 allumée, câble USB vers l'ST-LINK/V2-1, horloge barrée annotée « 96 MHz par défaut », flat vector style, étiquettes en français, fond blanc.

Qué vas a construir

Zephyr trata nucleo_h743zi como una placa de primera categoría con su propia documentación de placa, y el flujo es el más limpio de cualquier pila de MCU en este hardware: west build, west flash, listo. Este tutorial compila y flashea el blinky de Zephyr, y luego profundiza en el hecho que afecta a todos: Zephyr arranca esta placa a 96 MHz por defecto, no a 480 MHz.

Requisitos previos

Paso 1 — Compilar y flashear

$ west build -b nucleo_h743zi samples/basic/blinky
$ west flash          # STM32CubeProgrammer runner (default)
# alternatives verified by the board doc:
$ west flash --runner openocd
$ west flash --runner jlink
$ west flash --runner pyocd

Paso 2 — La aplicación

/* blinky.c — LD0 alias maps to the board's user LED in the nucleo_h743zi tree. */
#include <zephyr/kernel.h>
#include <zephyr/drivers/gpio.h>

static const struct gpio_dt_spec led =
        GPIO_DT_SPEC_GET(DT_ALIAS(led0), gpios);

int main(void)
{
        if (!gpio_is_ready_dt(&led)) {
                return -1;
        }
        gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);

        while (1) {
                gpio_pin_toggle_dt(&led);   /* LD1 = PB0 in the default mapping */
                k_msleep(500);
        }
        return 0;
}

Paso 3 — Consola

La consola por defecto de Zephyr es UART3 (PD8/PD9) en el puerto COM virtual del ST-LINK a 115200 8N1 — la salida de hello_world aparece allí sin editar el árbol de dispositivos. El mapeo por defecto también te proporciona el botón USER PC13, LD1 PB0, LD2 PE1, LD3 PB14, I2C PB8/PB9, ADC1_INP15 PA3 y DAC1_OUT1 PA4.

Paso 4 — La trampa de los 96 MHz

Zephyr arranca la placa a un PLL de 96 MHz (desde el HSE de 8 MHz) por defecto, mientras que el núcleo STM32duino ejecuta el mismo silicio a 480 MHz SYSCLK. Consecuencias:

Resultado esperado

LD1 (PB0) parpadea cada 500 ms después de que west flash informe éxito; hello_world imprime en el VCP a 115200.

Errores comunes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales