Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TAREA
Haris Chaudhry Mendvil (20131628)
1.
os_tsk_pass
Descripcin: Pasa el control a la prxima tarea de la
misma prioridad en estado listo. Si no hay uno de la
misma prioridad, sigue en la misma tarea.
Valor de retorno: No retorna ningn valor.
Estructura: void os_tsk_pass (void);
Parmetros: Ninguno.
os_tsk_self
os_evt_wait_or
os_evt_wait_and
Descripcin: Sirve
especificados.
para
esperar
todos
los
eventos
Parmetros:
-
os_dly_wait
Descripcin: Pausa la tarea llamada.
2.
Event flags
Son bits que sirven para indicar si ocurri un evento.
Usualmente son referidos como event bits. Por ejemplo, un
1 puede significar que ocurri el evento y un 0 que todava
no ocurre. Estos bits se agrupan formando un event group en
el cual cada nmero de bit puede significar la ocurrencia de un
determinado evento.
En el caso de AND, espera por todos los event bits; en OR espera por
algn event bit. Tal como las funciones os_evt_wait_and y
counter2++;
}
}
int main (void) {
os_sys_init (task1);
}
Funcionamiento:
Comienza en la tarea task1, asigna el ID de task1 a la variable id1,
configura la prioridad de task1 en 3, crea una segunda tarea task2
con una prioridad de 4, asigna en la variable id2 el ID de task2
(os_tsk_create retorna el TID). Como task2 tiene mayor prioridad, el
OS interrumpe la tarea cambindose a task2 (OS RTX es multitarea
preferente) y se queda ah, en task2 counter2 va aumentando en 1
por bucle.
TASK1
Inacti
vo
List
o
TASK2
Inacti
vo
List
o
Ejecuci
n
Ejecuci
n
List
o
Ejecuci
n
List
o
4.
Para que incrementen tanto counter1 como counter2, task1 y task2
deben tener la misma prioridad, esto se podra realizar reemplazando
la instruccin id2 = os_tsk_create (task2, 4); por id2 =
os_tsk_create (task2, 3);. Con ello, las tareas task1 y task2
alternaran al cumplir su tiempo mximo cada una.
Bibliografa:
-
http://www.keil.com/support/man/docs/rlarm/rlarm_os_tsk_p
ass.htm
http://www.keil.com/support/man/docs/rlarm/rlarm_os_tsk_s
elf.htm
http://www.keil.com/support/man/docs/rlarm/rlarm_os_evt_w
ait_or.htm
http://www.keil.com/support/man/docs/rlarm/rlarm_os_evt_w
ait_and.htm
http://www.keil.com/support/man/docs/rlarm/rlarm_os_dly_w
ait.htm
http://www.keil.com/support/man/docs/rlarm/rlarm_os_tsk_cr
eate.htm
http://www.keil.com/support/man/docs/rlarm/rlarm_os_tsk_pr
io_self.htm
http://www.freertos.org/FreeRTOS-Event-Groups.html
https://doc.micrium.com/display/osiiidoc/Event+Flags