Перейти к содержанию
    

Вывод в EWARM

Есть совсем маленькая программка:

#include <stdio.h>
int main()
{
    printf ("test1\n");
    printf ("test2");
    printf ("3\n"); //Breakpoint here
    while(1);
  return 0;
}

Если компилируем с Library Normal, то в точке останова на терминале будет "test1\ntest2", а после нее "test1\ntest23". В общем, предсказуемо. Но если скомпилировать с Library Full, то в точке останова "test1", а после нее "test1\ntest23". То есть, вывод в терминал пойдет только после '\n'.

Вопрос номер один: как подлечить такое поведение

Вопрос номер два: как написать функцию __write, чтобы при stdout, stderr вывод осуществлялся в терминал, как обычно, а при записи в другие файлы шел куда надо (например, в UART). То, есть, если я __write не определяю вообще, то fprintf (stdout, ...) печатает в терминал, а в UART печатать не могу, но если переопределять __write, то непонятно, как печатать в терминал?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...