🍓

ラズパイ5: Raspberry Pi デバッグプローブを使ってデバッグする方法

2024/03/02に公開

ラズパイ5でデバッガを利用してデバッグする方法をまとめています。

ラズパイ4の場合はラズパイ4: OpenOCD + Raspberry Pi4のJTAGデバッグしてください

1. Raspberry Pi デバッグプローブ

今回はRaspberry Pi デバッグプローブを利用します。

ケーブルの接続

ラズパイ5本体の2つのHDMI出力端子の間にある3ピンコネクタ(UART)と、デバッグプローブ本体のDポートを接続します。

2. ラズパイ5のJTAG有効化

ラズパイ5のJTAGインターフェースを有効化するために、SDカードのbootパーティション直下にあるconfig.txtに以下を追加します。

enable_jtag_gpio=1

3. OpenOCD環境の構築

インストール

OpenOCDとデバッガ(とりあえずGDB)をインストールします。

sudo apt install openocd

OpenOCD用のコンフィグファイル

設定ファイルを用意しているので、以下からgit cloneしてきます。

https://github.com/HidenoriMatsubayashi/openocd-configs

git clone https://github.com/HidenoriMatsubayashi/openocd-configs.git

4. OpenOCDを起動

OpenOCDを起動すると、gdbサーバー(ポート番号3333)とtelnet用(ポート番号4444)の2つのTCPサービスが起動します。gdbをアタッチしたり、telnetコマンドでログインして操作することが可能です。

sudo openocd -f interface/cmsis-dap.cfg -f target/raspi5.cfg

5. gdbデバッガをアタッチ

ここからはgdb(コマンド)を利用したデバッグ方法について解説していきます。

gdbのインストール

リモートでaarch64ターゲットのデバッグをするために、gdb-multiarchをインストールします。

sudo apt install gdb-multiarch

デバッガを接続する

$ gdb-multiarch 
(gdb) set architecture aarch64
(gdb) target extended-remote localhost:3333

デバッグ対象のelfをロード

(gdb) file <elfファイルパス>

以降は通常のgdbを利用したデバッグと同じです。

6. 参考文献

Discussion