ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
16 августа
1536219 Топик полностью
ЫЫyкпy (Сегодня, 05:58, просмотров: 64) ответил Nikolay_Po на Если я вас правильно понял, вы предлагаете реализовывать печать в IDLE? Нет, у меня печать имеет самый высокий приоритет - она короткая, быстрая, не сильно мешает. Быстрее, чем передаёт UART, не нагрузится. Зато все отладочные сообщения, которые задачи только смогли положить в буфер - гарантированно напечатаются в порядке очереди поступления.
Чтобы печатать в порядке очереди поступления есть более щадящие средства чем критическая секция. 

Я вот так делал:


//printf_guard.h
#ifndef __printf_guard_h__ #define __printf_guard_h__ // Макрос для применения printf() в задачах FreeRTOS // во избежание перепутывания вывода из разных задач #include "FreeRTOS.h" #include "semphr.h" #define printf(...) do{\ extern SemaphoreHandle_t printf_Mutex;\ xSemaphoreTake(printf_Mutex,portMAX_DELAY);\ printf(__VA_ARGS__);\ xSemaphoreGive(printf_Mutex);\ }while(0) #endif
Жизнь есть способ борьбы белковых тел со вторым началом термодинамики.