コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

STBee とその開発に使えるJTAGケーブルの実際。
まずは STM 純正の ST-Link のお話。

これ自体 2500円ちょいで買えるので、開発ツールはこれ一本で完璧なんじゃね?と思われるのだけれども、本当にオープンソース周りで開発を固めようとすると「ドライバー等がオープンじゃない」という問題がある。一番大きな影響は MacOSX や Linux で利用するすべがなさそうだ、という所に尽きるだろう。
Windows だけで良いよといった場合は無償環境でそこそこはいけるので、なにができるのかを記しておく。

■ ファームのアップデート
ST-Link を入手したらまずはファームウェアのアップデートを行う。
STMicro のサイトに行って ST-Link Upgrade をダウンロードする。

すると案の定古いバージョンだからアップデートするように催促されるのでアップデートしておこう。
ここで、最新のファームウェアにしておかないと後述する Atollic のデバッグプロキシが動作しないことがある。地味にひっかかるポイント。

■ AT-Link Utility
STMicro のサイトに AT-Link 用のアプリケーションとして AT-Link Utility が提供されている。もちろん無償。

これを使うと ST-Link を JTAGケーブルとして STM32 のメモリ空間がダンプできる。
このダンプされているメモリ空間に対し、バイナリデータのアップロードや、ダウンロード、およびフラッシュメモリのイレースを行うこともできる。つまり基本的なダウンロード作業は ST-Link と ST-Link Utility で一通りできるのだ。
フラッシュメモリの吸い上げもできるのが嬉しいところ。STBeeユーザーは、これを使って DFUe ファームウェアをバックアップしておくと、書きつぶしちゃった後にいつでも復活できるようになるよ。

Reset/Run/Halt といった実行だけでなく、レジスタも見れてプログラムカウンタ単位のステップ実行もできるので、バイナリダンプを見て命令を脳内デコードできる人ならこれだけでデバッグできるかもしれない。

とまあ、ソースコードデバッグを考えなければ ST-Link と無償提供の ST-Link Utility でダウンロード&実行はできてしまう。
Windows ユーザーであれば持っていても良いケーブルかもしれない。

■ デバッグ環境
ARM系列を JTAG ケーブルでソースコードデバッグするとき、hobbyユーザーとしては GDB+OpenOCDが鉄板というか他があまりないわけなのだが、ST-Link がオープンじゃないっぽいので OpenOCD が使えないらしい。
デバッグをするには IAR, KEIL, Atollic といったプロユースの有料開発環境には ST-Link 用のドライバーとそれを利用する GDB Server が付いてくる。
しかしそれらはプロ用と称すだけあってお値段数十万円だったり、hobby用の廉価版がなかったりといった問題がある。一応、無料利用できる制限版があるのだけれども、IARとKEILは出力バイナリにサイズ制限があったりする。
Atollic TrueSTUDIO は無料体験できる Lite版でもサイズ制限がなく、デバッグもできるので多くの人が使っているようだ。

Eclips ベースの IDE 製品なのでこういった環境が欲しい人は ST-Link とセットで使えば、完全なゴールとなろう。
ただし Lite版には以下の制限がある。
・事ある毎に「Pro版にアップグレードしましょう」というダイアログが出てきて 3秒待たされる
・ダウンロードする際登録したメールアドレスに「あなたの業種はなんですか?Pro版を購入しませんか?」といった旨のアンケートメールが届く
それが気にならないなら悪くない選択だろう。

さて、Atollic TrueSTUDIO をインストールすると、ST-Link GDB server というコマンドラインプログラムが存在している事に気がつく。

これがまさに GDB Server そのもので、True STUDIO は裏でこれを起動してデバッグを行っている。ST-Link へ続く GDB server なのでこれさえあれば、別個に用意した ARMクロス開発用の GDB でデバッグをすることができる。

実際にコマンドライン上での GDB でデバッグできることはもちろん、Meadow などの Emacs をつかって GUD ソースコードデバッグを行うことができる。
先にビルドしておいた Tool chain で、コンパイルからデバッグまで一通りできることが確認された。

なので個人的に欲しいのは Atollic TrueSTUDIO の ST-Link GDB server だけなのだけれども、それだけのために個人情報を入力してダウンロードするかというのは考えどころ。

Leave a Reply