SISTEMAS OPERATIVOS
EN TIEMPO REAL
M SC. I NG. CARLOS CENTENO
G.I N.T.E.A.UTN FRC
TEMARIO
• Sistema Embebido Super Loop
• Generalidades
• Ejemplo
• Conversión a RTOS
• Conceptos Generales de RTOS
• KERNEL
• SCHEDULER
• TAREAS
• PRIORIDADES
• SINCRONIZACION
GENERALIDADES
• Cada “tarea” es una función en C.
• Se llaman por turno desde el bloque
principal.
• NO existen prioridades.
• Se ejecutan rápidamente y regresan al
bloque principal.
• Pueden usar una variable de estado.
• Se usan esperas pasivas – delay.
• NO hay timers.
SISTEMA EMBEBIDO
I/O
LCD
TECLADO
MICRO USART
RS232
MUX
Input
SPI
USB
FILTROS OFFSET PGA ADC
Sistema de Adquisición de Señales
SOLUCION SUPER LOOP
Implementación del Software de control basado en topología súper loop
LEER Teclado
Timer ISR
LEER ADC
Borrar Pantalla
RS232
Filtrado Digital c=c+1
Si c>=5
T=0
Escribir Pixel
Frec Muestreo: 500Hz
Resolución LCD: 240 pixel
T == 1
Resolución Impresión: 5 muestras por pixel
Tiempo de ciclo: 10mS
CONVERSION A RTOS
• Se requiere RAM y ROM adicional
para la uso de un RTOS.
• Requiere definir cada PROCESO.
• Se deben definir las prioridades.
• Se deben definir las interacciones
entre procesos.
• Sincronización con EVENTOS.
SUPER LOOP RTOS
Ejecutivo
MultitareaCICLICO
RTOS
LEER Teclado Timer
Interrupt Service
Tarea Tarea LCD Tarea Teclado Tarea ADC Tarea
Borrar Pantalla LEER ADC
Comunicación IDLE
Prioridad = 2 Prioridad = 3 Prioridad = 4 Prioridad = 1
RS232 Prioridad = 63
Filtrado Digital
Escribir Pixel Timer
Interrupt Service
LEER ADC
T==1
EVENTOS
RS232
RTOS
• Conceptos Generales
• KERNEL
• SCHEDULER
• TIPO
• PREEMPTIVE
• NON PREEMTIVE
• TAREAS
• ESTADOS DE OPERACIÓN
• TCB RAM
• STACK RAM
RTOS
• Conceptos Generales
• TAREAS
• PRIORIDADES
• REENTRANCIA
• SINCRONIZACION
• ECB
• TIPOS DE EVENTOS
• SEMAFOROS
• MUTEX
• MAILBOX
• QUEUES
TIPOS RTOS
REENTRANCIA
ESTADOS DEL SISTEMA
EVENTOS
Semáforos
Mailbox
Queues
ESQUEMA USANDO RTOS
Tarea Tarea LCD Tarea Teclado Tarea ADC Tarea
Comunicación IDLE
Prioridad = 2 Prioridad = 3 Prioridad = 4 Prioridad = 1 Prioridad = 63
EVENTOS
ESQUEMA USANDO RTOS
Tarea Tarea LCD Tarea Teclado Tarea ADC Tarea
Comunicación IDLE
Prioridad = 2 Prioridad = 3 Prioridad = 4 Prioridad = 1 Prioridad = 63
Semaforo
Semaforo
MailBox
MailBox
CODIGO USANDO RTOS
void comm() void LCD() void KEY() void ADC() void IDLE()
{ { { { {
while(1){ while(1){ while(1){ while(1){ while(1){
… … … … …
… … … … …
} } } } }
} } } } }
Semaforo
Semaforo
MailBox
MailBox
RTOS DISPONIBLES
• uCOS III
• https://www.micrium.com/rtos/kernels/
• freeRTOS
• https://www.freertos.org/
• AVIX RT
• http://www.avix-rt.com/
• THREADX RTOS
• https://rtos.com/
EJEMPLO LOOP EJEMPLO RTOS
PREGUNTAS ???
GRACIAS POR SU ATENCION!!!!!
MSc. Ing. Carlos Centeno
ccenteno@gmail.com
G.In.T.E.A. – FRC UTN
http://www.investigacion.frc.utn.edu.ar/gintea/