2016-05-13 2 views
-1

Привет, я хочу использовать макрос debug_print, который сможет делать то, что делает printf, но я работаю с micrium (RTOS), который не поддерживает printf.So Может ли кто-нибудь помочь мне, как реализовать макрос debug_print, поддерживающий microium RTOSprintf function for micrium

+0

_ Есть слишком много возможных ответов, или хорошие ответы будут слишком длинными для этого формата. Пожалуйста, добавьте детали, чтобы сузить набор ответов или изолировать проблему, на которую можно ответить в нескольких параграфах. –

+0

Пожалуйста, покажите свои исследовательские усилия до времени. Сначала прочитайте страницу [Ask]. –

+0

Давайте сделаем записи прямо. Вы хотите распечатать в файл журнала или какой-либо глобальный буфер? –

ответ

0

Это не обязанность RTOS предоставлять printf - это стандартная библиотека вашего компилятора - вам может потребоваться реализовать низкоуровневую поддержку выбранного вами устройства вывода; то, что вам нужно сделать, будет зависеть от библиотеки и/или инструментальной цепочки. Большинство небольших RTOS предоставляют немного больше, чем планирование, синхронизацию, синхронизацию и услуги IPC и не обеспечивают поддержку ввода-вывода. Это не означает, конечно, что вы не можете использовать службы RTOS для реализации поддержки ввода-вывода.

Если ваша библиотека не предоставляет printf, или ее поддержка слишком тяжелая для ваших нужд (для некоторых реализаций требуется много места для стека, а поддержка спецификатора полного формата может быть дорогостоящей в кодовом пространстве на очень маленьких объектах), есть множество легких реализаций, таких как Tiny Printf.