C++を使ったARM(STM32)のプログラミング・デバッグ環境

C++を使ったARM(STM32)のプログラミング・デバッグ環境

全プラットフォーム共通

おすすめは GNU ARM Eclipse Plugin です.
Eclipse上でコンパイルや書き込み,デバッグが一括して可能です.
特にデバッグ面では,レジスタの読み出しのみならず,QEMUによる仮想デバイス上で実行・解析ができるなど,いたれりつくせりです.
悪いこと言わないので使いましょう.

以下古い情報

ずいぶん前にEclipseベースで作成してパッケージした環境があるので,ご紹介します.

ブツ

(´⊙ɛ ⊙`)つ [ ブツ ]
最終更新:2014/01/19 19:20

使い方 - ビルド編

  1. 解凍します
  2. ねむいさんのぶろぐのおきばからOpenOCDバイナリをダウンロードして,ocdフォルダに解凍します
    フォルダはだいたいこんな感じになります
  3. Eclipseを起動します.デフォルトでワークスペースが開かれていない場合は,File->
    Switch Workspace->Other…から,自分が解凍したフォルダの中のworkspaceフォルダを選択して開きます.eclipse_workspace.png
  4. とりあえずどれかビルドしてみましょう eclipse_build.png こんな感じでビルドに成功したら勝ちです.あとは好きに書いて好きにビルドしてください. (13.06.26 11:00追記)
    コンソール上でなくエディタ上でエラーや警告が出ている場合は,インデックスを再作成することで解決します. eclipse_index_error.png プロジェクトを右クリックしてIndex->Rebuildを実行すると,エラーが消えます. eclipse_index_rebuild.png

使い方 - デバッグ編

  1. ST-LinkやDiscovery基板をUSB接続した状態でOpenOCDを起動します
    F1,F2,F3,F4シリーズに対応しています.それぞれ当てはまるものを起動してください. eclipse_openocd.png 成功すると,画面下のコンソールにインフォメーションが表示されます. ここで怒られたあなたは,接続を確認するか,ねむいさんのぶろぐからOpenOCDをきちんとダウンロードしてきたかどうか確認してください.
    ST-Linkを自作基板とつないで使う場合は,自作基板側の電源もONにしておいてください.
    これらをチェックしてもうまくいかない場合は,ドライバが悪さをしていることがありますので,次の手順に従ってください.
    1. デバッグやOpenOCDを終了しておきます(赤い■ボタン)
    2. 同梱のzadig.exeを起動します
    3. Options->List all Devicesをクリックします zadig.png
    4. STM32 STLinkが選択されていることを必ず確認してから Upgrade Driverをクリックします. zadig_upgrade.png
    5. ドライバがインストールされ,準備が整いました.手順1に戻って再度試してみてください.
  2. 次に,画面上の虫マークからテンプレートに対応するデバッグ構成を選択して起動します eclipse_debug.png 次のようなエラーメッセージで怒られた場合は,プロジェクトエクスプローラ上でプロジェクトを選択してから再度デバッグを実行してみてください. デバッグの設定はプロジェクトを複製しても複製されないので,テンプレートプロジェクトをコピーする場合は,デバッグの構成ウィンドウで構成を複製して使ってください. eclipse_debug_conf.png
  3. デバッグが始まります eclipse_debug_window.png デフォルトではmain関数にブレークポイントを設定してからReset_Handlerを呼んでいます.
    プログラムをスタートするには,画面上部のリジュームボタンをクリックします. eclipse_debug_resume.png
  4. レジスタの中身を見たり変えたりしたいときは,画面下部からEmbSys Registersタブを開いてください. eclipse_debug_register.png
  5. ブレークポイントを設定したり,ステップインなどの機能を使って思う存分遊んじゃってください.

内容物

  • Eclipse
    • Eclipse IDE for C/C++ Developers (Juno) 1.5.2.20130211-1820
    • C/C++ GDB Hardware Debugging 7.0.0.201302132326
    • Embedded Systems Register View (SFR) 0.2.3
  • YAGARTO
    • yagarto 20111119
    • yagarto-tools 20100703
  • Libraries
    • STM32F0xx Standard Peripherals Library
    • STM32F10x Standard Peripherals Library
    • STM32F2xx Standard Peripherals Library
    • STM32F30x Standard Peripherals Library
    • STM32F4xx Standard Peripherals Library
    • STM32 USB OTG Driver
    • STM32 USB Host Library
    • STM32 USB Device Library
    • STM32 CPAL Driveer
    • Baselibc( https://github.com/PetteriAimonen/Baselibc )
    • STM32 EEPROM Emulation Library
    • DFUW( http://strawberry-linux.com/stbee/dfuw ) (for STBee series)
  • Example Projects
    • STM32F1Template
    • STM32F2Template
    • STM32F3Template
    • STM32F4Template
    • STBeeMiniTemplate
  • External Tools
    • Zadig(OpenOCD用にドライバを更新するのに必要)

著作権に関して

Eclipse,YAGARTO,Zadig,DFUW,各種ライブラリは二次配布物であり,その著作権はそれぞれの作者に帰属します.
一応下調べはしてありますが,ライセンス等の関係で問題があるようでしたらお知らせください.

サンプルプロジェクトのコードは著作権フリーとして扱います.
ご自由に改変・再配布いただいて構いません.