-
- не хотите понимать. во время передачи (пока речь о) в USART из
буфера, как с FIFO, так и с DMA, весь этот ресурс должен быть
заблокирован. дальше можно не развивать. кто-то блокирует
заворачиванием в критическую секцию. ТС пишет о дебаг-выхлопе из
тучи задач. хорошо хоть не из обработчиков прерываний. если ресурс
захвачен одной задачей, то в другой можно либо отказаться, либо
ждать освобождения ресурса, либо отправить в программное устройство
отложенной отправки в. когда Vit(62 знак., 14.08.2025 11:34)
- Хочу понимать! Но не все понятно. Вы говорите "во время передачи
(пока речь о) в USART из буфера, как с FIFO, так и с DMA, весь этот
ресурс должен быть заблокирован" о каком ресурсе? О ДМА? Он
заблокирован. Я не теоретически, а практический разговор веду в
железе, независимо от топикстартера. - petrd(14.08.2025 11:49)
- ваша аналогия насчёт принтера не учитывает наличие службы спулера
печати (в винде Print Spooler). да были prn и lptx, а с ними как-то
употреблялись copy/type/print, но уже давно перешли на
использование именно службы печати - Vit(14.08.2025 12:33)
- Хорошо, без аналогий. Цель, изо всех мест программы, где требуется
вывод, без оглядки на FreeRTOS, писать printf() и получать вывод в
терминале. Говорю исключительно про МК. - petrd(14.08.2025 15:26)
- никто не мешает так писать:). но есть нюансы. при использовании без вытеснения (в т.ч. всяких вызовов в обработчиках прерываний) нужно, чтобы уход последнего байта контроллировался по TXC (если RS485 - аналогично снятию DE). при использовании DMA это не всегда решаемо без дополнительных сложностей, потому как событие окончания отправки по DMA возникает чуть раньше факического ухода байта. потому возникают варианты с расчетными таймаутами и т.п.. при вытеснении же всё то же, Vit(503 знак., Вчера, 08:38)
- Хорошо, без аналогий. Цель, изо всех мест программы, где требуется
вывод, без оглядки на FreeRTOS, писать printf() и получать вывод в
терминале. Говорю исключительно про МК. - petrd(14.08.2025 15:26)
- ваша аналогия насчёт принтера не учитывает наличие службы спулера
печати (в винде Print Spooler). да были prn и lptx, а с ними как-то
употреблялись copy/type/print, но уже давно перешли на
использование именно службы печати - Vit(14.08.2025 12:33)
- Хочу понимать! Но не все понятно. Вы говорите "во время передачи
(пока речь о) в USART из буфера, как с FIFO, так и с DMA, весь этот
ресурс должен быть заблокирован" о каком ресурсе? О ДМА? Он
заблокирован. Я не теоретически, а практический разговор веду в
железе, независимо от топикстартера. - petrd(14.08.2025 11:49)
- не хотите понимать. во время передачи (пока речь о) в USART из
буфера, как с FIFO, так и с DMA, весь этот ресурс должен быть
заблокирован. дальше можно не развивать. кто-то блокирует
заворачиванием в критическую секцию. ТС пишет о дебаг-выхлопе из
тучи задач. хорошо хоть не из обработчиков прерываний. если ресурс
захвачен одной задачей, то в другой можно либо отказаться, либо
ждать освобождения ресурса, либо отправить в программное устройство
отложенной отправки в. когда Vit(62 знак., 14.08.2025 11:34)