Ir al contenido

FreeRTOS

De Wikipedia, la enciclopedia libre
FreeRTOS
Parte de Real-time operating systems
Información general
Tipo de programa Sistema operativo embebido
Desarrollador Amazon Web Services
Licencia
Información técnica
Programado en C
Plataformas admitidas
Versiones
Última versión estable 202212.014 de marzo de 2023
Enlaces

FreeRTOS Es un sistema operativo de tiempo real kernel para dispositivos embebidos que ha sido portado a 35 plataformas de microcontrolador.[2][3][4]​ Está distribuido bajo la licencia MIT.

Implementación

[editar]

FreeRTOS está diseñado para ser pequeño y simple. El núcleo en sí consta de solo tres archivos implementados en C. Para hacer que el código sea legible, fácil de portar y mantener, está escrito principalmente en C, pero hay un par de funciones en assembler que están incluidas en donde se necesitan principalmente en rutinas de planificación de arquitectura específica.

FreeRTOS Proporciona métodos para múltiples subprocesos o hilos, mutexes, semáforos y temporizadores de software. Además de admitir prioridades de hilos. 

Tiene un modo tickless  para reducir el consumo energético.  En FreeRTOS las aplicaciones pueden ser  asignadas de manera completamente estáticas. Alternativamente en RTOS los objetos pueden ser asignados de manera dinámica con cinco esquemas previstos de asignación de memoria :

  • Solo Asignar.
  • Asigna y libera con un algoritmo muy simple y rápido.
  •  Asignar con un algoritmo más complejo pero rápido de asignación y liberación con coalescencia de memoria
  • Asignar con una alternativa al esquema más complejo que incluye la coalescencia de memoria que permite dividir un montón en múltiples áreas de memoria.
  • biblioteca C asignan y liberan con alguna protección de exclusión mutua.

No hay ninguna de las funciones más avanzadas que se encuentran normalmente 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 hilos' 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-like están disponibles.

FreeRTOS implementa múltiples subprocesos haciendo que el programa anfitrión llame a un método de marcación de subprocesos a intervalos cortos y regulares. El método de marca de hilo cambia las tareas en función de la prioridad y un esquema de programación de turno rotativo. El intervalo habitual es de 1/1000 de segundo 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 rápido diseño de la aplicación. El sitio FreeRTOS.org también contiene una gran cantidad de documentación y tutoriales de RTOS (manuales adicionales y tutoriales están disponibles por una tarifa), así como detalles del diseño de RTOS.

Características claves

[editar]
  • Libro y los manuales de referencia.
  • Huella de memoria pequeña, gastos indirectos bajos y ejecución rápida.
  • Ticklees opción para utilizar baja potencia en aplicaciones.
  • Destinado tanto para aficionados como para desarrolladores profesionales que trabajan en productos comerciales.
  • El programador se puede configurar para operaciones tanto preventivas como cooperativas.
  • Compatibilidad con corrutinas (las corrutinas en FreeRTOS son tareas simple y ligeras con un uso limitado de la pila de llamadas)
  • Permite el seguimiento a través de macros de rastreo genérico. Herramientas como Tracealyzer por el socio Percepio de FreeRTOS pueden registrar y visualizar el comportamiento en tiempo de ejecución de los sistemas basados en FreeRTOS. Esto incluye la programación de tareas y las llamadas al kernel para las operaciones de semáforo y cola. Tracealyzer es una estrategia de precios freemium, que ofrece una versión gratuita con características limitadas

Arquitecturas admitidas

[editar]

SafeRTOS

[editar]

SafeRTOS fue construido como una oferta complementaria a FreeRTOS, con la funcionalidad común pero con un único diseñado críticos para la seguridad de la implementación. Cuando el FreeRTOS modelo funcional fue sometido a una completa HAZOP, debilidad con respecto al mal uso por el usuario y falla de hardware en el modelo funcional de la API fueron identificados y resueltos. El resultado de requerimientos se ha de poner a través de un completo IEC 61508 SIL 3 ciclo de vida de desarrollo, lo más alto posible para un software único componente.

SafeRTOS fue desarrollado por los sistemas de alta integridad WITTENSTEIN, en asociación con Real Time Engineers Ltd, desarrollador principal del proyecto FreeRTOS.[5]​ Tanto SafeRTOS como FreeRTOS comparten el mismo algoritmo de programación, tienen API similares,[6]​ pero se desarrollaron con objetivos diferentes.[7]​ SafeRTOS se desarrolló únicamente en el lenguaje C para cumplir con los requisitos de certificación IEC61508.[8]

SafeRTOS es conocido por su capacidad para residir únicamente en el chip de memoria de solo lectura de un microcontrolador para el cumplimiento de los estándares.[9]​ Cuando se implementa en hardware de memoria, SafeRTOS código solo puede ser utilizado en su configuración original, por lo que las pruebas de certificación de los sistemas que utilizan este sistema operativo no necesita volver a probar esta porción de sus diseños en la seguridad funcional para el proceso de certificación.[10]

SafeRTOS está incluido en la ROM de algunos microcontroladores Stellaris de Texas Instruments. Esto permite que SafeRTOS se utilice en aplicaciones comerciales sin tener que comprar su código fuente. En este escenario de uso, se utiliza un archivo de cabecera C simple para asignar las funciones de la API de SafeRTOS a su ubicación en la memoria de solo lectura. El uso de la memoria de solo lectura es ideal porque el código que contiene no se puede cambiar, lo que elimina la posibilidad de un error del usuario y garantiza que el código que se probó originalmente permanezca absolutamente idéntico durante toda la vida útil del proyecto. No será necesario volver a realizar pruebas a medida que el código de la aplicación crezca y evolucione a su alrededor. La carga de las pruebas complejas del kernel se elimina ya que la evidencia de certificación ya certificada y aprobada, incluido el plan de prueba, el código y los resultados, se puede comprar "fuera de la plataforma".

Véase también

[editar]

Referencias

[editar]
  1. «FreeRTOS open source licensing». 22 de diciembre de 2017. 
  2. «2011 Embedded Market Study». EE Times. Archivado desde el original el 2 de abril de 2012. 
  3. Kolesnik, Sergey (8 de diciembre de 2013). «Comparing microcontroller real-time operating systems». «A kernel is not an RTOS, but this can be a confusing issue because of the inappropriate naming chosen for some popular kernels, ‘freeRTOS’ for example.» 
  4. «Why RTOS and What Is RTOS?». Consultado el 29 de agosto de 2014. «What is FreeRTOS? … The size constraints, and dedicated end application nature, rarely warrant the use of a full RTOS implementation - or indeed make the use of a full RTOS implementation possible. FreeRTOS therefore provides the core real time scheduling functionality, inter-task communication, timing and synchronisation primitives only. This means it is more accurately described as a real time kernel, or real time executive. …». 
  5. «FreeRTOS». Consultado el 8 de agosto de 2012. 
  6. «SmartBotPaper». Archivado desde el original el 4 de julio de 2012. Consultado el 8 de agosto de 2012. 
  7. Relationship between FreeRTOS and SAFERTOS
  8. «EETimesSafetyCritical». Consultado el 8 de agosto de 2012. 
  9. «Embedded Systems Design Europe». Archivado desde el original el 23 de octubre de 2012. Consultado el 10 de agosto de 2012. 
  10. «Texas Instruments». Archivado desde el original el 4 de julio de 2013. Consultado el 10 de septiembre de 2012. 

Enlaces externos

[editar]