Microcontroladores FREERTOS

Determinismo: Un sistema operativo es determinista si realiza las operaciones en instantes fijos y determinados o en int

Views 53 Downloads 1 File size 78KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Determinismo: Un sistema operativo es determinista si realiza las operaciones en instantes fijos y determinados o en intervalos de tiempo predeterminados. Cuando hay varios procesos compitiendo por el mismo recurso, no será por completo determinista. Para que el sistema sea determinista se tiene que tener en cuenta dos puntos: la velocidad con la que pueda responder a las interrupciones; y si el sistema posee suficiente capacidad para gestionar las peticiones en tiempos definidos.

Sensibilidad: Esta característica la determina el tiempo que tarda un RTOS en reconocer una interrupción, después de reconocerla depende de “La cantidad de tiempo necesaria para iniciar la gestión de la interrupción y empezar la ejecución de la rutina de servicio a la interrupción (Interrupt Service Routine ISR)”. Si la ejecución de ISR requiere un cambio de proceso el tiempo será mayor afectando drásticamente la sensibilidad. En conjunto, el determinismo y la sensibilidad conforman el tiempo de respuesta a sucesos externos.

Control de usuario: Esta característica es mayor en un RTOS que en un sistema de tiempo compartido, en el segundo caso, el usuario no puede asignar prioridades, decidir sobre algoritmos de planificación o que procesos pueden estar residentes en la memoria.

Fiabilidad: Un RTOS controla sucesos que tienen lugar en el entorno y su propia escala de tiempo, las pérdidas o degradaciones en el sistema , pueden tener consecuencias en el proceso controlado.

Tolerancia a fallos: Un RTOS se diseña para responder ante varias formas de fallo. Éste intentará corregir el problema o minimizar sus efectos antes de proseguir con la ejecución. Se asocia la Estabilidad a la Tolerancia de Fallos, se considera un sistema estable, cuando en los casos en los que es imposible cumplir todos los plazos de ejecución de tareas se cumplan al menos los de las más críticas y de mayor prioridad.

FreeRTOS es un núcleo del sistema operativo en tiempo real popular para dispositivos embebidos, que ha sido portado a 35 microcontroladores. Se distribuye bajo la licencia GPL, con una excepción opcional. La excepción permite código propietario de los usuarios a seguir siendo de código cerrado, manteniendo el núcleo en sí como código abierto, lo que facilita el uso de FreeRTOS en aplicaciones propietariasContents FreeRTOS está diseñado para ser pequeño y simple. El núcleo en sí consta de sólo tres o cuatro archivos C. Para hacer que el código legible, fácil de portar, y mantenible, está escrito en su mayoría en C, pero hay algunas funciones de montaje incluidas donde sea necesario (en su mayoría en las rutinas del planificador específicos de la arquitectura). FreeRTOS proporciona métodos para varios subprocesos o tareas, exclusiones mutuas, semáforos y temporizadores de software. Se proporciona un modo de garrapata menos para aplicaciones de baja potencia. Prioridades de rosca son compatibles. Además hay cuatro esquemas de asignación de memoria proporcionados: • asignar solamente; • asignar y libre con un muy simple rápido, algoritmo,; • un algoritmo más complejo, pero asignar rápida y gratuita con coalescencia de memoria; • y C biblioteca asignar y gratuita con algún tipo de protección mutua exclusión. No hay ninguno de los rasgos más avanzados se encuentran típicamente en sistemas operativos como Linux o Microsoft Windows, tales como controladores de dispositivos, gestión de memoria avanzada, cuentas de usuario y de redes. El énfasis está en la compacidad y rapidez de ejecución. FreeRTOS puede ser pensado como una "biblioteca de subprocesos" en lugar de un "sistema operativo", aunque la interfaz de línea de comandos y POSIX-como IO abstracción complementos están disponibles. FreeRTOS implementa múltiples hilos por tener el programa de acogida llamar a un método de garrapata hilo a intervalos cortos regulares. El método garrapata hilo cambia tareas en función de la prioridad y un esquema de planificación round-robin. El intervalo usual es 1/1000 de un segundo a 1/100 de un segundo, a través de una interrupción de un temporizador de hardware, pero este intervalo se cambia a menudo para adaptarse a una aplicación particular. La descarga contiene configuraciones y demostraciones preparadas para cada puerto y el compilador, lo que permite el diseño rápido de aplicaciones. El sitio de FreeRTOS.org también contiene una gran cantidad de documentación y tutoriales RTOS (manuales adicionales y tutoriales disponibles por una tarifa a partir de USD25), detalles del diseño RTOS. • huella muy pequeña de memoria, bajo costo operativo y de ejecución muy rápido. • Tick-less opción para aplicaciones de baja potencia. • Igualmente bueno para los aficionados que son nuevos sistemas operativos y desarrolladores profesionales que trabajan en los productos comerciales. • Scheduler puede ser configurado tanto para operación preventiva o cooperativa. • Apoyo Coroutine (Coroutine en FreeRTOS es una tarea muy simple y ligero que tiene un uso muy limitado de pila) • El apoyo de seguimiento a través de macros traza genéricos. Herramientas como FreeRTOS + trace (proporcionados por el socio FreeRTOS Percepio) por lo tanto se pueden registrar y visualizar el comportamiento de tiempo de ejecución de los sistemas

basados en FreeRTOS. Esto incluye la programación y del núcleo llamadas de tareas para las operaciones de semáforos y de cola. Precio = US $ 1500 (compra, 5/2014). Sin embargo, ningún trazador libre está disponible actualmente. SafeRTOS fue construido como una oferta complementaria a FreeRTOS, con una funcionalidad común pero con una aplicación de seguridad crítico de diseño único. Cuando el modelo funcional FreeRTOS se sometió a un HAZOP completo, debilidad con respecto al uso indebido de usuario y fallo de hardware en el modelo funcional y API se identificaron y resuelto. Los requisitos establecidos resultantes fue puesto a través de un ciclo de vida de desarrollo completo IEC 61508 SIL 3, la más alta posible para un componente de software exclusivamente. SafeRTOS fue desarrollado por los sistemas de alta integridad WITTENSTEIN, en colaboración con el Real Time Ingenieros Ltd, desarrollador principal [1] del proyecto FreeRTOS. [5] Tanto SafeRTOS y FreeRTOS compartir el mismo algoritmo de planificación, tiene APIs similares, y son otra forma muy similar, [6] pero ellos fueron desarrollados con diferentes objetivos. [7] SafeRTOS fue desarrollado exclusivamente en el lenguaje C para cumplir con los requisitos para la certificación de IEC61508. [8] SafeRTOS es conocido por su capacidad, único entre los sistemas operativos, a residir únicamente en la memoria en el chip de un microcontrolador, lo que permite que la precertificación de los sistemas de hardware y software completas a IEC61508 u otras normas de seguridad o fiabilidad de funcionamiento. [9] Cuando se implementa en la memoria del hardware, el código SafeRTOS sólo 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 es necesario volver a probar esta porción de sus diseños durante el proceso de certificación de la seguridad funcional. [10] SafeRTOS está incluido en la ROM de algunos microcontroladores Stellaris [11] de Texas Instruments. Esto permite SafeRTOS para ser utilizado en aplicaciones comerciales sin tener que comprar su código fuente. En este escenario de uso, un archivo de cabecera C sencilla se utiliza para asignar funciones de la API SafeRTOS a su ubicación en la memoria de sólo lectura. El uso de memoria de sólo lectura es ideal porque el código que contiene no se puede cambiar - la eliminación de la posibilidad de un error del usuario, y la garantía de un código que se probó inicialmente sigue siendo absolutamente idéntica en toda la vida del proyecto. No tendrá que volver a las pruebas como el código de la aplicación crece y evoluciona a su alrededor. La carga de la prueba del núcleo complejo se elimina ya que las pruebas de certificación ya certificado y aprobado, incluyendo la prueba del plan, el código y los resultados, se puede comprar "fuera de la plataforma". OpenRTOS Otro proyecto relacionado con FreeRTOS, uno con código idéntico pero diferente de licencias, es OpenRTOS. La licencia OpenRTOS elimina toda referencia a la GPL y sus implicaciones. Por ejemplo: una de las condiciones de uso de FreeRTOS en un producto comercial es que el usuario es consciente de la utilización de FreeRTOS y el código fuente de FreeRTOS (no aplicación) debe ser proporcionado a pedido. Como es un

producto comercial disponible para su compra, OpenRTOS no tiene este requisito de licencia. OpenRTOS usuarios también tienen acceso a soporte técnico completo.

Ejemplo 1. Tareas Creación Este ejemplo muestra los pasos necesarios para crear dos tareas simples a continuación, iniciar las tareas ejecución. Las tareas simplemente imprimen periódicamente una cadena, usando un bucle nulo crudo para crear el período demora. Ambas tareas se crean en la misma prioridad y son otra idéntica que la cadena que se impriman - Ver Listado 4 y el Listado 5 para sus respectivas implementaciones La Figura 2 muestra las dos tareas que aparecen para ejecutar simultáneamente, pero ambas tareas están ejecutando en el mismo procesador por lo que este no puede ser en realidad el caso. En realidad ambas tareas están entrando rápidamente y salir del estado de ejecución. Ambas tareas se están ejecutando en la misma prioridad por lo que compartir el tiempo en el single procesador. Su patrón de ejecución real se muestra en la Figura 3. La flecha a lo largo de la parte inferior de la figura 3 muestra el paso del tiempo desde el tiempo t1 en adelante. El color líneas muestran qué tarea se está ejecutando en cada punto en el tiempo - por ejemplo Task1 está ejecutando entre t1 y t2 tiempo de tiempo. Sólo una tarea puede existir en estado de ejecución en un momento de forma que una tarea pasa al estado Running (La tarea se enciende en) el otro entra en el estado no se ejecuta (la tarea se enciende hacia fuera). Ejemplo 2. Utilizando el parámetro Tarea Las dos tareas creadas en el Ejemplo 1 fueron casi idénticos, la única diferencia entre ellos era el cadena de texto que se imprime. Esta duplicación puede ser eliminado por lugar la creación de dos instancias de una aplicación sola tarea. El parámetro tarea, entonces se puede utilizar para pasar a cada tarea la cadena que esa instancia debe imprimir. Ficha 8 contiene el código de la función de una sola tarea (vTaskFunction) utilizado por Ejemplo 2. Este single función sustituye las dos funciones de tareas (vTask1 y vTask2) utilizados en el Ejemplo 1. Nota cómo la tarea parámetro se echó a un char * para obtener la cadena de la tarea debe imprimir. A pesar de que ahora hay sólo una aplicación de tareas (vTaskFunction), más de una instancia dela tarea definida puede ser creado. Cada instancia creada se ejecutará de forma independiente bajo el control del planificador FreeRTOS. El parámetro pvParameters a la función xTaskCreate () se utiliza para pasar en la cadena de texto como se muestra en el Listado 9.