FreeRTOS on ESP32-C3 #7: Binary Semaphore Tutorial | кнопка, ISR и синхронизация
В этом видео продолжаем разбирать FreeRTOS на ESP32-C3 и переходим от mutex к binary semaphore. Если mutex нужен для защиты общего ресурса, то binary semaphore нужен уже для сигнала о событии и синхронизации. Именно это мы и разбираем на понятном практическом примере с кнопкой. В видео идём по шагам: сначала делаем самый простой вариант без прерываний, чтобы понять логику работы кнопки и polling, потом подключаем GPIO interrupt, а затем переходим к классической схеме: Button → ISR → Binary Semaphore → Task Разбираем не только код, но и саму логику работы: что такое polling и почему это не лучший вариант; зачем нужны прерывания; что делает обработчик button_isr_handler(); почему в ISR используют функции с FromISR; как работает xSemaphoreGiveFromISR(); зачем нужен portYIELD_FROM_ISR(); что означает xHigherPriorityTaskWoken; чем binary semaphore отличается от mutex. #freertos #esp32c3 #semaphore #ISR #synchronization #binary
В этом видео продолжаем разбирать FreeRTOS на ESP32-C3 и переходим от mutex к binary semaphore. Если mutex нужен для защиты общего ресурса, то binary semaphore нужен уже для сигнала о событии и синхронизации. Именно это мы и разбираем на понятном практическом примере с кнопкой. В видео идём по шагам: сначала делаем самый простой вариант без прерываний, чтобы понять логику работы кнопки и polling, потом подключаем GPIO interrupt, а затем переходим к классической схеме: Button → ISR → Binary Semaphore → Task Разбираем не только код, но и саму логику работы: что такое polling и почему это не лучший вариант; зачем нужны прерывания; что делает обработчик button_isr_handler(); почему в ISR используют функции с FromISR; как работает xSemaphoreGiveFromISR(); зачем нужен portYIELD_FROM_ISR(); что означает xHigherPriorityTaskWoken; чем binary semaphore отличается от mutex. #freertos #esp32c3 #semaphore #ISR #synchronization #binary



