FreeRTOS es un núcleo de sistema operativo en tiempo real [3] [4] [5] para dispositivos embebidos que ha sido portado a 35 plataformas de microcontroladores . Se distribuye bajo la licencia MIT .
Desarrollador | Real Time Engineers Ltd. |
---|---|
Escrito en | C |
Familia OS | Sistemas operativos en tiempo real |
Estado de trabajo | Actual |
Modelo fuente | Fuente abierta |
Último lanzamiento | 10.4.3 [1] / 2020-12-14 |
Repositorio | |
Objetivo de marketing | Dispositivos integrados |
Plataformas | ARM (ARM7, ARM9, Cortex-M3 , Cortex-M4 , Cortex-M7 , Cortex-A , Cortex-R4 ), Atmel AVR , AVR32 , HCS12 , MicroBlaze , Cortus (APS1, APS3, APS3R, APS5, FPF3, FPS6, FPS8), MSP430 , PIC , Renesas H8 / S , SuperH , RX, x86 , 8052 , Coldfire , V850 , 78K0R, serie Fujitsu MB91460, serie Fujitsu MB96340, Nios II , TMS570, RM4x, Espressif ESP32,RISC-V |
Tipo de grano | Microkernel |
Licencia | MIT [2] |
Página web oficial | www |
Historia
El kernel FreeRTOS fue desarrollado originalmente por Richard Barry alrededor de 2003, y luego fue desarrollado y mantenido por la compañía de Barry, Real Time Engineers Ltd. En 2017, Real Time Engineers Ltd. pasó la administración del proyecto FreeRTOS a Amazon Web Services . Barry continúa trabajando en FreeRTOS como parte de un equipo de AWS. [6]
Implementación
FreeRTOS está diseñado para ser pequeño y simple. El núcleo en sí consta de solo tres archivos C. Para hacer que el código sea legible, fácil de portar y de mantener, está escrito principalmente en C , pero hay algunas funciones de ensamblaje incluidas donde sea necesario (principalmente en rutinas de programador específicas de la arquitectura).
FreeRTOS proporciona métodos para múltiples subprocesos o tareas , mutex , semáforos y temporizadores de software . Se proporciona un modo sin tick para aplicaciones de baja potencia. Se admiten las prioridades de subprocesos. Las aplicaciones FreeRTOS pueden asignarse completamente estáticamente. Alternativamente, los objetos RTOS se pueden asignar dinámicamente con cinco esquemas de asignación de memoria proporcionados:
- asignar solo;
- asignar y liberar con un algoritmo muy simple y rápido;
- un algoritmo más complejo pero rápido de asignación y libre con coalescencia de memoria ;
- una alternativa al esquema más complejo que incluye la fusión de la memoria que permite dividir un montón en múltiples áreas de memoria.
- y la biblioteca C asignan y liberan con cierta protección de exclusión mutua.
No hay ninguna de las características más avanzadas que se encuentran típicamente en sistemas operativos como Linux o Microsoft Windows , como controladores de dispositivos , administración avanzada de memoria , cuentas de usuario y redes. El énfasis está en la compacidad y la velocidad de ejecución. FreeRTOS se puede considerar como una 'biblioteca de subprocesos' en lugar de un 'sistema operativo', aunque la interfaz de línea de comandos y los complementos de abstracción de E / S similares a POSIX están disponibles.
FreeRTOS implementa varios subprocesos haciendo que el programa anfitrión llame a un método de tick de subprocesos a intervalos cortos y regulares. El método de tick de subprocesos cambia las tareas según la prioridad y un esquema de programación por turnos. El intervalo habitual es de 1 a 10 milisegundos (1/1000 a 1/100 de segundo), a través de una interrupción de un temporizador de hardware, pero este intervalo a menudo se cambia para adaptarse a una aplicación en particular.
La descarga contiene configuraciones y demostraciones preparadas para cada puerto y compilador, lo que permite un diseño rápido de la aplicación. El sitio FreeRTOS.org también contiene mucha documentación y tutoriales de RTOS (manuales y tutoriales adicionales están disponibles por una tarifa), así como detalles del diseño de RTOS.
Caracteristicas clave
- Libros y manuales de referencia.
- Huella de memoria reducida, gastos generales reducidos y ejecución rápida.
- Opción sin tick para aplicaciones de baja potencia.
- Destinado tanto a aficionados como a desarrolladores profesionales que trabajan en productos comerciales.
- El programador se puede configurar para operaciones preventivas o cooperativas.
- Soporte de corrutinas (las corrutinas en FreeRTOS son tareas simples y livianas con un uso limitado de la pila de llamadas )
- Soporte de rastreo a través de macros de rastreo genéricas. Herramientas como Tracealyzer de Percepio, socio de FreeRTOS, pueden registrar y visualizar el comportamiento en tiempo de ejecución de los sistemas basados en FreeRTOS para la depuración y verificación. Esto incluye la programación de tareas y las llamadas al kernel para operaciones de semáforo y cola. Tracealyzer es una herramienta comercial.
Arquitecturas compatibles
- Altera Nios II
- Arquitectura ARM
- ARM7
- ARM9
- BRAZO Cortex-M
- ARM Cortex-A
- Atmel
- Atmel AVR
- AVR32
- SAM3 / SAM4
- SAM7 / SAM9
- SAMD20 / SAML21
- CEVA
- CEVA-BXx
- SensPro
- CEVA-XC16
- CEVA-XM6
- CEVA-Xx
- CEVA-XM4
- Cortus
- APS1
- APS3
- APS3R
- APS5
- FPS6
- FPS8
- Ciprés
- PSoC
- Energía Micro
- EFM32
- eSi-RISC
- eSi-16x0
- eSi-32x0
- Grupo DSP
- DBMD7
- Espressif
- ESP8266ex
- ESP32
- Fujitsu
- FM3
- MB91460
- MB96340
- Freescale
- Coldfire V1 / V2
- HCS12
- Kinetis
- IBM
- PPC404 / PPC405
- Infineon
- TriCore
- Infineon XMC4000
- Intel
- x86
- 8052
- Tecnología de microchip
- PIC18 / PIC24 / dsPIC
- PIC32
- Microsemi
- SmartFusion
- Multicálculo
- Multiclet P1
- NXP
- LPC1000
- LPC2000
- LPC4300
- Renesas
- 78K0R
- RL78
- H8 / S
- RX600
- RX200
- SuperH
- V850
- RISC-V [7]
- RV32I
- RV64I
- PULP RI5CY
- Laboratorios de silicio
- Gecko (ARM Cortex)
- STMicroelectronics
- STM32
- STR7
- Instrumentos Texas
- MSP430
- Stellaris
- Hércules (TMS570LS04 y RM42)
- Xilinx
- MicroBlaze
- Zynq-7000
Derivaciones
Amazon FreeRTOS
Amazon proporciona una extensión de FreeRTOS, conocida como : FreeRTOS . Este es FreeRTOS con bibliotecas para soporte IOT , específicamente para Amazon Web Services . Desde la versión 10.0.0 en 2017, Amazon ha asumido la administración del código FreeRTOS, incluidas las actualizaciones del kernel original. [8] [9] [10]
SEGUROS
SAFERTOS se desarrolló como una versión complementaria de FreeRTOS, con una funcionalidad común pero diseñada específicamente para una implementación crítica para la seguridad. FreeRTOS se sometió a HAZOP y se identificaron y resolvieron las debilidades. El resultado se sometió a un ciclo de vida completo de desarrollo IEC 61508 SIL 3, el nivel más alto para un componente de solo software.
SAFERTOS fue desarrollado por WITTENSTEIN High Integrity Systems, en asociación con Real Time Engineers Ltd, desarrollador principal [3] del proyecto FreeRTOS. [11] Tanto SAFERTOS como FreeRTOS comparten el mismo algoritmo de programación, tienen API similares y, por lo demás, son muy similares, [12] pero se desarrollaron con objetivos diferentes. [13] SAFERTOS se desarrolló únicamente en el lenguaje C para cumplir con los requisitos de certificación de IEC61508. [14]
SAFERTOS puede residir únicamente en la memoria de solo lectura en el chip de un microcontrolador para cumplir con los estándares. [15] Cuando se implementa en la memoria del hardware, el código SAFERTOS solo se puede utilizar en su configuración original, ya certificada. Esto significa que la certificación de sistemas no necesita volver a probar la parte del núcleo de sus diseños. [16] SAFERTOS está incluido en la ROM de algunos microcontroladores Stellaris [17] de Texas Instruments. El código fuente de SAFERTOS no necesita comprarse por separado. En este escenario de uso, se utiliza un archivo de encabezado C para asignar las funciones de la API de SAFERTOS a su ubicación en la memoria de solo lectura.
OPENRTOS
OPENRTOS es una versión con licencia comercial de Amazon FreeRTOS, vendida por WITTENSTEIN High Integrity Systems. Este producto proporciona soporte y permite a las empresas utilizar el kernel y las bibliotecas de Amazon FreeRTOS sin la licencia a: FreeRTOS MIT. [18] [19]
Ver también
- Sistema operativo integrado
Referencias
- ^ "www.freertos.org/History.txt" . 2020-12-14.
- ^ "Licencias de código abierto FreeRTOS" . 2017-12-22.
- ^ a b "Estudio de mercado embebido 2011" . EE Times. Archivado desde el original el 2 de abril de 2012.
- ^ Kolesnik, Sergey (8 de diciembre de 2013). "Comparación de sistemas operativos de microcontroladores en tiempo real" .
Un kernel no es un RTOS, pero esto puede ser un problema confuso debido a la nomenclatura inapropiada elegida para algunos kernel populares, 'freeRTOS' por ejemplo.
- ^ "¿Por qué RTOS y qué es RTOS?" . Consultado el 29 de agosto de 2014 .
¿Qué es FreeRTOS? … Las limitaciones de tamaño y la naturaleza de la aplicación final dedicada rara vez justifican el uso de una implementación completa de RTOS o, de hecho, hacen posible el uso de una implementación completa de RTOS. Por lo tanto, FreeRTOS proporciona la funcionalidad central de programación en tiempo real, comunicación entre tareas, primitivas de sincronización y temporización únicamente. Esto significa que se describe con mayor precisión como un kernel en tiempo real o ejecutivo en tiempo real. ...
- ^ http://www.openrtos.net/RTOS.html
- ^ "Uso de FreeRTOS en microcontroladores RISC-V" . FreeRTOS . Consultado el 11 de septiembre de 2019 .
- ^ "Amazon FreeRTOS" . Amazonas . Consultado el 28 de noviembre de 2018 .
- ^ "Preguntas frecuentes: Amazon FreeRTOS" . FreeRTOS . Consultado el 28 de noviembre de 2018 .
- ^ "Amazon FreeRTOS es un nuevo sistema operativo para IoT" . TechCrunch . Consultado el 4 de diciembre de 2018 .
- ^ "FreeRTOS" . Consultado el 8 de agosto de 2012 .
- ^ "SmartBotPaper" (PDF) . Archivado desde el original (PDF) el 4 de julio de 2012 . Consultado el 8 de agosto de 2012 .
- ^ Relación entre FreeRTOS y SAFE RTOS
- ^ "EETimesSafetyCritical" . Consultado el 8 de agosto de 2012 .
- ^ "Embedded Systems Design Europe" . Consultado el 10 de agosto de 2012 .
- ^ "Texas Instruments" (PDF) . Archivado desde el original (PDF) el 4 de julio de 2013 . Consultado el 10 de septiembre de 2012 .
- ^ Gama de productos TI Stellaris
- ^ "OPENRTOS" . Sistemas de alta integridad . Consultado el 28 de noviembre de 2018 .
- ^ "Licencias de código abierto FreeRTOS" . FreeRTOS . Consultado el 28 de noviembre de 2018 .
enlaces externos
- Página web oficial