ホームページ >運用・保守 >Linuxの運用と保守 >Linux で GDB を使用して組み込み ARM アセンブラをデバッグするための一般的な構成方法

Linux で GDB を使用して組み込み ARM アセンブラをデバッグするための一般的な構成方法

王林
王林オリジナル
2023-07-04 23:15:081932ブラウズ

Linux で GDB を使用して組み込み ARM アセンブラをデバッグするための一般的な構成方法

要約:
組み込みシステム開発では、ARM アーキテクチャ プロセッサがさまざまな分野で広く使用されています。組み込み ARM アセンブラをデバッグするには、GNU デバッガ (GDB) を使用できます。この記事では、Linux 環境で組み込み ARM アセンブラをデバッグするために GDB を構成する一般的な方法を紹介し、コード例を示します。

  1. GDB および ARM クロスコンパイル ツール チェーンのインストール
    開始する前に、GDB および ARM クロスコンパイル ツール チェーンを Linux システムにインストールする必要があります。パッケージマネージャー (apt など) を介してインストールするか、公式 Web サイトからダウンロードできます。
  2. 組み込み ARM アセンブラの作成
    まず、後続のデバッグのために、単純な組み込み ARM アセンブラを作成する必要があります。以下はサンプル プログラムです。
.global _start
.extern printf

.section .data
message: .asciz "Hello, World!
"

.section .text
_start:
    ldr r0, =message
    bl printf

    mov r7, #1
    swi 0

上記のコードは、まずグローバル ラベル _start と外部関数 printf を定義します。次に、文字列 message が .data セクションで定義され、ldrbl## が .text# で使用されます。 ## セクション。# ディレクティブは文字列の出力を実装します。コードの最後の 2 行では、mov および swi 命令を使用してプログラムを終了します。 ARM クロスコンパイル ツール チェーンを使用してコンパイルする

ARM クロスコンパイル ツール チェーンを使用して、上記のアセンブラを実行可能ファイルにコンパイルします。クロスコンパイル ツール チェーンのプレフィックスが
    arm-none-eabi-
  1. であると仮定すると、次のコマンドを使用してコンパイルできます:
    <pre class='brush:shell;toolbar:false;'>$ arm-none-eabi-as -mcpu=cortex-m3 -o program.o program.s $ arm-none-eabi-ld -o program program.o</pre>where,
  2. - mcpu=cortex-m3
ターゲットプロセッサのタイプを指定します。

GDB の構成

次に、コンパイルによって生成された実行可能ファイルをデバッグできるように GDB を構成する必要があります。 GDB は、次のコマンドを使用して開始できます:
  1. $ gdb

    次に、次のコマンドを使用して実行可能ファイルが GDB にロードされます:
  2. (gdb) file program

GDB のターゲット デバイスの構成

us デバッグのためにターゲット デバイスに接続するように GDB を構成する必要もあります。コネクタ パラメータは、次のコマンドを使用して設定できます。
  1. (gdb) target remote localhost:1234

    ここで、
  2. localhost:1234
は、ターゲット デバイスの接続アドレスとポート番号です。これは、localhost とデフォルトのポート番号

1234 が使用されることを前提としています。 アセンブラのデバッグ

これで、アセンブラのデバッグを開始できます。一般的に使用される GDB デバッグ コマンドの例をいくつか示します。

  1. ##レジスタ値の表示:
(gdb) info registers
  • プログラムのシングルステップ:

    (gdb) step
  • 現在の関数の残りを実行します:

    (gdb) next
  • ブレークポイントを設定します:

    (gdb) break main
  • 続行 プログラムの実行:

    (gdb) continue
  • #メモリ内容の表示:

    (gdb) x/16x $sp

  • #変数値の出力:
  • (gdb) print $r0

    # # ソース コードの表示:
  • (gdb) list
  • ##デバッグ セッションの終了
  • プログラムのデバッグが完了したら、次のコマンドを使用してデバッグ セッションを終了できます:
  • (gdb) quit

    結論:
  • この記事では、GDB を使用して Linux 環境で組み込み ARM アセンブラをデバッグする一般的な構成方法を紹介します。まず、GDB と ARM クロスコンパイル ツールチェーンをインストールしました。次に、単純な組み込み ARM アセンブラが作成され、ARM クロスコンパイル ツール チェーンを使用してコンパイルされました。次に、GDB を構成し、ターゲット デバイスに接続しました。最後に、GDB のさまざまなデバッグ コマンドを使用してアセンブラをデバッグしました。 GDB を構成することで、組み込み ARM アセンブラのデバッグが容易になり、開発効率が向上します。
    参考資料:

  1. https://sourceware.org/gdb/onlinedocs/gdb/

https://gcc.gnu.org/onlinedocs/

https://www.keil.com/support/man/docs/armclang_intro/armclang_intro_dom1361289859837.htm

以上がLinux で GDB を使用して組み込み ARM アセンブラをデバッグするための一般的な構成方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。