Interrupcions a FreeRTOS

FreeRTOS deixa el maneig de les interrupcions a mans del desenvolupador, demanant unes certes condicions. Cal tenir en compte que les interrupcions són esdeveniments totalment asíncrons i imprevisibles i que prenen el control de forma automàtica. Això fa que mentre està funcionant una ISR el kernel del Sistema Operatiu no es pot executar i que, […]

Read More Interrupcions a FreeRTOS

RTOS: Cues

Si a l’entrada anterior hem vist com es maneguen els semàfors, ara els toca el torn a les cues. Hem vist que els semàfors son útils per sincronitzar tasques i per protegir zones d’exclusió mútua, però no ens donen cap solució senzilla per enviar informació o dades d’una tasca a una altra. Aquesta comunicació és […]

Read More RTOS: Cues

Declarar una ISR

Com ja sabem, les ISR o Rutina de Tractament d’Interrupció (en anglès Interrupt Service Routine) son les funcions especials que s’executen tant bon punt es dispara una interrupció determinada. Tradicionalment les adreces a aquestes ISRs (anomenats de vegades vectors d’interrupció ) s’emmagatzemaven a una zona especial de la memòria del processador. Quan el processador rebia […]

Read More Declarar una ISR

Timer i IRQs

Com ja hem vist al post anterior, un Timer compta temps i el podem fer servir per força coses diferents. L’exemple anterior estava basat en fer polling dels registres del Timer, que és una tècnica senzilla però poc eficient.

Read More Timer i IRQs

Interrupcions

Hem vist a  l’exemple amb GPIOs com llegir entrades tipus GPIO amb un microcontrolador. En el codi d’exemple, s’anava fent polling tota l’estona dels valors dels dos botons i encenent o apagant el LED segons correspongui. Aquesta forma de treballar és força ineficient, ja que el microcontrolador està ocupat fent una feina trivial. Per això, el més […]

Read More Interrupcions