FC2ブログ

773mbar

2018年11月 ≪  12345678910111213141516171819202122232425262728293031 ≫ 2019年01月
TOPスポンサー広告 ≫ Intel Galileo : トレース出力を活用してみるTOPIntel Galileo ≫ Intel Galileo : トレース出力を活用してみる

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | Comments(-) | Trackbacks(-)

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













非公開コメントにする
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。