PetaLinuxへのユーザーアプリの実装方法

目次
本記事では、AMD社のZynq™ UltraScale+™ MPSoC のPetaLinuxにユーザーアプリを実装する方法を、Vivado™でのXSA生成からSDブート確認までステップごとに解説します。はじめてPetaLinuxにアプリを実装するエンジニア必見です。
はじめに
この記事でわかること
- PetaLinuxプロジェクトへのユーザーアプリの追加手順
- petalinux-createコマンドによるユーザーアプリの追加
- petalinux-buildおよびpetalinux-packageによるSDブートファイルの生成
- SDカードブートでのユーザーアプリ動作確認手順
前提条件・使用環境
- 使用ツール:Vivado 2022.2、PetaLinux 2022.2
- 対象デバイス:Zynq™ UltraScale+™ MPSoC(ZynqMP)
- ブート方式:SDカードブート
対象読者
- VivadoとPetaLinuxの基本操作ができる方
- PetaLinuxへのアプリ追加をはじめて試みるエンジニア
1.VivadoでZynqMPを含めたデザインを作成し、XSAファイルを生成
Generate Bitstreamでコンパイルした後、File → Export → Export HardwareでXSAファイルを生成します。
出典:AMD Vivado™
PetaLinuxの環境で下記のコマンドを実行しXSAファイルを使用してPetaLinuxプロジェクトを作成します。

必要に応じて作成したPetaLinuxプロジェクトのデバイスツリーを編集します。
/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsiを開いて、(SDカードを使用してテストするので、)下記の内容を追加します。

必要に応じてboot.scrオフセットとQSPIのパーティションを調整します。
$ petalinux-config -c u-boot ---> ARM architecture ---> (0x1E40000) Boot script offset

出典:AMD PetaLinux
$ petalinux-config ---> u-boot Configuration ---> u-boot script configuration ---> QSPI/OSPI image offsets
出典:AMD PetaLinux
下記のコマンドでユーザーアプリを追加します。
$ petalinux-create -t apps --template c --name userapp --enable

\project-spec\meta-user\recipes-apps\にuserappが追加されます。
サンプルコードは下記のように

“Hello World” を出力します。
$ petalinux-buildコマンドでビルドします。
出典:AMD PetaLinux
コマンドでSDブートファイルを生成します。
$ petalinux-package --boot --fsbl ./images/linux/zynqmp_fsbl.elf --u-boot ./images/linux/u-boot.elf --pmufw ./images/linux/pmufw.elf --fpga ./images/linux/system.bit --force
出典:AMD PetaLinux
下記のファイルをSDにコピーし、ブートSDの用意が完了です。

出典:AMD PetaLinux
2.SDからブートして、ユーザーアプリを実行
基板をSD BOOTモードに設定し、SDからブートします。
Login:ログイン名はpetalinuxです。ログイン時にパスワードの設定が必要です。
コマンド$ userappを入力し、サンプルプログラムが実行され、下記のように“Hello World”が出力されます。

出典:AMD PetaLinux
おわりに
いかがでしたでしょうか?
これで、PetaLinuxに簡単なユーザーアプリを追加することができました。
弊社ではFPGA設計や回路図設計、レイアウト設計、ソフトウェア設計、筐体設計などを受託開発しています。
サービス内容をWEBサイトに掲載していますので、ぜひご覧ください。
FPGAの活用に際して設計検討などありましたら、お気軽にお問い合わせください。
最後までご覧いただきありがとうございました。




