Cortex-M3 で UART0 経由で printf を正常に使用するために、 retarget.c に実装fputc
しました。fgetc
ただし、追加のデバッグ情報用に 2 つ目の uart チャネルが必要です。printfを使用してUART0と同じようにこれを統合するにはどうすればよいですか?
たとえば、fprintf をカスタム ターゲットに使用し、fputc
どのターゲットに文字を送信するかをチェックします。たとえば、通常の出力fprintf(UART0,"..");
とデバッグ出力の場合fprintf(UART1,"..");
しかし、標準出力に対して fopen が呼び出されているかどうかがわからないため、これを手動で実装する方法を見つけるのに苦労しています。( を呼び出すだけではfprintf(RANDOM_VALUE,..)
、これがどのように動作するかわかりません。
別の「FILE」に向けられたら、fputc内でどちらが指されているかを確認するだけの問題だと思いますが、苦労しているのはFILEポインターの初期設定です。
おそらくstdoutとstderrを区別する何らかの方法がありますが、それでも2つの別々のチャネルから入力を取得するという同じ問題があります。
また、マイクロライブラリに fprintf はありますか?そうでない場合、これを実装するより良い方法はありますか?
ありがとう!