STM32開発環境構築 > OpenOCDで書込み・デバッグ

「STM32開発環境構築/OpenOCDで書込み・デバッグ」の編集履歴(バックアップ)一覧はこちら

STM32開発環境構築/OpenOCDで書込み・デバッグ」(2013/06/26 (水) 22:17:45) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*OpenOCDにスクリプトを追加 -"C:\stm32\openocd\scripts\"に、"openocd_myfunc.cfg"という名前で以下の内容のファイルをメモ帳などで作成。 #highlight(){{ proc halt_mpu { } { init reset halt } }} -Eclipseでデバッグ時、この関数をOpenOCD起動コマンドで呼び出さないと、正常にデバッグ操作ができない。 *EclipseからOpenOCDを起動できるようにする -Eclipseのメニューバーで[Run]-[External Tools]-[External Tools Configurations]を選択。&br()(あいは、メニューバーで、ExtarnalToolsボタン(再生マークの右下にバッグが描いてあるボタン)の下向きの三角をクリック、[External Tools Configurations]をクリック。) -左メニューのなにもないところを右クリック。出てきたコンでキスとメニューで[New]を選択。 -"Name"テキストボックスに"OpenOCD"と入力。 -"Arguments"に下記の文をコピー。 |STM32VLD|-s C:/stm32/openocd/scripts -f board/stm32vldiscovery.cfg -f openocd_myfunc.cfg -c halt_mpu| |STM32LD|| |STM32F4D|| -"Common"タブの"Display in favorites menu"で"External Tools"にチェックを入れる。 -"Apply"ボタンを押し設定を適用、"Close"ボタンでウィンドウを閉じる。 *EclipseからOpenOCDを起動できるか確認 -メニューバーの[Run]-[External Tools]-[OpenOCD]を選択。 -ウィンドウ下の"Console"ビューに下画像のようなメッセージが出力され、ST-LinkのCOMランプが点滅していれば、正常に起動できている。 -"Console"ビューの"Tarminate"ボタン(四角の停止ボタン)を押し、OpenOCDを終了する。 *EclipseからOpenOCDでデバッグできるようにする -Eclipseのメニューバーで[Run]-[Debug Configurations]を選択。 -左のメニューで"Zylin Embedded debug (Native)"を右クリック。 -出てくるコンテキストメニューで、"New"を選択。 -"Debugger"タブを選択。 -"GDB debugger"テキストボックスに"arm-elf-gdb"と入力。 -下にある"Verbose console mode"と"Use full file path to set breakpoints"にチェックを入れる。 -"Apply"ボタンを押して設定を反映する。 -"Commands"タブを選択。 -"'Initialize' commands"テキストボックスに下記の文を入力。 #highlight(){ target remote localhost:3333 load monitor soft_reset_halt break main } -"'Run' commands"テキストボックスに以下の文を入力。 #highlight(){ continue} -"Apply"ボタンを押して設定を反映する。 -"Common"タブの"Display in favorites menu"で"Debug"にチェックを入れる。 -"Apply"ボタンを押して設定を反映し、"Close"ボタンでウィンドウを閉じる。 *EclipseからOpenOCDでデバッグできるか確認 -ツールーバーの"Debug"ボタンにある下向き三角を押し、"プロジェクト名 Debug"(説明通り操作しているなら、"blink_led Debug"となっている。)を選択し、デバッグを開始。&br()自動でプログラムがマイコンに書き込まれ、main関数でストップ(ブレイク)するようコマンドが送信される。 -初回はパースペクティブを切り替えるか確認するウィンドウが表示されるが、"OK"を選択。 -ソースコードが表示され、main関数のはじめの命令で止まっていることを確認する。&br()(説明通り操作しているなら、"RCC_APB2PeriphClockCmd(RCC_APB2P..."という行で止まっているはず。) -ツールバーの"Step Over"を押すことで、1行ずつ実行されていけば、正常にデバッグできている。&br()(ショートカットキーとしてF6キーでもできる。) *デバッグの手順 -マイコンボードをUSBケーブルでパソコンに接続する。 -プロジェクトをビルドする。 -ツールバーの[External Tools]-[OpenOCD]を選択し、OpenOCDを起動。 -ツールバーの[Debug]-[プロジェクト名 Debug]を選択し、デバッグを開始。自動でmain関数で停止する。(同時にパースペクティブがDebug用に切り替わる。) -以下の操作でデバッグを進め、バグを見つける。 --止めたい行の右端をダブルクリックすことで、ブレークポイントを設定できる。 --ツールバーの"Resume"ボタンでプログラムをスタート。ブレークポイントがある行まで実行される。 --ツールバーの"Step Into(F5)"で、1行ずつ実行。(関数内にも入る。) --ツールバーの"Step Over(F6)"で、1行ずつ実行。(関数内に入らない。) --ツールバーの"Step Return(F7)"で、関数の外に出る。 --ソースコードの変数名にマウスポインタを置くことで、変数の内容を見ることができる。 --その他の詳しい操作法は、[[マイコン徹底入門-12.2.3.4. Debugパースペクティブの見方>http://miqn.net/introduction/204.html]]から順に見ていくと、わかると思います。 -STM32マイコンのプログラム書き換え回数は、1万回(保証値)なので、実質書き込み回数を気にせずデバッグできると思います。
*OpenOCDにスクリプトを追加 -"C:\stm32\openocd\scripts\"に、"openocd_myfunc.cfg"という名前で以下の内容のファイルをメモ帳などで作成。 #highlight(){{ proc halt_mpu { } { init reset halt } }} -Eclipseでデバッグ時、この関数をOpenOCD起動コマンドで呼び出さないと、正常にデバッグ操作ができない。 *EclipseからOpenOCDを起動できるようにする -Eclipseのメニューバーで[Run]-[External Tools]-[External Tools Configurations]を選択。&br()(あいは、メニューバーで、ExtarnalToolsボタン(再生マークの右下にバッグが描いてあるボタン)の下向きの三角をクリック、[External Tools Configurations]をクリック。) -左メニューのなにもないところを右クリック。出てきたコンでキスとメニューで[New]を選択。 -"Name"テキストボックスに"OpenOCD"と入力。 -"Arguments"に下記の文をコピー。 |STM32VLD|-s C:/stm32/openocd/scripts -f board/stm32vldiscovery.cfg -f openocd_myfunc.cfg -c halt_mpu| |STM32LD|| |STM32F4D|| -"Common"タブの"Display in favorites menu"で"External Tools"にチェックを入れる。 -"Apply"ボタンを押し設定を適用、"Close"ボタンでウィンドウを閉じる。 *EclipseからOpenOCDを起動できるか確認 -メニューバーの[Run]-[External Tools]-[OpenOCD]を選択。 -ウィンドウ下の"Console"ビューに下画像のようなメッセージが出力され、ST-LinkのCOMランプが点滅していれば、正常に起動できている。 -"Console"ビューの"Tarminate"ボタン(四角の停止ボタン)を押し、OpenOCDを終了する。 *EclipseからOpenOCDでデバッグできるようにする -Eclipseのメニューバーで[Run]-[Debug Configurations]を選択。 -左のメニューで"Zylin Embedded debug (Native)"を右クリック。 -出てくるコンテキストメニューで、"New"を選択。 -"Debugger"タブを選択。 -"GDB debugger"テキストボックスに"arm-elf-gdb"と入力。 -下にある"Verbose console mode"にチェックを入れる。 -"Apply"ボタンを押して設定を反映する。 -"Commands"タブを選択。 -"'Initialize' commands"テキストボックスに下記の文を入力。 #highlight(){ target remote localhost:3333 load monitor soft_reset_halt break main } -"'Run' commands"テキストボックスに以下の文を入力。 #highlight(){ continue} -"Apply"ボタンを押して設定を反映する。 -"Common"タブの"Display in favorites menu"で"Debug"にチェックを入れる。 -"Apply"ボタンを押して設定を反映し、"Close"ボタンでウィンドウを閉じる。 *EclipseからOpenOCDでデバッグできるか確認 -ツールーバーの"Debug"ボタンにある下向き三角を押し、"プロジェクト名 Debug"(説明通り操作しているなら、"blink_led Debug"となっている。)を選択し、デバッグを開始。&br()自動でプログラムがマイコンに書き込まれ、main関数でストップ(ブレイク)するようコマンドが送信される。 -初回はパースペクティブを切り替えるか確認するウィンドウが表示されるが、"OK"を選択。 -ソースコードが表示され、main関数のはじめの命令で止まっていることを確認する。&br()(説明通り操作しているなら、"RCC_APB2PeriphClockCmd(RCC_APB2P..."という行で止まっているはず。) -ツールバーの"Step Over"を押すことで、1行ずつ実行されていけば、正常にデバッグできている。&br()(ショートカットキーとしてF6キーでもできる。) *デバッグの手順 -マイコンボードをUSBケーブルでパソコンに接続する。 -プロジェクトをビルドする。 -ツールバーの[External Tools]-[OpenOCD]を選択し、OpenOCDを起動。 -ツールバーの[Debug]-[プロジェクト名 Debug]を選択し、デバッグを開始。自動でmain関数で停止する。(同時にパースペクティブがDebug用に切り替わる。) -以下の操作でデバッグを進め、バグを見つける。 --止めたい行の右端をダブルクリックすことで、ブレークポイントを設定できる。 --ツールバーの"Resume"ボタンでプログラムをスタート。ブレークポイントがある行まで実行される。 --ツールバーの"Step Into(F5)"で、1行ずつ実行。(関数内にも入る。) --ツールバーの"Step Over(F6)"で、1行ずつ実行。(関数内に入らない。) --ツールバーの"Step Return(F7)"で、関数の外に出る。 --ソースコードの変数名にマウスポインタを置くことで、変数の内容を見ることができる。 --その他の詳しい操作法は、[[マイコン徹底入門-12.2.3.4. Debugパースペクティブの見方>http://miqn.net/introduction/204.html]]から順に見ていくと、わかると思います。 -STM32マイコンのプログラム書き換え回数は、1万回(保証値)なので、実質書き込み回数を気にせずデバッグできると思います。

表示オプション

横に並べて表示:
変化行の前後のみ表示: