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

王林
リリース: 2023-07-04 23:15:08
オリジナル
1882 人が閲覧しました

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. であると仮定すると、次のコマンドを使用してコンパイルできます:
    <div class="code" style="position:relative; padding:0px; margin:0px;"><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><div class="contentsignin">ログイン後にコピー</div></div>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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!