This shows you the differences between two versions of the page.
|
patr:laboratoare:10 [2022/01/13 13:59] alexandru.ionita99 [Declarare] |
patr:laboratoare:10 [2022/01/13 14:00] (current) alexandru.ionita99 |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| FreeRTOS utilizează următoarele tipuri de semafoare, pe care le vom detalia în continuare: | FreeRTOS utilizează următoarele tipuri de semafoare, pe care le vom detalia în continuare: | ||
| * Semafoare binare | * Semafoare binare | ||
| - | * Mutexuri | ||
| * Semafoare generalizate | * Semafoare generalizate | ||
| + | * Mutexuri | ||
| În cadrul acestui laborator, vom discuta despre semafoarele binare și cele generalizate, urmând ca în următorul să fie prezentate mutexurile. | În cadrul acestui laborator, vom discuta despre semafoarele binare și cele generalizate, urmând ca în următorul să fie prezentate mutexurile. | ||
| Line 32: | Line 32: | ||
| O situație în care semafoarele binare se pretează este sincronizarea a două task-uri. De exemplu, un task mai rapid poate fi blocat la un semafor până când un task mai lent ajunge într-un punct în care îl deblochează. \\ | O situație în care semafoarele binare se pretează este sincronizarea a două task-uri. De exemplu, un task mai rapid poate fi blocat la un semafor până când un task mai lent ajunge într-un punct în care îl deblochează. \\ | ||
| + | |||
| + | Diferențele dintre mutexuri și semafoarele binare vor fi prezentate în cadrul laboratorului viitor. Momentan, ne vom orienta atenția către crearea semafoarelor binare. | ||
| Pentru a crea un semafor binar, este utilizată funcția ** xSemaphoreCreateBinary() **. Aceasta alocă spațiu în heap pentru semaforul binar și îl creează, cu starea inițială este "blocat". Dacă valoarea întoarsă este NULL, nu există suficientă memorie disponibilă. \\ | Pentru a crea un semafor binar, este utilizată funcția ** xSemaphoreCreateBinary() **. Aceasta alocă spațiu în heap pentru semaforul binar și îl creează, cu starea inițială este "blocat". Dacă valoarea întoarsă este NULL, nu există suficientă memorie disponibilă. \\ | ||