STM32F4 openOCDコンソールを使ってデバッグする方法

STM32F4-Discovery boardを使ってデバッグを行う方法を調べたので備忘録としてまとめておきます。

■ 前提条件

  • IDE環境を使う場合は、eclipseなどをインストールしておくこと

    上記の動画にて手順が公開されています。
    こちらの環境を先にそろえておくことをお勧めします。
  • OpenOCDのインストール
  • GNU Tools for ARM Embedded Processorsのインストール
  • telnet環境のインストール(teratermなど)

 

■ 記載のプロジェクトについて

下記のフォルダにプロジェクトが作成されているものとて説明します。
D:\STM32_Toolchain\workspace\STM32_Project\

■ デバッグ方法

1. dosプロンプトを起動

2. ディレクトリの移動(プロジェクトのディレクトリを指定)
OpenOCDでデバッグする対象のプロジェクトのデバッグフォルダまでディレクトリを移動します。
>cd D:\STM32_Toolchain\workspace\STM32_Project\Debug

3. OpenOCDを実行する
OpenOCDを実行する際にcfgファイルを指定します。OpenOCD実行ファイルへの打ち込みが面倒な場合は、
環境変数のPATHにパスを打ち込んでおきます。

>D:\STM32_Toolchain\openocd-0.8.0\bin\openocd-0.8.0.exe -f interface/stlink-v2.cfg -f target/stm32f4x_stlink.cfg

4. telnet(teratermなど)を使いlocalhostに接続
telnet経由でコマンドを使用する際には、以下の設定で接続します。
【ホスト名】localhost
【ポート番号】4444

5. コマンドの種類
telnet経由で接続後、
Open On-Chip Debugger
>
のようなプロンプトが表示されます。コマンドを確認する際は、
>help
を打ち込むことによって確認ができます。

OpenOCD User’s Guide
http://openocd.org/doc/pdf/openocd.pdf

6. 以下、よく使うと思われるコマンドを記載しておきます。

・イメージの書き込み(telnet)
>init; reset halt
>flash write_image erase STM32_Project.elf
・実行
>reset run
・停止
>halt
・状態確認
>poll
・再開
>resume
・シャットダウン
>shutdown

■eclipseでうまくデバッグできない場合の対処法
http://vedder.se/2012/12/debugging-the-stm32f4-using-openocd-gdb-and-eclipse/
※ openocdのコマンドはインストールしているバージョンに合わせること。
例)openocd-x64-0.8.0 -f stm32f4discovery.cfg
●こちらも参考にすること!
デバッグ環境をさらに整えるために!
http://thehackerworkshop.com/?p=602
halt
flash erase_sector 0 0 last
flash write_image {D:/STM32_Toolchain/workspace/Sample03/Debug/Sample03.elf} 0 elf
reset

●デバッグまとめ
OpenOCDをdosから立ち上げ、以下のコマンドを打ち込む
(eclipse上のExternal Tools Configuration..にショートカットを打ち込んでもよい)
init; reset halt
flash write_image erase ${project_name}.elf
reset run
shutdown

OpenOCDを再度立ち上ておく
D:\STM32_Toolchain\openocd-0.8.0\bin\openocd-0.8.0.exe -f interface/stlink-v2.cfg -f target/stm32f4x_stlink.cfg
Debug Configurationsで設定したコンフィグを起動する。
(http://thehackerworkshop.com/?p=602 を参考のこと)

→デバッグが可能となる。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中