Desde Linux Darkcrizt  

RT-Thread, un OS en tiempo real para dispositivos IoT

RT-Thread

RT-Thread es un sistema operativo en tiempo real (RTOS) de código abierto, neutral y basado en la comunidad.

Hace poco se dio a conocer el lanzamiento de la nueva versión del sistema operativo «RT-Thread 5.0», el cual se posiciona como un OS en tiempo real (RTOS) para dispositivos IoT.

El sistema ha sido desarrollado desde 2006 por una comunidad de desarrolladores chinos y actualmente está portado a casi 200 placas, chips y microcontroladores basados ​​en arquitecturas x86, ARM, MIPS, C-SKY, Xtensa, ARC y RISC-V.

La versión minimalista de RT-Thread (Nano) requiere solo 3 KB de Flash y 1,2 KB de RAM para ejecutarse. Para dispositivos IoT que no están muy limitados en recursos, se ofrece una versión completa que admite administración de paquetes, configuradores, pila de red, paquetes con la implementación de una interfaz gráfica, sistema de control de voz, DBMS, servicios de red y motores para ejecutar guiones.

Características de RT-Thread

El sistema operativo consta de tres capas básicas:

  1. Un kernel que realiza tareas en tiempo real. El núcleo proporciona primitivas básicas genéricas que cubren áreas como la gestión de bloqueo y sincronización de datos, la programación de tareas, la gestión de subprocesos, la gestión de señales, la cola de mensajes, la gestión de temporizadores y la gestión de memoria. Las características específicas del hardware se implementan a nivel de libcpu y BSP, que incluyen los controladores y el código necesarios para admitir la CPU.
  2. Componentes y servicios que se ejecutan sobre el kernel y ofrecen abstracciones como sistema de archivos virtual, sistema de manejo de excepciones, almacenamiento de clave/valor, interfaz de línea de comando FinSH, pila de red (LwIP) y marcos de trabajo de red, bibliotecas para soporte de dispositivos, subsistema de sonido, pila inalámbrica, componentes compatibles con Wi-Fi, LoRa, Bluetooth, 2G/4G. La arquitectura modular le permite conectar componentes y servicios según sus tareas y los recursos de hardware disponibles.
  3. Paquetes de programas. Los componentes de software de uso general y las bibliotecas de funciones se distribuyen e instalan en forma de paquetes.
    El repositorio actualmente incluye más de 450 paquetes que van desde GUI, aplicaciones multimedia y aplicaciones de red hasta sistemas de control de robots y procesadores de aprendizaje automático.

RT-Thread cuenta con una arquitectura modular extensible que permite crear un entorno adecuado para sistemas con recursos limitados (requisitos mínimos: 3 KB de Flash y 1,2 KB de RAM), ademas de tambien contar con compatibilidad con varias interfaces estándar para el desarrollo de programas, como POSIX, CMSIS, C++ API. Por separado, la capa RTduino se está desarrollando para que sea compatible con la API y las bibliotecas del proyecto Arduino.

Otra de las características que se destaca es el sistema de administración de energía flexible que automáticamente pone el dispositivo en modo de suspensión y administra dinámicamente el voltaje y la frecuencia dependiendo de la carga.

Tambien cuenta con el soporte de hardware para cifrado y descifrado, proporcionando bibliotecas con varios algoritmos criptográficos.

Ademas de ello, tambien cuenta con un sistema de envío e instalación remota de actualizaciones que admite cifrado y verificación mediante firma digital, reanudación de una instalación interrumpida, recuperación ante un fallo, reversión de cambios, etc.

Asi como tambien con un sistema de módulos del kernel cargables dinámicamente que le permite crear y desarrollar componentes del kernel por separado y cargarlos dinámicamente cuando sea necesario.

De las demás características que se destacan:

  • Soporte para varios paquetes de terceros como Yaffs2, SQLite, FreeModbus, Canopen, etc.
  • Compatibilidad con compiladores comunes y herramientas de desarrollo como GCC, MDK Keil e IAR.
  • Desarrollo de un entorno de desarrollo integrado RT-Thread Studio IDE, que permite crear y depurar aplicaciones, cargarlas en tableros y administrar configuraciones. Los complementos de desarrollo RT-Thread también están disponibles para Eclipse y VS Code.
  • La presencia de la interfaz de la consola Env, que simplifica la creación de proyectos y la configuración del entorno.
  • La capacidad de compilar directamente un paquete BSP
  • Ampliable a través de un sistema de paquetes y complementos.
  • Interfaz unificada para el acceso a dispositivos periféricos y equipos adicionales.
  • Soporte para el desarrollo de una aplicación para el procesamiento de información de alto rendimiento.
  • FS virtual y disponibilidad de controladores para FS

Sobre RT-Thread 5.0

Por la parte de las nuevas funciones agregadas en la versión 5.0, se puede notar una mejora significativa en el soporte para sistemas multinúcleo y multiproceso (por ejemplo, la pila de red y los sistemas de archivos están adaptados para funcionar en modo multiproceso.

Otra de las novedades es el programador se divide en opciones para sistemas de un solo núcleo y SMP, asi como tambien la implementación agregada de TLS (Thread Local Storage).

Ademas de ello, tambien se destaca el soporte mejorado para chips Cortex-A, compatibilidad significativamente mejorada para sistemas de 64 bits (sistemas de archivos y pilas TCP/IP verificados para sistemas de 64 bits) y los componentes integrados de gestión de memoria Flash, asi como tambien que se han rediseñado las herramientas para la creación de controladores.

Para los interesados en este sistema, deben saber que el código está escrito en lenguaje C y distribuido bajo la licencia Apache 2.0.

Puedes consultar más detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.