🍓
ラズパイ5: Raspberry Pi デバッグプローブを使ってデバッグする方法
ラズパイ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してきます。
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を利用したデバッグと同じです。
Discussion