fc2ブログ

773mbar

2024年01月 ≪  1234567891011121314151617181920212223242526272829 ≫ 2024年03月
TOPIntel Galileo ≫ Intel Galileo : トレース出力を活用してみる

Intel Galileo : トレース出力を活用してみる

動かないシールドの原因確認をいろいろ。
ライブラリの途中にprintfとか入れようと思ったが、Galileoの各ソースを見るとトレース出力がいろいろある。これを活用しない手は無いだろう。
トレース出力関連の処理はtrace.h/cに書かれている。出力のレベルはTRACE_LEVEL_ERROR/INFO/DEBUGの3種類、DEBUGが最も情報量が多い。これに設定してみよう。
デフォルトではTRACE_LEVEL_INFOが設定されている。これは hardware/arduino/x86/variants/galileo_fab_d/variant.h の中で設定されている。

#define VARIANT_TRACE_LEVEL TRACE_LEVEL_INFO // default trace level 

これを TRACE_LEVEL_DEBUG に書き換える。
トレース出力は stdout に出力される。デフォルトでは /tmp/log.txt に書き出されるのでこれを tail とかで表示させればいいが、トレース出力だけでなくエラーに関する情報を stderr に書いているところもある。これは /tmp/log_er.txt に書かれる。情報が分散されると見づらいので同一出力先にしたほうが便利。そこで main.c を書き換え、両方とも /dev/console に出力されるようにする。

(前略)
// stdout = freopen("/tmp/log.txt", "w", stdout);
stdout = freopen("/dev/console", "w", stdout);
(中略)
// stderr = freopen("/tmp/log_er.txt", "w", stderr);
stderr = freopen("/dev/console", "w", stderr);
(後略)

これでシリアル出力にトレース出力が表示される。
スケッチでトレース出力をするには、まず MY_TRACE_PREFIX を何か定義する。この文字列がトレース出力の頭に追加される。

#define MY_TRACE_PREFIX "MySketch"

あとは trace_debug, trace_info, trace_errorのいずれかで出力する。

trace_debug(“TEST\n”);

Serial.printとは別に表示でき、便利。
スポンサーサイト



Intel Galileo | Comments(0) | Trackbacks(-)

Comment













非公開コメントにする