Lanzamiento de Zephyr 3.4

Zephyr 3.4 ya está disponible . Project Zephyr es un sistema operativo escalable en tiempo real (RTOS) que admite múltiples arquitecturas de hardware, está optimizado para dispositivos con recursos limitados y está diseñado teniendo en cuenta la seguridad. Zephyr OS se basa en un kernel pequeño diseñado para sistemas con recursos limitados: desde simples sensores ambientales integrados y dispositivos portátiles LED hasta relojes inteligentes complejos y puertas de enlace inalámbricas IoT.

Según el anuncio, esta versión demuestra el uso generalizado de Zephyr en varios tipos de aplicaciones. Por ejemplo, cada vez más empresas utilizan Zephyr para crear controladores integrados (aplicaciones impulsadas por microcontroladores que permiten que las computadoras manejen tareas del sistema de bajo nivel) y algunas mejoras en la nueva versión 3.4 pueden ayudar a simplificar el desarrollo en esta área: como Soporte agregado para nuevas API y controladores para unidades NVMe, periféricos SMBus y relojes en tiempo real.

Zephyr 3.4 también presenta varias mejoras en su marco de prueba integrado (Twister), lo que permite escribir casos de prueba más completos que en versiones anteriores. Ahora, los desarrolladores pueden usar marcos de prueba de terceros populares, como pyTest, GoogleTest y RobotFramework, para escribir casos de prueba de extremo a extremo que se ejecutan en hardware real o emulado y pueden conectarse, por ejemplo, a servidores IoT para realizar pruebas. .

Añadido soporte periférico

Pantalla de texto auxiliar

Las pantallas secundarias son pantallas basadas en texto que muestran texto, números o alfanuméricos con una interfaz simple. Por lo general, querrá interactuar con estas pantallas enviando caracteres, no píxeles. La nueva  API de visualización de texto auxiliar  puede llevarlo allí. Ya existen controladores para pantallas secundarias comunes (de Hitachi, Noritake, Jinghua, etc.). El código de muestra se puede encontrar aquí .

disco NVMe

NVMe (interfaz de acceso rápido de memoria no volátil Express de memoria no volátil) es un protocolo de almacenamiento de alto rendimiento diseñado para memoria flash NAND (como: SSD de unidad de estado sólido, tarjeta M.2, etc.).

Los controladores y discos NVMe son compatibles desde la versión 3.4 y están completamente integrados con Devicetree para la configuración y personalización.

Reloj en tiempo real

Un reloj en tiempo real es un dispositivo de bajo consumo, generalmente alimentado por batería, que realiza un seguimiento del tiempo en tiempo real, y el RTC continúa funcionando cuando el sistema principal está apagado. Zephyr 3.4  agrega soporte para RTC  , proporcionando una forma consistente e independiente del hardware para interactuar con ellos.

Además de las interacciones básicas para obtener o configurar el reloj, la API también admite configurar una alarma o calibrar el reloj, si estas funciones son compatibles con el hardware subyacente. Los controladores ya están disponibles para chips RTC populares como NXP PCF8523 y Motorola MC146818.

memoria retenida

La nueva API de memoria retenida permite que las aplicaciones lean y escriban datos en ciertas áreas de memoria reservadas (por ejemplo, porciones no inicializadas de RAM) o en dispositivos que retienen información cuando se inicia el dispositivo. Estas API son útiles cuando no se desea utilizar almacenamiento no volátil, por ejemplo, para compartir información entre diferentes aplicaciones o dentro de una sola aplicación, o para no perder información de estado después de reiniciar el dispositivo es una buena opción.

SMBus

SMBus (System Management Bus System Management Bus) es un bus de dos hilos derivado de I²C. A menudo se utiliza para la comunicación entre placas base y dispositivos de bajo ancho de banda, como obtener información de sensores de temperatura, indicadores de carga de batería, etc.

A partir de Zephyr 3.4, el nuevo subsistema SMBus permite a los desarrolladores manipular controladores y dispositivos SMBus dentro de sus aplicaciones.

subsistema de entrada

El subsistema de entrada permite que los dispositivos de entrada envíen eventos de entrada a las aplicaciones a través de la API

Proporciona una abstracción de mayor nivel para manejar eventos de entrada como tecla/botón presionado, pantalla táctil presionada, etc. Esto desacopla la GUI de la entrada de hardware subyacente, lo que facilita el desarrollo de la GUI.

Este nuevo subsistema también brinda una gran oportunidad para que los desarrolladores investiguen cómo se puede usar el marco de trabajo de la máquina de estado integrado de Zephyr para manejar escenarios de interacción más complejos.

subsistema de área de memoria reservada

Para complementar la compatibilidad con las zonas de memoria reservada , se ha integrado un nuevo subsistema de zona de memoria reservada con el árbol de dispositivos, lo que facilita la configuración y personalización de cómo se conservan los datos, incluida la creación de múltiples particiones, la verificación de la integridad de los datos a través de sumas de verificación o el manejo de dispositivos Casos especiales para reiniciar, como hacer que ejecute una aplicación diferente.

Mejoras en el marco de prueba de Twister

Twister, el propio marco de prueba de Zephyr, se usa ampliamente internamente (dogfooding) para garantizar que Zephyr se pruebe por completo. De hecho, por cada solicitud de extracción enviada al repositorio de Zephyr (suponiendo que haya cambios en el código), nuestra tarea de CI activa Twister y ejecuta miles de pruebas unitarias.

Zephyr 3.4 agrega muchas mejoras a Twister, lo que lo hace más adecuado para pruebas funcionales complejas e integrales. Los desarrolladores ahora pueden usar marcos de prueba de terceros populares como pyTest, GoogleTest y RobotFramework para escribir pruebas que se ejecutan en hardware real o simulado y pueden conectarse a redes como servidores IoT.

Actualización del SDK de Zephyr

Se recomienda actualizar a la última versión de Zephyr SDK (0.16.1) . Una de las principales ventajas de Zephyr SDK es que le brinda acceso único a todas las cadenas de herramientas y herramientas de host, lo cual es muy conveniente para su desarrollo diario de Zephyr.

El tamaño del SDK ha crecido a lo largo de los años, y esta última versión se ha reducido en tamaño, ya que ahora usa tar.xz (Linux/macOS) y 7zip (Windows) para empaquetar en lugar de los anteriores .tar.gz y .zip. la mitad (por lo que la velocidad de descarga se vuelve 2 veces más rápida ).

fragmentos

Los " fragmentos " recién agregados ayudan a simplificar todas las configuraciones comunes (por ejemplo, archivos de configuración, superposiciones de Devicetree) que pueden necesitar reutilizarse en varios proyectos.

Un escenario de uso típico es empaquetar todas sus opciones de depuración favoritas (por ejemplo, habilitar shell, niveles de registro personalizados, etc.) en un fragmento para que pueda detectar fácilmente las aplicaciones que deben solucionarse y también cambiar los niveles definidos por hardware (por ejemplo, para habilitar carcasa Zephyr a través de la interfaz USB).

Aquí hay otras introducciones de API dignas de mención

Barreras de memoria

Se ha introducido una nueva API para barreras de memoria de datos . Las barreras de datos son esencialmente una forma de decirle amablemente a su procesador: "Oye, sé que te gusta reordenar las tareas para que sean eficientes, pero estas operaciones de memoria específicas deben ocurrir en el orden exacto que les di". Esto es especialmente útil en escenarios de multiprocesador simétrico (SMP), pero también puede ser necesario en aplicaciones de subprocesos múltiples o al acceder al hardware de forma asíncrona.

La nueva API de barrera proporciona una forma más consistente de implementar vallas de sincronización en todas las arquitecturas de procesador.

Nuevas funciones en Bluetooth 5.4 (¡pero no solo en Bluetooth 5.4!)

La versión 5.4 de Bluetooth Core Specification se lanzó el 7 de febrero de este año, y esta nueva versión de Zephyr ya es compatible con todas las características nuevas de esta versión estándar, a saber:

  • Datos publicitarios cifrados (EAD) , que permite que los datos se anuncien de forma segura en los paquetes publicitarios de Bluetooth LE;
  • Publicidad periódica con respuestas (PAwR) , una función que permite que los dispositivos Bluetooth de baja energía se comuniquen de manera eficiente y bidireccional en topologías masivas de uno a muchos. Combinado con EAD, esto podría ser muy útil para aplicaciones tales como etiquetas electrónicas para estantes;

Otros cambios notables en Bluetooth incluyen soporte para:

  • unidifusión de perfil de audio común (CAP) ;
  • Perfil de audio de medios y telefonía (TMAP) : Bluetooth es especialmente popular para todo lo relacionado con la telefonía, por lo que es bueno ver que se ha agregado la compatibilidad inicial con el perfil de audio de medios y telefonía (TMAP) de Bluetooth LE;
  • Malla  : se agregó soporte para los últimos borradores de trabajo de Mesh 1.1, Mesh Binary Large Object Transfer Mode 1.0 y Mesh Device Firmware Update Model 1.0 Experimental support.

Nuevo controlador y placa de desarrollo

  • En comparación con la versión anterior, admite más de 30 placas de desarrollo nuevas , incluidas Arduino GIGA R1 WiFi, Wio Terminal de Seeed Studio y XIAO BLE, kit de desarrollo ESP32-S3, etc.
  • Con la adición de controladores para docenas de sensores (sensores ambientales, unidades de medición de inercia, sensores de corriente, etc.), Zephyr ahora no solo admite de forma nativa más de 150 sensores, sino que a menudo está estrechamente integrado con la pila de Zephyr, por ejemplo, aprovechando su administración de energía. capacidades.

Consulte el anuncio de actualización para obtener más información .

Supongo que te gusta

Origin www.oschina.net/news/246229/zephyr-3-4-released
Recomendado
Clasificación