El curs

Comparant temps de resposta

En aquesta entrada valorarem els temps de resposta mesurats en els tres mecanismes de comunicació entre esdeveniments i tasques, que son els semàfors, les grups d’esdeveniments i les notificacions directes. A la taula següent es resumeixen aquestes mesures i a les figures es veuen les mesures fetes amb l’oscil·loscopi. Com es pot comprovar, el mecanisme […]

Read More Comparant temps de resposta

Notificacions a tasques

Les notificacions a tasques (en anglès Direct to Task Notifications) son un mecanisme propi de FreeRTOS similar a les cues, semàfors i mútex però més simple i, en alguns casos, més eficient (aquest mecanisme pot ser fins a un 45% més ràpid que un mecanisme basat en un semàfor binari). Si bé els mecanismes introduïts […]

Read More Notificacions a tasques

Grup d’esdeveniments

A més dels mecanismes ja explicats, i que son els més típics en la comunicació i sincronització entre tasques, FreeRTOS ens proporciona un mecanisme que permet bloquejar o desbloquejar una o vàries tasques segons succeeixi un o varis esdeveniments. Aquest mecanisme es diu Event Groups i permet que una o vàries tasques defineixen a quins […]

Read More Grup d’esdeveniments

Temps i màquines d’estats

Tot i que el tractament del temps (deixar passar un cert temps, esperar per un esdeveniment un cert temps, etc.) es pot fer tant amb FSMs com amb un bucle de control senzill, hi ha models pensats que el tracten específicament. Una forma molt senzilla d’afegir temps a una FSM és afegir un temps d’espera […]

Read More Temps i màquines d’estats

Codificant Màquines d’Estats

Com ja hem vist a l’entrada anterior, és relativament senzill codificar una FSM en C. Tot i això, es pot trobar un model genèric per simplificar les coses. Anem a presentar-lo. Com s’ha dit anteriorment, una FSM consta de 4 operacions: Llegir les entrades. Això provocarà o no canvis en l’estat i les sortides. Calcular […]

Read More Codificant Màquines d’Estats

Màquines d’estats

Una màquina d’estats (FSM, de Finite State Machine en anglès) és un model de màquina que reacciona a certes entrades i calcula el valor per les sortides, segons l’estat en que estigui. També es pot veure com un seguit d’estats possibles (finit!) en el que pot estar la màquina (el nostre programa) i que va […]

Read More Màquines d’estats

Fent servir un mòdul criptogràfic

Un perifèric que trobem als microcontroladors moderns és alguna mena de mòdul per accelerar els càlculs necessaris per el xifratge i/o desxifratge d’informació. En el cas de la família EFM32 de SiliconLabs aquest mòdul s’anomena AES a les primeres versions i CRYPTO a les darreres. Aquest mòdul, com els d’altres fabricants, reben les dades a […]

Read More Fent servir un mòdul criptogràfic

Gestió de rellotges – Systick

En la majoria de microcontroladors moderns la gestió dels rellotges és una qüestió delicada i molt important. Per tal de millorar el consum del dispositiu, és habitual tenir un control i poder decidir si cert perifèric rep el senyal de rellotge o no En cas que no el rebi, el perifèric romandrà totalment desconnectat i […]

Read More Gestió de rellotges – Systick

Manipulant bits individuals

Sovint ens caldrà posar a valor ‘0’ o ‘1’ un bit individual d’una variable sense canviar el valor de la resta dels bits, veiem aquí les receptes per fer-ho. La numeració de bits en C comença pel 0, així el bit menys significatiu d’una variable serà sempre el 0 i el més significatiu N-1, amb […]

Read More Manipulant bits individuals