ChibiOS/RT
ChibiOS / RT es un sistema operativo en tiempo real compacto y rápido que admite múltiples arquitecturas y se publica bajo una combinación de licencias GPL3 y Apache 2.0 (según el módulo). Está desarrollado por Giovanni Di Sirio.
ChibiOS/RT | ||
---|---|---|
Información general | ||
Tipo de programa | sistema operativo | |
Desarrollador | Giovanni Di Sirio | |
Modelo de desarrollo | Código abierto | |
Lanzamiento inicial | 2007 | |
Licencia | GPL3 o propietario | |
Estado actual | Estable | |
Información técnica | ||
Plataformas admitidas | Intel 80387, ARM7, ARM9, ARM Cortex-M0, ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-M7, PowerPC, e200z, Atmel AVR, TI MSP430, STM8, Freescale Coldfire, Renesas H8S | |
Versiones | ||
Última versión estable | 20.3.2 / 1 de agosto de 2020 () | |
Enlaces | ||
Las licencias comerciales están disponibles en ChibiOS . Los productos adicionales incluyen ChibiOS/HAL, una capa de abstracción de hardware compatible con ChibiOS/RT, y ChibiStudio, un entorno de desarrollo libre basado en Eclipse, GNU Compiler Collection y el módulo de depuración OpenOCD JTAG .
Métrica
editarChibiOS/RT está diseñado para aplicaciones integradas en microcontroladores de 8, 16 y 32 bits; el tamaño y la eficiencia de ejecución son los principales objetivos del proyecto.[1] Como referencia, el tamaño del kernel puede variar desde un mínimo de 1.2 KiB hasta un máximo de 5,5 KiB con todos los subsistemas activados en un procesador STM32 Cortex-M3 . El kernel es capaz de superar los 220.000 subprocesos creados/terminados por segundo y puede realizar un cambio de contexto en 1,2 microsegundos en un STM32 a 72 MHz. Se incluyen métricas similares para todas las plataformas compatibles en la distribución de origen como informes de prueba.
Características
editarEl microkernel ChibiOS/RT admite:
- Multi-hilo preventivo[2]
- 128 niveles de prioridad
- Programación por turnos para subprocesos en el mismo nivel de prioridad
- Temporizadores de software
- Contadores de semáforos
- Mutex con soporte para el algoritmo de herencia prioritaria
- Variables de condición
- Mensajes sincrónicos y asincrónicos
- Indicadores y controladores de eventos
- Colas
- E / S sincrónicas y asincrónicas con capacidad de tiempo de espera
- Hilo de seguridad con pila de memoria y el bloque de memoria asignadores.
- Capa de abstracción de hardware compatible con controladores ADC, CAN, GPT (temporizador de uso general), EXT, I²C, ICU, MAC, MMC / SD, PAL, PWM, RTC, SDC, Serial, SPI y USB .
- Soporte para pilas LwIP y uIP TCP / IP.
- Soporte para la biblioteca del sistema de archivos FatFs.
Todos los objetos del sistema, como hilos, semáforos, temporizadores, etc., se pueden crear y eliminar en tiempo de ejecución. No hay límite superior excepto para la memoria disponible. Para aumentar la fiabilidad del sistema, la arquitectura del kernel es completamente estática, no se requiere un asignador de memoria (pero está disponible como una opción) y no hay estructuras de datos con límites de tamaño superiores como tablas o pilas. Las API del sistema están diseñadas para no tener condiciones de error, como códigos de error o excepciones.
Los RTOS están diseñados para aplicaciones en dispositivos integrados e incluye aplicaciones de demostración para varios microcontroladores :
- ST STM32F1xx, STM32F2xx, STM32F3xx, STM32F4xx, STM32L1xx, STM32F0xx
- ST STM8S208x, STM8S105x, STM8L152x
- ST / Freescale SPC56x / MPC56xx
- NXP LPC11xx, LPC11Uxx, LPC13xx
- NXP LPC2148
- Atmel AT91SAM7S, AT91SAM7X
- Atmel Mega AVR
- TI MSP430x1611
- TI TM4C123G y TM4C1294
- Microchip PIC32MX
Los puertos contribuidos también están disponibles para las familias Coldfire y H8S .
ChibiOS/RT también ha sido portado a Raspberry Pi[3] y se han implementado los siguientes controladores de dispositivo: Puerto (GPIO), Serie, GPT (Temporizador de uso general), I2C, SPI y PWM.
Además es posible ejecutar el kernel en un proceso Win32 en un modo de emulación de E/S de software, lo que permite un fácil desarrollo de aplicaciones sin necesidad de hardware físico. Se incluye un ejemplo para el compilador MinGW .
uGFX
editarChibiOS/RT es totalmente compatible con el kit de herramientas GUI µGFX . µGFX se conocía anteriormente como ChibiOS/GFX.
Véase también
editarReferencias
editar- ↑ «ChibiOS/RT statistics on ohloh.net». Archivado desde el original el 14 de abril de 2014. Consultado el 30 de enero de 2010.
- ↑ «A detailed explanation of multithreading in ChibiOS/RT». Archivado desde el original el 23 de abril de 2018. Consultado el 10 de diciembre de 2020.
- ↑ Czwienczek (9 de abril de 2014). «Sistemas Operativos para Microcontroladores.: RTOS para Raspberry Pi». Sistemas Operativos para Microcontroladores. Consultado el 11 de enero de 2021.