🛠 Migrer un projet mbed Nucleo-F4 en 2026 : Mbed CE, Zephyr ou CubeIDE

Famille STM32 Nucleo-64 F4 — modelo insignia: Nucleo-F401RE · avance · Schéma : IMG-stm32f4-nucleo-avance-9-stm32f4nuc-migration-projets-mbed-2026.svg — un projet mbed marqué plateforme fermée en juillet 2026 se divise en trois chemins maintenus : Mbed CE, Zephyr RTOS et STM32CubeIDE

Objetivos

Tú (o un tutorial que estés siguiendo) creaste un proyecto Nucleo-F4 en la plataforma en línea mbed. Esa plataforma ya no existe: los servicios en línea de mbed fueron descontinuados en julio de 2026 y Mbed OS ya no es mantenido activamente por Arm. Este tutorial mapea las opciones de migración — Mbed CE, Zephyr, STM32CubeF4/CubeIDE — y porta un clásico blinky de mbed a cada destino.

Por qué esto es importante

La línea Nucleo se lanzó en febrero de 2014 con el soporte del IDE mbed como una característica destacada (ST se unió a mbed en diciembre de 2013). Una década de tutoriales de Nucleo, código de ejemplo y publicaciones en blogs asumen la existencia del sitio web de mbed. Nada de eso funciona como está escrito actualmente.

Opción A — Mbed CE (cambios mínimos)

El fork comunitario mbed-ce/mbed-os (github.com/mbed-ce/mbed-os) continúa con Mbed OS. Tu código DigitalOut/Serial sobrevive; la cadena de herramientas pasa del sitio web inactivo a mbed CLI y compilaciones locales.

// mbed CE — compiles essentially unchanged from the old online project
#include "mbed.h"

DigitalOut led(LED1);        // LED1 = LD2 = PA5 on Nucleo boards
int main {
    while (true) {
        led = !led;
        This::wait(500ms);
    }
}

Opción B — Zephyr (placa integrada, soporte a largo plazo)

nucleo_f401re es una placa Zephyr integrada en el árbol de fuentes. El DigitalOut led(LED1) de mbed se convierte en una búsqueda de alias en el árbol de dispositivos:

#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) {
    gpio_pin_configure_dt(&led, GPIO_OUTPUT_INACTIVE);
    while (1) { gpio_pin_toggle_dt(&led); k_msleep(500); }
}

Compilación: west build -b nucleo_f401re <app>; flasheo: west flash (el ejecutor STM32CubeProgrammer es el predeterminado, OpenOCD o J-Link también funcionan a través del ST-LINK integrado).

Opción C — STM32CubeF4 / CubeIDE

El paquete de ST incluye proyectos para el STM32F401RE-Nucleo; clona con --recursive y regenera la configuración de pines en CubeMX. Este es también el camino si necesitas el middleware con licencia (STemWin, TouchGFX, STM32_Audio) — disponible mediante clic, solo desde st.com con una cuenta.

Lista de verificación de migración

  1. Exporta y archiva el código fuente del proyecto antiguo antes de que más enlaces se rompan.
  2. Reemplaza el manejo de tiempos: Ticker/Timeout de mbed → k_work_delayable/hilos de Zephyr, o temporizadores HAL.
  3. Reemplaza Serial pc(USBTX, USBRX) → USART2 en PA2/PA3, el VCP del ST-LINK (el núcleo de Arduino lo llama simplemente Serial).
  4. Vuelve a verificar el presupuesto de memoria por variante: el F401RE tiene 512 KB de flash / 96 KB de SRAM, pero el F410RB solo 128 KB / 32 KB — un binario que cabía en el F401 puede no caber en su hermano menor.

Resultado esperado

El mismo latido de LD2 en una cadena de herramientas mantenida, con un mapeo escrito para cada API de mbed que tu proyecto utilizaba.

Errores comunes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales