Editando
C12 - Interrupts
(sección)
Ir a la navegación
Ir a la búsqueda
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
= Inter-thread Communication and Synchronization = <br> <b>Multi-threading</b><br> *Un main program y multiples ISRs *Sincronizar varios threads es crítico y tiene que ser eficiente *Hay 3 métodos para sincronizar los threads (pasar info del main thread al background thread) - Se utilizan variables globales porque son accesibles por los dos threads **Binary semaphore (flag) **Mailbox **Fifo buffer <br> <b>Binary semaphore (flag)</b><br> *El flag se usa para indicar un cambio de estado en el device *Es una variable global *El main quiere saber si ha ocurrido un evento para ello comprueba el flag <math>\Leftarrow</math> El flag lo activa el ISR cuando ocurre el evento [[File: Edx-semaphoreInterrupt.jpg | 500px]]<br> <br> <b>Mailbox</b><br> *Tiene dos componentes: el flag y el data *El flag tiene la misma función que con Binary semaphore *En el data se pasa cualquier valor entre el ISR y el main program (ej. los datos del registro UART_DR_R) <b>Fifo Buffer</b><br> *Ponemos el data que recoge la ISR en el fifo buffer - Hacemos un PUT *Desde el main recogemos los datos del fifo buffer con un GET <br> Explicar a parte de que el método mailbox y fifo son unos paradigmas llamados producer consumer.<br> Producer se refiere al thread que "produce" el dato y Consumer se refiere al thread que utiliza ese dato.<br> COMPLETAR<br> <br>
Resumen:
Ten en cuenta que todas las contribuciones a Proyectos se consideran publicadas bajo la Creative Commons Atribución-CompartirIgual (véase
Proyectos:Derechos de autor
para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre.
¡No uses textos con copyright sin permiso!
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Menú de navegación
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Espacios de nombres
Página
Discusión
español
Vistas
Leer
Editar
Ver historial
Más
Buscar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Páginas especiales
Herramientas
Lo que enlaza aquí
Cambios relacionados
Información de la página