勉強しないとな~blog

ちゃんと勉強せねば…な電気設計エンジニアです。

ZYBOを進める - 15. ユーザアプリケーションの作成

ZYBOの続きです。

Petalinuxでユーザアプリケーションの作成

今回もいつもの参考サイトの手順に従います。

ZYBO (Zynq) 初心者ガイド (11) LinuxユーザアプリケーションでLチカ - Qiita

Petalinuxのプロジェクトディレクトリに移動してから、以下のコマンドで、ユーザアプリケーション(myapp)を作成します。

petalinux-create -t apps --template c --name myapp --enable

ちなみに、ここでrootfsの設定を見てみると、

petalinux-config -c rootfs

f:id:nokixa:20190730031639p:plain:w400

Configuration ---> appsの中にmyappが追加されていて、チェックが付いています。
こうなっているため、ビルドをするとmyappも一緒にパッケージされます。

とりあえずはデフォルトのmyappでパッケージして、SDに書いて動かしてみます。

petalinux-build -x package

必要なのはimage.ubだけのようなので、これをSDにコピーします。 ※やってみると、rootfsも必要でした。(ルートファイルシステムをSDに置く設定にしているため)

cd
sudo mount /dev/sda1 ./sd
sudo cp work/Petalinux/Zybo-base-linux-peta/images/linux/image.ub sd
sudo dd if=./work/Petalinux/Zybo-base-linux-peta/images/linux/rootfs.ext4 of=/dev/sda2

このSDをZYBOに入れて、ZYBOの電源を入れると、myappが存在して、ちゃんと動くことが確認できます。

root@Zybo-base-linux-peta:~# ls /usr/bin | grep myapp
myapp
root@Zybo-base-linux-peta:~# myapp
Hello World!
root@Zybo-base-linux-peta:~#


myappのカスタマイズ

先ほど動かしたmyappは、デフォルトの内容でした。
これを、前回シェルでやったLEDチカチカに書き換えてビルドします。

参考サイトでは何パターンかのコードが説明されていますが、SysFsを使用するものを使わせてもらいます。 なお、前回確認したように、今回のZynq設定ではMIO7がGPIO900に割り当てられているので、その辺は変更しておきます。

myappのコードは、project-spec/meta-user/recipes-apps/myapp/files/myapp.cとなっているので、 まずこれを編集しておきます。(変更内容は参考サイトを参照)

この後、myappのビルドを行います。

petalinux-build -c myapp -x do_clean
petalinux-build -c myapp -x do_install
petalinux-build -x package

これらのコマンドの中にも不要なものがあったりするかもしれません。
おいおい精査していこうと思います。

この後、先ほどと同様にSDにimage.ubとrootfsをコピーして、ZYBOで動かしてみると、 LEDチカチカしました。

以上

まだまだチュートリアルを追っているだけですが、だんだんZYBOを使えるようになってきた気がします。