Задача опрашивает флаг в цикле, и светодиод статуса перестал мигать
Задача приёма с приоритетом 3 ждёт данных так:
void rx_task(void *arg) {
for (;;) {
while (!rx_ready) { } /* rx_ready выставляет прерывание */
rx_ready = 0;
parse_packet();
}
}
Задачи мигания светодиодом и логирования (приоритет 1) после старта ни разу не получают процессор. Что исправить?
- Ждать события блокирующим вызовом ОС
- Поднять приоритет задачи логирования до 3
- Увеличить частоту тика configTICK_RATE_HZ
- Увеличить стек задач светодиода и логов
