El núcleo de Arduino para Zephyr RTOS llegó a la versión 1.0.0, según informó Open Electronics el 4 de octubre. Con esta versión se completa la salida del antiguo núcleo basado en MbedOS. El nuevo núcleo es la base para las placas Arduino actuales y las que vengan, y permite usar las funciones y APIs de Zephyr directamente desde el Arduino IDE, Arduino CLI y Arduino App Lab.
El proyecto se apoya en una arquitectura de dos componentes. El núcleo genera un archivo elf independiente que carga de forma dinámica un firmware Zephyr precompilado llamado loader (cargador). El cargador maneja la interacción entre los sketches y el sistema Zephyr que corre debajo. Después de instalar el bootloader la primera vez, el cargador automatiza la carga de cada sketch. La versión 0.90.0 ya había dejado completamente automática la instalación del cargador.
¿Cómo funciona el cargador?
El comportamiento del cargador se elige en el menú Mode del IDE. En el modo Standard carga el sketch de forma automática. En el modo Debug, en cambio, hay que escribir sketch en la consola de Zephyr para que arranque, lo que facilita la depuración. El diseño del cargador es genérico, y los cambios propios de cada placa se hacen en los archivos de overlay DTS o en los de fixup.
El núcleo está validado con la versión v0.16.8 del SDK de Zephyr. El desarrollo usa las herramientas estándar del ecosistema Zephyr, como west y sync-zephyr-artifacts. También depende de componentes como llext, el mecanismo de extensiones dinámicas, y zephyr-sketch-tool para compilar los sketches. Todo corre sobre ArduinoCore-API para mantener la compatibilidad con el ecosistema Arduino.
¿Qué se necesita para probarlo?
Para usar el núcleo Zephyr hace falta una placa compatible y un entorno de desarrollo al día. Los pasos principales son estos:
- Instalar Arduino IDE 2.x.x o Arduino CLI.
- Agregar el soporte de la placa desde el Board Manager.
- Instalar el núcleo Zephyr desde la versión 1.0.0.
- Configurar el modo del cargador en el menú Mode del IDE.
El repositorio de código del proyecto incluye todas las fuentes del cargador y del núcleo. La nueva placa Arduino UNO Q está entre los primeros equipos que usan esta arquitectura.
Qué cambia con Zephyr
Al separar el cargador del sketch, el sistema se actualiza con menos riesgo, porque el firmware de base y el programa del usuario van por caminos distintos. Usar Zephyr RTOS además abre la puerta a su pila de protocolos de comunicación y a la gestión de energía del sistema operativo, dos cosas que interesan a quien desarrolla aplicaciones IoT.
El cambio de MbedOS a Zephyr también tiene un motivo de mantenimiento. Zephyr es un RTOS de código abierto con una comunidad activa y un ciclo de versiones regular, lo que da soporte de largo plazo a las placas Arduino. La versión 1.0.0 del núcleo está validada con el SDK de Zephyr v0.16.8.
Fuente: github.com/arduino/ArduinoCore-zephyr](https://github.com/arduino/ArduinoCore-zephyr)




