LGVLとは何ですか?
LVGLは、リソースが限られたデバイスで動作するグラフィック・ライブラリです。
LVGLは完全にオープンソースで、外部依存関係がなく、最新の各種MCUやMPUで動作し、あらゆる(RT)OSやベアメタル環境で使用できます。
フレームバッファとは何ですか?
Linuxフレームバッファ(fbdev)は、グラフィックをディスプレイに表示するために使用されるLinuxのサブシステムで、通常はシステム・コンソールで操作されます。
フレームバッファに書き込む方法
デバイスはデバイス・リストにあり、通常iMXでは「fb0」です。
1. ウィンドウ・マネージャ(このBSPではWeston)を停止します。
$ systemctl stop weston
2. 次のコマンドを使用して、フレームバッファにランダム・データを書き込みます。
$ cat /dev/urandom > /dev/fb0
画面に色付きのピクセルが表示されます。
3. ウィンドウマネージャーを再起動してください。
$ systemctl start weston
アプリケーションのクロスコンパイル
1. ホストコンピュータで LGVL リポジトリをクローンします。
$ git clone https://github.com/lvgl/lv_port_linux_frame_buffer.git -b release/v8.2
$ cd lv_port_linux_frame_buffer
$ git submodule update --init --recursive
2. 画面の解像度、回転、タッチ入力を設定します。
2.1 解像度の設定はmain.cの33行目と34行目にあります。
disp_drv.hor_res = 1080;
disp_drv.ver_res = 1920;
2.2 回転の設定は main.c の32行目と57行目にあります。
disp_drv.sw_rotate = 3;
lv_disp_set_rotation(NULL, LV_DISP_ROT_270);
2.3 タッチ入力の設定はlv_drv_conf.hの450行目にあります。
# define EVDEV_NAME "/dev/input/event2"
注:私の場合は/dev/input/event2で、入力を確認するにはコマンド「evtest」を使用します。
3. コマンド「make」を使用してアプリケーションをコンパイルします。
注:ホスト・コンピュータでアプリケーションをコンパイルするには、環境を設定する必要があります。
4. 「demo」というファイルをボードと共有し、ボード上でそのコマンドを実行します。
$ ./demo
注意:アプリケーションを実行するには、westonサービスを停止する必要があります。
メモ:
BSP 6.1.36を使用してiMX8MN EVKでテスト済み
マルチメディアとフルイメージで動作します。