信頼性の高いデバッグ設定を取得できません。 私はネット上のいくつかのフォーラムで同様のタイトルで他のスレッドを見ましたが、状況は異なって見えます。理由7 - ターゲットをリセットする必要がある - 信頼性の低いデバッグ設定
セットアップ:
- のLinux(Xubuntuの)64
- のEclipse CDT、ネオン4.6.0
- "GDBハードウェアデバッグ" プラグイン日食からは&遅延3秒をリセットするように構成され、 "新しいソフトウェアをインストールします" 、停止;ロード・シンボル(すべてのチェックボックス、いないカスタムコマンド)
- アームなし-EABI-GCC 4.8.3ツールチェーン
- それらによって提供されるスクリプトと私の正確なMCU用に構成された独自のコンソールで実行されている最近ダウンロードOpenOCD、、、& st-link
- STM32L476RGハードフロート付きMCUを使用しています。
- ST-LinkのV2デバッガ(スタンドアロン)
は今、「そこに私がいるとシーケンスは、すべての時間は、いくつかの闘争の後、デバッガを使用して接続することができるが、doesnの変数をステッピングと読んで私は1秒間見ているものを信頼すると確信しています。 しかし、呼び出しスタックが明白なナンセンスエントリではなく、そのうちごくわずかしか疲れていないその時点に到達することさえも、疲れている。
例:
- フラッシュファームウェアを持つデバイス。これは通常問題なく動作します。
- openocdを開始してください。
- Eclipseでデバッグを開始します。
- OpenOcdは次のように言っています: "未定義のデバッグ理由7 - ターゲットがリセットする必要があります"
- Eclipseで "resume"ボタンを押しても、プログラムは偽のトップスタックフレームを超えて実行されます。
- 「サスペンド」(まだコールスタックでは偽装)を押してから「終了」を押します。
- OpenOcdからCtrl + Cを押します。
- stm32 MCUを手動で(ハードウェアで)リセットします。
- OpenOcdを再起動します。
- Eclipseでデバッグを再開します。
OpenOCD出力:
GNU ARM Eclipse 64-bits Open On-Chip Debugger 0.10.0-dev-00287-g85cec24-dirty (2016-01-10-10:31) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Info : auto-selecting first available session transport "hla_swd". To override use 'transport select '. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD adapter speed: 500 kHz adapter_nsrst_delay: 100 none separate none separate Info : Unable to match requested speed 500 kHz, using 480 kHz Info : Unable to match requested speed 500 kHz, using 480 kHz Info : clock speed 480 kHz Info : STLINK v2 JTAG v24 API v2 SWIM v4 VID 0x0483 PID 0x3748 Info : using stlink api v2 Info : Target voltage: 3.192646 Info : stm32l4x.cpu: hardware has 6 breakpoints, 4 watchpoints Info : accepting 'gdb' connection on tcp/3333 Info : device id = 0x10076415 Info : flash size = 1024kbytes undefined debug reason 7 - target needs reset
は現在、いくつかの幸運と、私は最終的にしばらくの間、多少の作業デバッガ接続を持っています。 しかしこれにはいくつかの繰り返しが必要かもしれません。 接続が間違っているときに「プレス再開」するのはなぜですか?確かに、これは次の反復で私が接続をたくさん持っている可能性を高めるように思われました。
多分関連性のあるノート: MCUにはLCDが接続されており、リセットされてから見ることができます。 何らかの理由で、Eclipseでデバッグを開始すると明らかにではないデバッグ設定でリセットチェックボックスがオンになっていますが、デバイスをリセットします。 ターミナルでOpenOCDへのtelnet接続を開いてそこで「リセット」すると、デバイスはリセットされます。
セットアップの奇妙な動作の原因は何ですか?
openocd .cfgで「リセット停止」を入力するか、gdbで「monitor reset halt」と入力してください。 –