ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
1 июля
202527 Топик полностью
Гудвин, волшебник (19.07.2010 23:57, просмотров: 173) ответил Т.Достоевский на А что делает sprintf если строка длиннее чем буфер?
Вообщем, нормально реализованный printf кагбэ универсальнее. Например, для последовательного порта: printf вызывает putchar(), которая кладет очередной символ в кольцевой буфер. Далее можно уже заюзать DMA и прерывания аппаратного порта для передачи из буфера. Указатели на голову и хвост корректируются в этих двух операциях. Размер буфера надо выбирать соответственным тому, что планируешь "принтировать" и с какой интенсивностью. Тот же putchar() должен следить за переполнением буфера и в простейщем случае тупо ждать его освобождения. Вообщем, геморрой еще тот. Посему проще в микроконтроллере применить sprintf, позаботившись о нужной длине буфера. Дальше этот буфер хошь DMA, хошь по прерываниям, хошь поллингом. Меньше ресурсов уйдет... Но нужно все "в уме" держать.