cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

PetaLinuxイメージデバッグシリーズ:Vitis(tm)によるLinuxカーネルのデバッグ

katsuki
Xilinx Employee
Xilinx Employee
4 0 592

このブログは、英語版の 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] →
      • CPU Idle →
        • [ ] CPU idle PM support
  • petalinux-build
  • cd images/linux
  • petalinux-package --boot --fpga system.bit --u-boot

 

Vitis™ でのデバッグ:

 

ブートイメージをデバッグする最も簡単な方法は、ブートイメージを SD/QSPI ブートモードで起動し、実行中のターゲットでデバッグすることです。

Vitis を起動して、ウェルカム画面を閉じます。

新規デバッグ コンフィギュレーションを作成します。

[Single Application Debug] をダブルクリックします。

 

figure1.PNG

 

[Debug Type] を [Attach to running target] に設定します。

 

注記: また、リモート接続を行っているので、次の設定も実行します。

[Apply] → [Debug] をクリックします。これでデバッグ パースペクティブが開きます。

Cortex A53 (ブート イメージ) が実行されていることを確認します。


[XSCT] (ザイリンクス ソフトウェア コマンド ライン ツール) ウィンドウを開きます。

ここでは、Linux カーネル用にシンボル ファイルを Cortex A53#0 に渡します。

vmlinux ファイルがシンボル ファイルで、PetaLinux プロジェクトの images/linux フォルダーに含まれています。

シンボル ファイルを設定するには、XSCT で memmap コマンドを使用します。

 

figure2.PNG

 

カーネル init のデバッグ:

 

start_kernel 関数には、ブレークポイントを追加できます。

figure3.PNG

 

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

 

figure4.PNG

 

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

 

figure5.PNG

 

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

 

figure6.PNG