鳥なき里のマイコン屋(66) SW4STM32、デバッガを使ってみる

JosephHalfmoon

何でまたMbedのWeb環境があるのに、SW4STM32のローカル開発環境をわざわざインストールして、Mbedからコードをイクスポートしたかと言えば、それは

デバッガ

を使いたかったから、という一点につきます。以前、同様な理由からMbedのCLI環境をインストールしてデバッガ動かしてみましたが、正直、

CLIのコマンドを覚える記憶力が失われている気がする

ので辛い。GUIでブレークポイント張って、変数の内容くらい確かめられたらとてもハッピー。ただそれだけでございます。

しかし、インストールしたばかりの環境、うまく動かなくて当然です。例の虫アイコンでデバッガを起動すれば、つれなくエラーで起動しません。

OpenOCDが見つからない

というエラーでした。CLIインストールしたときにOpenOCDも環境作ったのですが、今回のSW4STM32のインストールディレクトリの下を見ていくと、こちらはこちらで、OpenOCDがインストールされています。バージョン違いなどで動作しないのも困るので、手動でOpenOCDのパスをこちらに向けたら問題なくデバッガが起動いたしました。この程度で動くのであればストレスも無し。

早速、main関数のwhileループ内にブレークポイント張ってからmainを実行開始してみます。止まりました。変数(この場合はmbed::DigitalOutクラス)にカーソルをもっていけば、このとおり、変数の内容バッチリ見えまする。これだけできたらもうOKだな~。

Mbed式呼び方では「マルチスレッド」、普通のRTOS式なら「マルチタスク」なOS5のプログラムなので、セマフォとかも使っておりますぞ。子スレッドの中で止めて、セマフォを覗いてみました。こんな感じ。

 

楽ちんだな~ コールスタックなども、右クリックメニューから一発で表示可能です。下は、e_flagという名のイベントフラグを呼び出すコールスタック。

勿論、CPUレジスタの値など低レベルなものも見えまする。開発環境によっては、変数が最適化されてレジスタ上にしかない時は、自分でレジスタ値を確認必要なものもあるけれど、この環境はどうなんでしょう。ま、そのくらい大した手間でもないけれど。

残念ながら、ソースとアセンブリのインタレース・ビューみたいな機能は見当たらなかったですが、アセンブリレベルでステップ実行させるモードにすると、自動的に逆アセンブルリストが表示されました。

他にもペリフェラルのレジスタを表示(ご丁寧なことにレジスタ毎の説明までついてくる)するような機能もあるので、使いこなせたら、ほんと良いな(まだ、良く分からない機能がいろいろあるのだけれど)

なんとなれば、gdbのコンソールが下の方に開いているので、そこに手でコマンドを打ち込むのも有かと。黒字は向こうから表示してきているもの、緑字がこちらからの入力。helpと入力すれば、gdbのhelpが表示されてますね。

鳥なき里のマイコン屋(65) SW4STM32、MbedからExportしてみる へ戻る

鳥なき里のマイコン屋(67) Mbed Studio ちょっと使ってみた へ進む