問題タブ [openocd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - ライブラリを静的にリンクするデバッグ可能なプロジェクトをセットアップする方法は?
私はfor の下Eclipse
で働いています。バージョン管理はで、メイクシステムはです。gcc
bare metal ARM
SVN
make
このプロジェクトは非常に大規模であり、一部の領域を外部ライブラリに抽出すると有益です。ライブラリはコンパイルされ、ファイル内に収集され.a
、メイン プロジェクトはそれらに対して静的にリンクします。
私はこれを行うことができました。makefile
ライブラリには、プロジェクトmakefile
が呼び出す独自のがあります。リンクは大丈夫です。ただし、デバッグをセットアップしようとすると問題が発生します。CPU 内で「ハード フォールト」が発生し、デバッガーが次のように報告します。
gdb - STM32F4xx と GDB および OpenOCD のバグ
GCC、GDB、および OpenOCD を使用して、STM32F4Discovery ボードでプログラムを開発しています。
すべて問題なくコンパイルできますが、デバッグを開始すると、プログラムは Reset_Handler ではなく HardFault Handler に直接進みます。
また、フラッシュへの書き込み時に頻繁に問題が発生します。通常、プログラムをフラッシュに正しく書き込むには 2 回の試行が必要です。
この Cortex M4 プロセッサまたは他の Cortex M4 プロセッサでこの種の問題が発生したことのある人はいますか?
c - Makeファイルに問題がある
に問題がありdouble
ます。ターミナルを介して、いくつかの数値を指定する必要があるクエリがあります (たとえば、1 時間あたりの遅延)。端末から 1.1 h などの数値を入力すると、約 -1173000 と出力されます。1.1 のみを出力する必要があります。
Makefile
おそらく、FreeRTOSに問題があると思います。(FreeRTOS を介して STM32F407 プロセッサにコンパイルされないためです!)
この行の何かを修正する必要があると思います!
の完全なコードは次のMakefile
とおりです。
c++ - stm32f100rbtx の起動
STM32F100RBTx でプログラムを実行中に問題が発生しました。eclipse + zadig + openOCD を使用しています。いくつかの割り込みを処理しようとするまで、すべてが正常に機能していました。
Google で調べると、問題はスタートアップ ファイルとアセンブラー ファイルにあると思います。適切なファイルを探しましたが、成功しませんでした。そのファイルを修復するか、別のファイルを探すのを手伝ってくれる人はいますか?
ペーストビン。com/WSrXr2Yi --vectors.c (評判なし)
私のメイン:
bash - コマンド実行後に OpenOCD をデーモン化する方法
OpenOCD は、いくつかのコマンドを実行した後にデーモン化することになっていると聞いたことがあります。
コマンドを CLI 引数として指定してみます。コマンドは実行されますが、OpenOCD はその後バックグラウンドにならないため、GDB は実行されません。openocd コマンドの末尾に「&」を追加することはできますが、GDB と競合状態になります。
フラッシュのロード後に OpenOCD をデーモン化するにはどうすればよいですか?
debugging - Openocd/GDB cortex-m3 デバッグの問題
STM32L ディスカバリー キットの 2 つの LED (GPIO ポート B) をオンにする非常に単純なプログラムを作成しました。
デバッグには GNU ツールチェーンと openocd を使用しています。
コンパイルとリンクはうまくいきました。LMA と VMA が RAM 領域にあるようにコードをリンクしました。
GDB-insight で .elf を開き、いくつかのブレークポイントを挿入して、openocd を実行しました。'openocd-x64-0.7.0 -f stm32ldiscovery.cfg'
gdbプロンプトで、次を実行しました:
===================...ソースコードの一部...==================== ===========
================================================== =
基本的には、GPIO ポート B ( 0x40020400
) を出力モード ( ) に設定し、ポート B の出力レジスタ ( ) に0x55555555
「1」 ( ) を設定します...0x0000FFFF
0x40020414
アセンブリ命令をステップ実行して、レジスタ (r0、r1 ...) が期待値に更新されていることを確認できました...
しかし、基本的にペリフェラル レジスタに新しい値を書き込んでいるstr r2, [r1]
と に到達すると、これらのペリフェラル メモリ位置 (および) が新しい値 (および)に更新されていないことがわかりました。str r2, [r1]
0x40020400
0x40020414
0x55555555
0x0000FFFF
gdb プロンプトから実行monitor mdw 0x40020400
してみましたが、このメモリ ロケーションに新しい値が含まれていないことが確認されました0x55555555
。また、モニターmww 0x40020400 0x55555555
を使用してメモリの場所を書き込もうとしましたが、役に立ちませんでした...セットも試し*0x40020400 = 0x55555555
ましたが、役に立ちませんでした...
誰でも私を助けることができますか?openocd/gdb の構成または設定が間違っているのでしょうか?
gdb - Kepler Eclipse で「GDB OpenOCD Debugging」プラグインを取得する方法
「GDB OpenOCD Debugging」プラグインツールを更新/インストールする方法で、Eclipse の最新バージョン、つまり Kepler を使用しています。
windows-8 - Windows 8 で libusb_open が常に LIBUSB_ERROR_NOT_SUPPORTED を返すのはなぜですか?
x64 アーキテクチャの Windows 8 で OpenOCD を使用しようとしています。Zadig経由でWinUSBドライバーをインストールしました。管理者権限で OpenOCD を実行しようとしましたが、WinUSB のインストール中に Windows 8 ドライバー署名の強制を無効にしました。プログラムを実行しようとすると、libusb_open は LIBUSB_ERROR_NOT_SUPPORTED (-12) を返します。
Windows 8 で libusb-1.0 を正しく実行するにはどうすればよいですか?
PS: ちなみに、Windows 7 x64 でも同じ構成を試しましたが、OpenOCD は問題なく動作しました。
arm - JTAG アダプター ULINK-ME および openocd (ArchLinux 上)
今日、公式の Arch Linux リポジトリから Openocd をインストールし、JTAG アダプターULINK-MEで使用しようとしています。ULINK-ME は CMSIS-DAP デバッグ ファームウェアを使用していることがわかりました。Openocd には CMSIS-DAP ドライバーがあるため、アダプターと通信できるはずですが、以下のコマンドを書いた後、エラーが発生しました。
ULINK-ME を、マイクロコントローラー LPC3141 を統合したボードEA3141に接続しています。これは、構成ファイルをロードする LPC3131 に近いものです。
エラーが発生する理由を知っている人はいますか?
私も別の方法で起動しようとしましたが、やはりエラーが出力されます。今回はちょっと違う。
アップデート:
ULINK-ME の `sudo lsusb -v コマンドの出力は次のとおりです。
「CMSIS-DAP」という文字列がないため、CMSIS-DAP ファームウェアを持たない古い ULINK-ME (2013 年より前に購入) アダプターを使用していると思われます。Keil が私の古い ULINK-ME に CMSIS-DAP をフラッシュする何らかの方法を提供してくれることを願っています。
解決:
Keil に手紙を書いたところ、彼らは ULINK-ME のファームウェアを更新できると主張しましたが、それは事実です。彼らは次の 3 つのリンクを教えてくれました。
2. - ポイント 1 で Keil uVision が単独でこれを行っていない場合はアップグレードします。
Windows マシンに MDK-ARM v5 をインストールしてから、ツールバーの非常に隠れたアイコン (魔法の杖) をクリックする必要がありました。デバッグの下で、ULINK2/ME オプションを選択すると、ファームウェアが自動的に更新されました。現在、ULINK-ME (古いモデル) に CMSIS-DAP があり、次のコマンドで確認できますsudo lsusb -v
。
Wine を使ってこれをやろうとしましたが、できませんでした。少なくとも今は Windows はもう必要ありません。