Introducción a FreeRTOS en Sistemas Embebidos
Introducción a FreeRTOS en Sistemas Embebidos
ELAMARI MOUNA
2ª año de máster de
búsqueda electrónica
embarcada
2
FreeRTOS
I. Sistema operativo de tiempo real
Existe un gran número de RTOS, libres, de código abierto y propietarios (RTX, MicroC/OS
III, FreeRTOS, VxWorks...) que poseen diferentes conjuntos de ventajas y desventajas para
de adaptarse a la gran cantidad de problemas del mercado. De nuestra parte
en la escuela centramos nuestra atención en FreeRTOS, un pequeño programador de tiempo real que ofrece un
cierto número de ventajas. La documentación de FreeRTOS es directamente accesible en
línea desde el sitio web
II. FreeRTOS
Bloque de Control de Tarea (TCB) El TCB es una estructura de datos que contiene la información
nécessaires à la gestion des tâches. Une fois la tâche est créée, FreeRTOS lui assigne un
TCB.
Ordenación
Prioridad
Las tareas de igual prioridad son tratadas de manera igual por el planificador; él elige en
cada quantum de tiempo una tarea según el algoritmo round robin.
4
2. Control de tareas
vTaskDelay
Código
#include <Arduino_FreeRTOS.h>
#include<task.h>
TareaVacía1(void*pvparameters);
Tarea Vacía2(void*pvparameters);
Led_nuit =4 :
Led_temperature=6 ;
pinMode(led_nuit, SALIDA);
pinMode(led_temperature, OUTPUT);
digitalWrite(led_nuit,LOW) ;
digitalWrite(led_temperature, BAJO);
xTaskcreat(Task1,Task1,128,NULL, 2 ,NULL) ;
vTaskStartScheduler() :
Tarea Vacía1(void*pvparameters)
Mientras(1) {
VLDR=analogRead(entreePhotoResistance)*5/1023 ;
Si((VLDR)<1.71)
digitalWrite(led_nuit,ALTO) ;
Else
digitalWrite(led_nuit,LOW) ;
}}
Tarea2(vacío* pvParameters) {
6
Mientras(1){
Vtemp=(analogRead(entreecapTemp)*5.0)/(1023*100) ;
DigitalWrite(led_temp,ALTO) ;
vTaskDelay(200/portTICK_PERIOD_MS) ;
digitalWrite(led_temp, BAJO);
vTaskDelay(200/portTICK_PERIOD_MS);
Else{
digitalWrite(led_temp, BAJO) ;
Bucle vacío()
}
7