Está en la página 1de 15

STR

Sistemas de Tiempo Real


Juan Sebastián Cabrera
Sistemas de Control Embebido
Universidad del Cauca
Contenido
Características de STR
Ejecutivo Cíclico
STR en CCS
Tipos de STR
Sistemas de Tiempo Real Críticos.
Sistemas en los que existe al menos una tarea para la que no se
admite nunca una violación del plazo de ejecución. Entre las
aplicaciones de este tipo de sistemas se encuentran los controles
de seguridad de una planta nuclear.

Sistemas de Tiempo Real Flexible


Sistemas en los que se puede violar algunos plazos de ejecución a
costa de la calidad del funcionamiento. Como ejemplo de aplicación
de sistemas de tiempo real flexibles están los conmutadores
telefónicos.

Sistemas de Tiempo Real Firme


Si una tarea emite su respuesta o señal de salida fuera del plazo de
ejecución previsto, esta respuesta es simplemente descartada.
Como ejemplo tenemos las aplicaciones multimedia.
STR en CCS
El sistema operativo de tiempo real de CCS permite que
un microcontrolador de Microchip defina y ejecute
regularmente tareas programadas.

Esto se lograda por un despachador construido en el


momento de la compilación, utilizando las directivas
de programación del respectivo procesador.

Proporciona un sistema operativo multitarea de tiempo


real cooperativo; sin embargo, debido a las limitaciones
prácticas del PIC, CCS Real Time Operation System, no
ofrece un planificador apropiativo.

Para una mas amplia información del software, ver el link www.ccsinfo.com
STR en CCS
#use rtos(opción)

Las opciones deben ir separadas por comas y pueden ser


las siguientes:

timer = X, donde X es 0-4 espesificando el timer que se


usará para el RTOS

minor_cycle = time, donde “time” es un número seguido por


s, ms, us, ns, este es el tiempo mas corto en el cual puede
correr cualquier tarea, cada rata de ejecución de una tarea,
debe ser múltiplo de este tiempo. El compilador puede
calcular este tiempo, si este no es especificado.
STR en CCS
rtos_await (expresión)

Esta función puede ser solamente usada


dentro de una tarea RTOS, y hace que la
tarea se duerma hasta que la expresión
sea verdadera, permitiendo ejecutarse a
otras tareas mientras esta espera a que la
expresión sea verdadera.
STR en CCS
rtos_enable (task)
Habilita una tarea para que se ejecutase en su
rata especificada. Todas las tareas son
habilitadas por defecto.

i = rtos_msg_poll()
Esta función puede ser solamente usada dentro
de una tarea RTOS, retorna el número de
mensajes que se encuentran en la cola
asignada a dicha tarea
STR en CCS
b = rtos_msg_read()
Esta función puede ser solamente usada dentro
de una tarea RTOS, retorna el mensaje mas
antiguo de la cola de mensajes

rtos_msg_send(task, byte)
Esta función puede ser llamada en cualquier
momento despues de haber llamado a la
función RTOS_RUN(), y lo que hace, es enviar
un mensaje (byte) a determinada tarea (task)
STR en CCS
rtos_overrun([task])

Esta función retorna verdadero, si la tarea


especificada tomó mas tiempo para
ejecutarse que el que le fue asignado; si
no se específica ninguna tarea, entonces
retorna verdadera si alguna de todas las
tareas, funcionó por encima del tiempo
especificado.
STR en CCS
rtos_run()

Esta función comienza la ejecución de todas la


tareas habilitadas (todas las tareas son
habilitadas por dejecto) esta función controla la
ejecución de las tareas de RTOS, teniendo en
cuenta, las ratas temporales permitidas para
cada una de ellas. Se retorna de esta función,
solamente cuando es llamada la función
RTOS_TERMINATE(), por supuesto, por alguna
de las tareas en ejecución
STR en CCS
rtos_signal (sem)

Tiene como argumento, a la variable global


“sem” que representa la actual disponibilidad de
un recurso de sistema compartido (un
semaforo), esta función incrementa semáforo,
para dar a conocer a tareas que se encuentren
esperando por el recurso compartido que
reencuentra disponible para su uso.
STR en CCS
rtos_stats(task,stat)

task = identificador de la función que esta siendo usada como una


tarea de RTOS

stat = puede ser lo siguiente:

rtos_min_time – mínimo tiempo


(ciclos de instrucción) necesarios para una ejecución.

rtos_min_time – máximo tiempo


(ciclos de instrucción) necesarios para una ejcución

rtos_total_time – tiempo total (ciclos de instrucción)


necesarios para la ejecución tolas
STR en CCS
rtos_terminate()

Esta función termina la ejecución de todas


las tareas RTOS, la ejecución del
programa continuará con la primera línea
de código luego de la función
RTOS_RUN(), esta función causa el
retorno de la función RTOS_RUN().
STR en CCS
rtos_wait (sem)

sem, es una variable global que representa la actual


disponibilidad de un recurso del sistema compartido (un
semaforo).

Esta función, puede ser solamente usada por una tarea


RTOS, esta función duerme a la tarea en ejecución,
hasta que la sem, sea mas grande que cero (momento
en que el recurso se encuentra disponible), entonces
decrementa a “sem” para bloquear el uso a otra tarea
del recurso compartido y continua la ejecución del resto
del código, Esta función, permite que se ejecuten otras
tareas mientras la tarea espera hasta que el recurso
compartido esté disponible.
STR en CCS
rtos_yield()

Esta función solamente puede ser llamada por


una tarea RTOS. Al ser llamada esta función,
para la ejecución de la actual tarea y retorna el
control del procesador a RTOS_RUN, en el
siguiente periodo de tiempo de ejecución, esta
comienza su ejecución una línea de código
después de RTOS_YIELD

También podría gustarte