Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: printf и sprintf
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
toweroff
Добрый день!

Есть две задачи в RTX Keil, одна, пользуясь printf, реализует некий интерактивный монитор событий в UART0
Вторая должна выводить данные на LCD дисплей. Хотелось бы воспользоваться sprintf, но смущает когда-то где-то вычитанное упоминание о том, что все xprintf функции не являются reentrant
Что можно в данном случае придумать?

UPD
скорее даже не reentrant, а thread safety?
SSerge
Сделать очередь заданий ввода-вывода и поручить третьей задаче исполнять эти задания одно за другим.
Пример такого решения есть в мануале на scmRTOS.
toweroff
Нашел вот что
http://www.keil.com/support/man/docs/armli...ef_Chdiedfe.htm

похоже, что в моем случае все в порядке

кстати, о птичках. Чем vprintf отличается от printf ?
demiurg_spb
Цитата(toweroff @ Dec 26 2012, 00:23) *
похоже, что в моем случае все в порядке
Да у кейла либы по большей части очень неплохо реализованы.
Цитата
кстати, о птичках. Чем vprintf отличается от printf ?
https://ru.wikipedia.org/wiki/Printf
Цитата
Все функции имеют в имени основу printf. Префиксы перед именем функции означают:

v (vprintf, vsnprintf и т. д.) — функция вместо переменного числа параметров принимает список аргументов va list.
f (fprintf, vfprintf) — вывод результата в передаваемый через параметр функции поток, вместо стандартного вывода.
s (sprintf, snprintf, vsprintf, vspnprintf) — запись результата в строку (буфер в памяти), а не поток.
n (snprintf, vnsprintf) — наличие параметра, ограничивающего максимальное количество символов для записи результата (используется только вместе с префиксом s). В Maple функция nprintf аналогична sprintf, но возвращает не текстовую строку, а имя.
...
toweroff
Цитата(demiurg_spb @ Dec 26 2012, 09:33) *

спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.