このブログは、英語版の PetaLinux Image Debug Series: Debugging the Linux Kernel in Vitis を翻訳したものです。
概要
このブログでは、Vitis™で、Zynq® UltraScale+™ MPSoC の、Linuxカーネルイメージをデバッグする方法について説明します。
このブログでは、PetaLinux 2020.1を使用して、Zynq® UltraScale+™ デバイス用の、Linuxイメージを作成する方法を紹介します。
このブログは、PetaLinux イメージのさまざまなコンポーネントをデバッグする方法を説明するシリーズの一部です。
その他のブログは、次のリンクから参照してください。
PetaLinux Image Debug Series: Debugging the Device Tree Generator ※翻訳予定
PetaLinux Image Debug Series: Debugging ARM Trusted Firmware and U-boot in Vitis ※翻訳予定
このデモには、ZCU104ボードを使用しましたが、どのZynq® UltraScale+™ デバイスでも手順は同じです。
Linux イメージの作成:
- petalinux-create -t project --template zynqMP -n linux_image
- cd linux_image
- petalinux-config -c kernel
- Kernel hacking
- Kernel debugging
- Compile-time checks and compiler options
- [*] Compile the kernel with debugging info
- CPU Power Management] →
- petalinux-build
- cd images/linux
- petalinux-package --boot --fpga system.bit --u-boot
Vitis™ でのデバッグ:
ブートイメージをデバッグする最も簡単な方法は、ブートイメージを SD/QSPI ブートモードで起動し、実行中のターゲットでデバッグすることです。
Vitis™ を起動して、ウェルカム画面を閉じます。
新規デバッグ コンフィギュレーションを作成します。
[Single Application Debug] をダブルクリックします。

[Debug Type] を [Attach to running target] に設定します。
注記: また、リモート接続を行っているので、次の設定も実行します。
[Apply] → [Debug] をクリックします。これでデバッグ パースペクティブが開きます。
Cortex A53 (ブート イメージ) が実行されていることを確認します。
[XSCT] (ザイリンクス ソフトウェア コマンド ライン ツール) ウィンドウを開きます。
ここでは、Linux カーネル用にシンボル ファイルを Cortex A53#0 に渡します。
vmlinux ファイルがシンボル ファイルで、PetaLinux プロジェクトの images/linux フォルダーに含まれています。
シンボル ファイルを設定するには、XSCT で memmap コマンドを使用します。

カーネル init のデバッグ:
start_kernel 関数には、ブレークポイントを追加できます。

関数のアドレスは、シンボル ファイルから直接取得することもできます。

次に、電源を入れ直し、カーネルを起動して、ブレークポイントで停止します。

これで、デバッグ機能を使用してコードをステップ実行できます。
