2016/04/15

[arm]SEGGERのRTTシリーズ

ARM-M系でSEGGERのJ-Link Liteが使える場合、Real Time Terminal(以下、RTT)でログを取るようにしている。

GDBでRTT – Qiita

浮動小数点は出せないのだが、比較的小さいし、なにより軽い。
一度にたくさんのログを出そうとすると捨てられたりするのだが、デフォルト値のままで使っているせいかもしれない。

 

SEGGERのインストーラを使うと、RTTとつくツールが3つインストールされる。

image


RTT Viewer

何はともあれ、まずはRTT Viewerだ。
これが中心的存在になっている。
この人がHostで、残りのツールはそれを使ったクライアントになっているようだ。

 

RTT Client

RTT Viewerでできることと何が違うのか、今ひとつよくわからない。。
単独で動くのかと思ったけど、RTT Viewerを終了させると待機状態になるし。

Telnetクライアントみたいなものだ、と説明されているので、RTT Viewerでは文字入力を別の枠で行わないといけないのが、RTT Clientだとそのまま入力できるのかもしれない。

ただ、入力機能はまだ使ったことが無いのでね。。。

 

RTT Logger

RTTツールを調べ始めた理由が、これだ。
RTT Viewerのメニューからログ保存開始を選んでも、コンソールのログが保存されないのだ。
Standaloneモードではできそうなことが書いてあるのに。。。

そこで出てきたのが、このLoggerだ。
これを使うと、ファイルに保存してくれる。
デフォルトでRTT Viewerの設定を使うようなのだけど、Channelだかindexだかの設定はデフォルト値が1になっていてダメだった。0だった。


やっていて気付いたのだが、ClientやLoggerを使うと、Viewerの出力がほぼ止まるようだ。
なぜ「ほぼ」かというと、ときどき出るからだ。
そして、出た分はLoggerなどで吸い取っていない。

いやいや、ちょっと待ってくれんか。。。
そういう中途半端なことをされると困るのだ。

 

どうも、先にRTT Viewerを立ち上げた後でLoggerを起動すると、Viewerを終了するとLoggerも切断されてしまう。
Loggerだけ立ち上げると、これでログが取れるようだ。

 

じゃあRTT Clientもそうかと思ったが、これは違うようだ。
localhostでポートを探しに行っているから、Hostと通信しないといけないのだろう。
ポート番号は19021番だが、もしかしてRTT ClientはTlenetクライアントみたいなものじゃなくて、Telnetクライアントそのものなのか?

TeraTermでlocalhost:19021に接続したら、コンソールに出力されている。
なーんだ。

 

そういうわけで、まとめるとこうだ。

  • RTT ViewerとRTT Loggerは同時に使わない方がよい
  • RTT Loggerを使うときは、チャネルだかインデックスだかは0かも
  • RTT Clientは、Telnetクライアントみたいなものだ

たぶん、RTTのカラーが出せるのがRTT Clientのよいところなのだろう。
ライブで見ていると色が付いたログはありがたいのだが、ファイルに保存するのだったら素のテキストが出力されている方がありがたいな。
まあ、ここは使い分けだろう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。