問題タブ [jtag]
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.
eclipse - Eclipse を使用した組み込みシステムのデバッグ - ログ ファイルに出力するには?
現在、STM32F4 のプロジェクトに取り組んでおり、Eclipse を使用しています。プログラムにいくつか問題があります - ランダムな動作をしているようです - 正常に動作する場合もあれば、エラーが発生する場合もあります。ブレークポイントを使用してデバッグしようとすると、美しい HardFault Handler が表示され、頭が混乱することがあります。
少しトピックから外れたパラグラフで申し訳ありませんが、プログラムのいくつかの重要な瞬間にログファイルへの出力を使用することにした理由をお知らせしたかったので、どの状態とどの機能で問題が発生したかを確認できます. Eclipse (gdb) で JTAG インターフェイスを介してデバッグしていますが、プログラム内で fprintf のような関数を使用してディスク上のファイルに書き込むのに役立つ、Eclipse に統合された簡単な方法があるかどうかを知る必要があります。
いいえの場合、他の解決策はありますか?
ありがとう
linux - NANDフラッシュを読み取り、別のシステムに書き込む
組み込みシステムのナンドフラッシュを読み取り、別のシステムのナンドフラッシュに書き戻したい。デバイス上で実行されているLinuxシステムのルートにアクセスできます。システムはAM3874に基づいており、私もそのJTAGにアクセスできます。私の質問は次のとおりです。
1-ルートとしてシステムにログインし、NANDフラッシュデータをSDカードに書き込んでから、1つの新しいシステムがそれをNANDフラッシュに書き戻すことでこれを行うことはできますか?
2-上記の質問に対する答えが「はい」の場合、手順と必要なソフトウェアは何ですか?
3-答えが「いいえ」の場合、JTAGインターフェイスを使用してNANDフラッシュを読み取り、別のデバイスに書き込むことはできますか?
kernel - JTAG + openocd + カーネルのデバッグ (vmlinux にデバッグ情報がない?)
Eclipse からターゲットに接続すると、次のメッセージが表示されます。
しかしその後、実行中のカーネルを停止すると: 0xc06f2674
No source available for ""
また、ステップしようとすると: target request failed: Cannot find bounds of current function.
vmlinux にはシンボルがないようです。ただし、カーネルは DEBUG_KERNEL と DEBUG_INFO の両方が設定された状態で再構築されます。
カーネル 2.6.39 CPU AT91SAM9G25
debugging - Jtag を使用した Linux のデバッグ - [ARM9][AT91SAM9G25] - Amontec、openocd、gdb、eclipse
このシステムでカーネルのデバッグを開始しようとしています: Amontec JTAGkey2、openocd、gdb、eclipse。
最後に、実行中のカーネルとアプリケーションをデバッグしたいと思います。問題はほとんどなく、順次解決する必要があるようです。現在、CPU の一時停止/再開、RAM の読み取り/書き込みがあります。不足しているもの: ステップ イン、ステップ オーバー、C/C++ レベルのデバッグ。
私は次のことを行います: - JTAG を接続し、ボードの電源を入れ、Uboot を介してデバッグ メッセージで uImage を起動します - openocd を起動します:
出力:
そして問題はここから始まります:
openocd:
日食:
JTAG がコードを 0x0 にロードしようとしているようにも見えますが、これは間違っていると思います:

更新 1 :
ARM のいくつかのオンライン チュートリアルを分析した後:
Eclipse のリセットおよび停止コマンドは完全には機能しません。それらのチェックを外して、コマンド ウィンドウに書き込むことをお勧めします。また、ロードアドレスを追加することもできます:
使わない
Uboot を起動して、RAM やその他の周辺機器を初期化します。次に、シェルに入って Uboot を停止します。次に、Eclipse に Linux を RAM に書き込んで起動させます。非常に時間がかかりますが、少しはうまくいきます。カーネルは、コンソールを返さずに RPC 初期化で開始および停止します。
- Uboot コンソール内でカーネルを RAM にロードし、その後 JTAG セッションを開始することはできますか?
- [load ...] コマンドと [monitor load...] コマンドの違いは何ですか
- uImage の代わりに /compressed/vmlinux をロードする必要があるのはなぜですか?
- Eclipseウィンドウには、2つのロードフィールドがあります。イメージをロードし、シンボルをロードします。両方のオプションを無効にしますが、load arch/arm/boot/compressed/vmlinux 0x22000000 のみを書き込みます。それはおそらく次の問題の理由ですか?
更新 2 : わかりました。ヒントをありがとう。
私はいくつかの進歩を遂げました。何かアドバイスをいただけないでしょうか。おそらく私はまだ何か間違ったことをしているのかもしれません。
現在、カーネルは JTAG 制御下で実行されていますが、ソース コード レベルでデバッグすることはできません。
私は次のようにします:
- ボードの電源を入れ、uboot シェルに入ります。
- openOCD セッションを開始する
theKernel 呼び出しで bootm.c に Uboot ブレークポイントを設定します。
/li>Eclipse デバッグ セッションを開始します。
- 監視停止
オフセットなしで uboot-a をロードする
/li>uboot を起動して実行します
- 「theKernel」呼び出しで uboot が停止する
カーネルがアドレス 0x20008000 にあることはわかっています。
- openOCD セッションを再起動します
カーネル構成で ecipse デバッガーをもう一度起動します。
- 監視停止
アドレス 0x20008000 にカーネルをロードします
/li>- デバッグセッションを開始
すべてが正常に動作し、カーネルが起動しますが、ソース コード レベルでデバッグすることはまだできません。
「symbol is not available」
カーネルの DEBUG と DEBUG_INFO がオンになっています。
vmlinux スクリーンショット
このファイルに約 50 個の関数シンボルがあることは、私にとって驚くべきことです。

usb - USBJTAGスクリプト
境界スキャンを実行するには、JTAG-USB(Texas InstrumentのXDS100v2)を介してTexas InstrumentのRM48xとインターフェイスするためのスクリプトを作成する必要があります。これは、TexasInstrumentのツールでは実行されないためです。
このためのツールがいくつかありますが、それらはすべて本当に高価であり、私のプロジェクトにはそのためのお金がありません。
ここで誰かがそれを試しましたか?または、少なくともここの誰かがどこから始めればよいか知っていますか?
c - avrdude で EEPROM 以外のすべてを消去するにはどうすればよいですか?
私は2つのメインファイルを持っています。1 つは EEPROM に書き込み、もう 1 つは EEPROM から読み取ります。私は次のことをしたい:
- フラッシュ main.hex (EEPROM に書き込むもの)
- EEPROM の内容以外をすべて消去する
- フラッシュ main.hex (EEPROM から読み取るもの)
Windows 7でJTAG ICE mkIIを使用してAT90CAN128を使用しています。次の方法
で avrdude を実行します。
debugging - マイクロプロセッサのデバッグ
当社のコプロセッサの 1 つは 8 ビット マイクロプロセッサです。主な役割は、フラッシュメモリを扱うハードウェアを制御することです。フラッシュ メモリの読み取り/書き込み速度が遅いことが測定されたため、実行中のコードは非常に非効率的であると思われます。問題は、メイン CPU に接続されている J-TAG ポートが 1 つしかないため、それをデバッグするオプションがないことです。私たちが持っているのは、マイクロプロセッサのプログラムカウンタを含む CPU から利用できるレジスタです。悪いニュースは、マイクロプロセッサが CPU とは異なる周波数で動作するため、外部でプログラム カウンタを監視することも難しいことです。マイクロプロセッサのレジスタは 8 ビット長しかないため、マイクロプロセッサ内の時間を測定することも非常に困難です。言うまでもなく、コードはアセンブリーであり、非常に複雑です。この問題にどのようにアプローチしますか?
multithreading - 初心者向けのARMプロセッサベースのボード
- ARM マイクロプロセッサ ベースのボードを購入したいのですが、(機能面で) コスト効率が最も優れているボードを教えてください。
- どのようなハードウェア/ソフトウェア ツールとケーブルを購入する必要がありますか (デバッグ、IDE などのために)?
(注: テスト対象のマルチスレッド コード、RTOS (Linux、ThreadX など)、ハードウェア デバッグ)
linux-kernel - jtagを介してターゲットにLinuxカーネルをロードする
AM3517 評価ボードで JTAG を介して Linux カーネルをロードして起動しようとしています。私のデバッガは BDI3000 です。デバッガーのドキュメントによると必要ないため、私は openocd を使用していません。これまでのところ、vmlinux イメージをメモリにロードできると思いますが、完了すると「cont」gdb コマンドで Linux が起動しません。シリアル コンソールにメッセージが表示されません。
このリンクhttp://elinux.org/Debugging_The_Linux_Kernel_Using_Gdbの指示に従っています
リンクに記載されているようにlog_bufferのアドレスを取得しようとすると、次の出力が得られます
私はインターネットでたくさん検索しましたが、適切な答えを見つけることができませんでした。私が間違っているのかわかりません。
vb.net - VB.netのマイクロコントローラーからライブRAM変数を読み取る
プログラムがマイクロコントローラで実行されているときに、JTAG ポートを介してグローバル変数をライブで読み取りたいと考えています。出来ますか?