読者です 読者をやめる 読者になる 読者になる

ガレスタさんのDIY日記

電子回路、Web、組み込み、自作エフェクターを語るblog

EclipseベースIDEの便利機能

今回はEclipseの話です
この前プレゼンしたやつのまとめです。
(プレゼン資料のまんまです)

はじめに

今回はARMマイコン統合開発環境で利用されることが多くなってきたEclipseの機能についての説明です。
最近デバッガやらなんやらいろいろ増えてきてどう使う?的な意見が多かったので書いてみました。
僕も始めたときに環境でかなり苦労した覚えがあるので・・・・・
慣れてきた今だからこそよく使う機能的なのをつまんで紹介するというのか今回のコンセプトです。

EclipseベースIDEのいろいろ

今んとこよく見るやつを並べてみるとこんな感じ

IDE メーカーと補足
SystemWorkBenchforSTM32(SW4STM32) STM32
TrueStudio Atollicの開発環境
Kinetis Design Studio Freescaleのやつ
LPCXpresso NXPのやつ
DAVE NXPのやつ
Simplicity Studio シリコンラボのやつ
e2 Studio ルネサスのやつ
MCUXpresso NXPの最新環境(Kinetisもできる)

つかいっぱいあり過ぎて説明できない
DS-5とかもそうだよね・・・

EclipseベースIDEを使う理由

  • 無料なのが多い
  • エディタが優秀
  • デバッグ設定が楽
  • GNUARMEclipseがJLinkとかOpenOCDの専用プラグインを出している(素のEclipseを使う場合かなり役立つ
  • 多社が出しているので一個慣れてしまえばだいたい同じ

とりあえずこんな感じです。
個人的意見がもろに出てますね

今回紹介する機能

  • BreakPoint機能
  • IOレジスタ列挙および書き込み機能
  • 定義先ジャンプ
  • Expression機能
  • エディタ補間(オートコンプリート機能)

BreakPoint機能

デバッグ中に任意の行でプログラムを止めて確認できる機能。
主にifの中に入ってるかなどそういう確認に使える。
f:id:gsmcustomeffects:20170401022853p:plain

IOレジスタ列挙および書き込み機能

Breakpoint動作中にIOレジスタをbit単位で列挙したり書き換えたりできる機能

  • 各種ペリフェラルの初期化設定内容を確認するときに有効
  • ちょっといじってみたいときとかにも有効
  • 割り込みステータスレジスタとかも確認できるので初心者の勉強に非常に役立つ


上記メニューから開く
f:id:gsmcustomeffects:20170401023054p:plain

デバッグ開始してブレーク中にダブルクリックでレジスタを有効にする。
f:id:gsmcustomeffects:20170401023936p:plain



LEDを付けたりしてみるとこんな感じになる

f:id:gsmcustomeffects:20170401023513p:plain

f:id:gsmcustomeffects:20170401023523p:plain

定義先ジャンプ機能

f:id:gsmcustomeffects:20170401024032p:plain

  • 最近メーカー製ライブラリ群(HALと呼ばれることが多い)が多くなってきておりAPIの数がすごく多い。そういったときに毎回データシートを見に行くのは面倒(いや見ようねw
  • 定義先にいけばなんとなく何してるかわかる場合も多い。
  • 理解の補助になる。
  • Defineマクロを多用してるライブラリの解析。

やり方は関数にカーソル合わせてF3を押すか右クリでOpen Declarationをクリック

f:id:gsmcustomeffects:20170401024250p:plain

Expression機能

変数や構造体の中を見れる機能

f:id:gsmcustomeffects:20170401024331p:plain

SystemCoreClockとか見れる
f:id:gsmcustomeffects:20170401024517p:plain

ちなみにSystemCoreClockはCMSIS内で定義されてる変数なので以下の画像を参照してほしい

f:id:gsmcustomeffects:20170401024625p:plain


ちなみにGPIOレジスタも列挙できる

f:id:gsmcustomeffects:20170401024701p:plain

まとめ

  • EclipseベースIDEの主な便利機能を紹介した。
  • 今後も何かあれば紹介していきたい