How to run an SquareLine project on i.MX 93 EVK using FrameBuffer.

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

How to run an SquareLine project on i.MX 93 EVK using FrameBuffer.

How to run an SquareLine project on i.MX 93 EVK using FrameBuffer.

Introduction

LVGL is a graphics library to run on devices using a limited amount of resources.

Previously, we have ran an LVGL demo from the LVGL repository, this contains a couple more demos which all of them are pieces of code included and lends us the opportunity to evaluate the library in a quick and easy way.

GUI projects are developed by customers through a lot more options than bare code, there are GUI tools that translate a graphic asset into LVGL code, in this demonstration we will use a tool that's widely used in MCU GUI development and translate the GUI created into LVGL code; SquareLine.

NOTE: refer to the appendix for precedent LVGL documents on i.MX series processors.

HW set-up

  • i.MX 93 EVK boot over eMMC/uSD to Linux Factory or Ubuntu.
  • Connect power and debug receptables.
  • Connect MX8_DSI_OLED1 to J701 (MIPI DSI) through MiniSAS cable.

SquareLine set-up

Download the latest version of SquareLine under the following link according to your host system.

JosephAtNXP_0-1732571954892.png

NOTE: This document is intended for demonstration of templates included within the tool, so it's recommended to download a free trial, for formal development please refer to the appendix of this document.

Unzip and execute the installer, this is the windows prompt.

JosephAtNXP_1-1732571954893.png

 

Demo download

After setting SquareLine up go to the example section, we will demonstrate the thermostat capabilities with the Thermostat Demo.

JosephAtNXP_2-1732571954894.png

We can directly export these UI files and they would be graphically ready to be build, click on Export -> Export UI Files and select your preferred destination to save these.

JosephAtNXP_3-1732571954894.png

 

LVGL setup. Option 1 Fresh Environment

Clone LVGL and LV_DRIVERS repositories, this is a .gitmodules file that points to the specific branches needed.

[submodule "lvgl"]
path = lvgl
url = https://github.com/lvgl/lvgl.git
branch = release/v8.3
[submodule "lv_drivers"]
path = lv_drivers
url = https://github.com/lvgl/lv_drivers.git
branch = release/v8.3

NOTE: If you are using other methods, you should point to these commits, lv_drivers @ 8cdabe8 and lvgl @ f2c1032.

Gather the necessary files described below from the LVGL Linux Port example found here.

  • Makefile
  • lv_conf.h
  • lv_drv_conf.h
  • main.c
  • mouse_cursor_icon.c

Patch the Makefile.

+ include $(LVGL_DIR)/thermostat/thermostat.mk

Patch the lv_drv_conf.h

#  define EVDEV_NAME   "/dev/input/event10"        /*You can use the "evtest" Linux tool to get the list of devices and test them*/
+#  define EVDEV_NAME   "/dev/input/event<Number>"

NOTE: This changes according to the output of # evtest.

Patch lv_conf.h

-#define LV_FONT_MONTSERRAT_20 0
+#define LV_FONT_MONTSERRAT_20 1

Patch the main.c

-    disp_drv.hor_res    = 800;
-    disp_drv.ver_res    = 480;
+    disp_drv.hor_res    = 1080;
+    disp_drv.ver_res    = 1920;
…
-    /*Create a Demo*/
-    lv_demo_widgets();
+    /*Create a Squareline Demo*/
+    ui_init();

LVGL Setup. Option 2 with LVGL demos already running

Gather the necessary files described below from the LVGL Linux Port example found here.

  • Makefile
  • lv_conf.h
  • lv_drv_conf.h
  • main.c
  • mouse_cursor_icon.c

Patch the lv_drv_conf.h

#  define EVDEV_NAME   "/dev/input/event10"        /*You can use the "evtest" Linux tool to get the list of devices and test them*/
+#  define EVDEV_NAME   "/dev/input/event<Number>"

NOTE: This changes according to the output of # evtest.

Patch the main.c

-    disp_drv.hor_res    = 800;
-    disp_drv.ver_res    = 480;
+    disp_drv.hor_res    = 1080;
+    disp_drv.ver_res    = 1920;
…
-    /*Create a Demo*/
-    lv_demo_widgets();
+    /*Create a Squareline Demo*/
+    ui_init();

Run the demo

Build the demo with the following command and copy the ./demo output to the i.MX 93 EVK RootFS.

# source /opt/path/to/your/toolchain
# make clean
# make

The demo can be ran with the following commands.

# systemctl stop weston # For LF
$ sudo service gdm3 stop # For Ubuntu

# ./demo
JosephAtNXP_4-1732572830444.jpeg

 

Conclusion

SquareLine demos can run in prebuilt and basic builds of i.MX processors through FB, which can enable a quick set-up for GUI testing before moving to use a windowing stack without sacrificing any features.

Appendix

Document: How to run LGVL on iMX using framebuffer

Official page for pricing information

%3CLINGO-SUB%20id%3D%22lingo-sub-2001400%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EHow%20to%20run%20an%20SquareLine%20project%20on%20i.MX%2093%20EVK%20using%20FrameBuffer.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2001400%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%3E%3CSTRONG%3EIntroduction%3C%2FSTRONG%3E%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3ELVGL%20is%20a%20graphics%20library%20to%20run%20on%20devices%20using%20a%20limited%20amount%20of%20resources.%3C%2FP%3E%0A%3CP%3EPreviously%2C%20we%20have%20ran%20an%20LVGL%20demo%20from%20the%20LVGL%20repository%2C%20this%20contains%20a%20couple%20more%20demos%20which%20all%20of%20them%20are%20pieces%20of%20code%20included%20and%20lends%20us%20the%20opportunity%20to%20evaluate%20the%20library%20in%20a%20quick%20and%20easy%20way.%3C%2FP%3E%0A%3CP%3EGUI%20projects%20are%20developed%20by%20customers%20through%20a%20lot%20more%20options%20than%20bare%20code%2C%20there%20are%20GUI%20tools%20that%20translate%20a%20graphic%20asset%20into%20LVGL%20code%2C%20in%20this%20demonstration%20we%20will%20use%20a%20tool%20that's%20widely%20used%20in%20MCU%20GUI%20development%20and%20translate%20the%20GUI%20created%20into%20LVGL%20code%3B%20SquareLine.%3C%2FP%3E%0A%3CP%3E%3CEM%3E%3CSTRONG%3ENOTE%3A%3C%2FSTRONG%3E%3C%2FEM%3E%20refer%20to%20the%20appendix%20for%20precedent%20LVGL%20documents%20on%20i.MX%20series%20processors.%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3E%3CFONT%20size%3D%224%22%3EHW%20set-up%3C%2FFONT%3E%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3Ei.MX%2093%20EVK%20boot%20over%20eMMC%2FuSD%20to%20Linux%20Factory%20or%20Ubuntu.%3C%2FLI%3E%0A%3CLI%3EConnect%20power%20and%20debug%20receptables.%3C%2FLI%3E%0A%3CLI%3EConnect%20MX8_DSI_OLED1%20to%20J701%20(MIPI%20DSI)%20through%20MiniSAS%20cable.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%3E%3CSTRONG%3ESquareLine%20set-up%3C%2FSTRONG%3E%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3EDownload%20the%20latest%20version%20of%20SquareLine%20under%20the%20%3CA%20href%3D%22https%3A%2F%2Fsquareline.io%2Fdownloads%23lastRelease%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Efollowing%20link%3C%2FA%3E%20according%20to%20your%20host%20system.%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22JosephAtNXP_0-1732571954892.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22JosephAtNXP_0-1732571954892.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F312435iE73E4C5F834F012F%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22JosephAtNXP_0-1732571954892.png%22%20alt%3D%22JosephAtNXP_0-1732571954892.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CP%3E%3CEM%3E%3CSTRONG%3ENOTE%3A%3C%2FSTRONG%3E%20%3C%2FEM%3EThis%20document%20is%20intended%20for%20demonstration%20of%20templates%20included%20within%20the%20tool%2C%20so%20it's%20recommended%20to%20download%20a%20free%20trial%2C%20for%20formal%20development%20please%20refer%20to%20the%20appendix%20of%20this%20document.%3C%2FP%3E%0A%3CP%3EUnzip%20and%20execute%20the%20installer%2C%20this%20is%20the%20windows%20prompt.%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22JosephAtNXP_1-1732571954893.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22JosephAtNXP_1-1732571954893.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F312437iA6E684ADEA78C8F9%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22JosephAtNXP_1-1732571954893.png%22%20alt%3D%22JosephAtNXP_1-1732571954893.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%3E%3CSTRONG%3EDemo%20download%3C%2FSTRONG%3E%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3EAfter%20setting%20SquareLine%20up%20go%20to%20the%20example%20section%2C%20we%20will%20demonstrate%20the%20thermostat%20capabilities%20with%20the%20Thermostat%20Demo.%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22JosephAtNXP_2-1732571954894.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22JosephAtNXP_2-1732571954894.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F312436i0249E5AADB41198D%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22JosephAtNXP_2-1732571954894.png%22%20alt%3D%22JosephAtNXP_2-1732571954894.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CP%3EWe%20can%20directly%20export%20these%20UI%20files%20and%20they%20would%20be%20graphically%20ready%20to%20be%20build%2C%20click%20on%20Export%20-%26gt%3B%20Export%20UI%20Files%20and%20select%20your%20preferred%20destination%20to%20save%20these.%3C%2FP%3E%0A%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22JosephAtNXP_3-1732571954894.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22JosephAtNXP_3-1732571954894.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F312438iCC560D3DBBA57CA1%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22JosephAtNXP_3-1732571954894.png%22%20alt%3D%22JosephAtNXP_3-1732571954894.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%3E%3CSTRONG%3ELVGL%20setup.%20Option%201%20Fresh%20Environment%3C%2FSTRONG%3E%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3EClone%20LVGL%20and%20LV_DRIVERS%20repositories%2C%20this%20is%20a%20.gitmodules%20file%20that%20points%20to%20the%20specific%20branches%20needed.%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%5Bsubmodule%20%22lvgl%22%5D%0Apath%20%3D%20lvgl%0Aurl%20%3D%20https%3A%2F%2Fgithub.com%2Flvgl%2Flvgl.git%0Abranch%20%3D%20release%2Fv8.3%0A%5Bsubmodule%20%22lv_drivers%22%5D%0Apath%20%3D%20lv_drivers%0Aurl%20%3D%20https%3A%2F%2Fgithub.com%2Flvgl%2Flv_drivers.git%0Abranch%20%3D%20release%2Fv8.3%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CEM%3E%3CSTRONG%3ENOTE%3A%3C%2FSTRONG%3E%3C%2FEM%3E%20If%20you%20are%20using%20other%20methods%2C%20you%20should%20point%20to%20these%20commits%2C%20lv_drivers%20%40%208cdabe8%20and%20lvgl%20%40%20f2c1032.%3C%2FP%3E%0A%3CP%3EGather%20the%20necessary%20files%20described%20below%20from%20the%20LVGL%20Linux%20Port%20example%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Flvgl%2Flv_port_linux%2Ftree%2Frelease%2Fv8.2%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Efound%20here%3C%2FA%3E.%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EMakefile%3C%2FLI%3E%0A%3CLI%3Elv_conf.h%3C%2FLI%3E%0A%3CLI%3Elv_drv_conf.h%3C%2FLI%3E%0A%3CLI%3Emain.c%3C%2FLI%3E%0A%3CLI%3Emouse_cursor_icon.c%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EPatch%20the%20Makefile.%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%2B%20include%20%24(LVGL_DIR)%2Fthermostat%2Fthermostat.mk%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EPatch%20the%20lv_drv_conf.h%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%23%20%20define%20EVDEV_NAME%20%20%20%22%2Fdev%2Finput%2Fevent10%22%20%20%20%20%20%20%20%20%2F*You%20can%20use%20the%20%22evtest%22%20Linux%20tool%20to%20get%20the%20list%20of%20devices%20and%20test%20them*%2F%0A%2B%23%20%20define%20EVDEV_NAME%20%20%20%22%2Fdev%2Finput%2Fevent%3CNUMBER%3E%22%3C%2FNUMBER%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CEM%3E%3CSTRONG%3ENOTE%3A%3C%2FSTRONG%3E%20%3C%2FEM%3EThis%20changes%20according%20to%20the%20output%20of%20%23%20evtest.%3C%2FP%3E%0A%3CP%3EPatch%20lv_conf.h%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E-%23define%20LV_FONT_MONTSERRAT_20%200%0A%2B%23define%20LV_FONT_MONTSERRAT_20%201%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EPatch%20the%20main.c%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E-%20%20%20%20disp_drv.hor_res%20%20%20%20%3D%20800%3B%0A-%20%20%20%20disp_drv.ver_res%20%20%20%20%3D%20480%3B%0A%2B%20%20%20%20disp_drv.hor_res%20%20%20%20%3D%201080%3B%0A%2B%20%20%20%20disp_drv.ver_res%20%20%20%20%3D%201920%3B%0A%E2%80%A6%0A-%20%20%20%20%2F*Create%20a%20Demo*%2F%0A-%20%20%20%20lv_demo_widgets()%3B%0A%2B%20%20%20%20%2F*Create%20a%20Squareline%20Demo*%2F%0A%2B%20%20%20%20ui_init()%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%3E%3CSTRONG%3ELVGL%20Setup.%20Option%202%20with%20LVGL%20demos%20already%20running%3C%2FSTRONG%3E%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3EGather%20the%20necessary%20files%20described%20below%20from%20the%20LVGL%20Linux%20Port%20example%20found%20here.%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EMakefile%3C%2FLI%3E%0A%3CLI%3Elv_conf.h%3C%2FLI%3E%0A%3CLI%3Elv_drv_conf.h%3C%2FLI%3E%0A%3CLI%3Emain.c%3C%2FLI%3E%0A%3CLI%3Emouse_cursor_icon.c%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3EPatch%20the%20lv_drv_conf.h%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%23%20%20define%20EVDEV_NAME%20%20%20%22%2Fdev%2Finput%2Fevent10%22%20%20%20%20%20%20%20%20%2F*You%20can%20use%20the%20%22evtest%22%20Linux%20tool%20to%20get%20the%20list%20of%20devices%20and%20test%20them*%2F%0A%2B%23%20%20define%20EVDEV_NAME%20%20%20%22%2Fdev%2Finput%2Fevent%3CNUMBER%3E%22%3C%2FNUMBER%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CEM%3E%3CSTRONG%3ENOTE%3A%3C%2FSTRONG%3E%20%3C%2FEM%3EThis%20changes%20according%20to%20the%20output%20of%20%23%20evtest.%3C%2FP%3E%0A%3CP%3EPatch%20the%20main.c%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E-%20%20%20%20disp_drv.hor_res%20%20%20%20%3D%20800%3B%0A-%20%20%20%20disp_drv.ver_res%20%20%20%20%3D%20480%3B%0A%2B%20%20%20%20disp_drv.hor_res%20%20%20%20%3D%201080%3B%0A%2B%20%20%20%20disp_drv.ver_res%20%20%20%20%3D%201920%3B%0A%E2%80%A6%0A-%20%20%20%20%2F*Create%20a%20Demo*%2F%0A-%20%20%20%20lv_demo_widgets()%3B%0A%2B%20%20%20%20%2F*Create%20a%20Squareline%20Demo*%2F%0A%2B%20%20%20%20ui_init()%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CSTRONG%3E%3CFONT%20size%3D%224%22%3ERun%20the%20demo%3C%2FFONT%3E%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3EBuild%20the%20demo%20with%20the%20following%20command%20and%20copy%20the%20.%2Fdemo%20output%20to%20the%20i.MX%2093%20EVK%20RootFS.%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%23%20source%20%2Fopt%2Fpath%2Fto%2Fyour%2Ftoolchain%0A%23%20make%20clean%0A%23%20make%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EThe%20demo%20can%20be%20ran%20with%20the%20following%20commands.%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3E%23%20systemctl%20stop%20weston%20%23%20For%20LF%0A%24%20sudo%20service%20gdm3%20stop%20%23%20For%20Ubuntu%0A%0A%23%20.%2Fdemo%3C%2FCODE%3E%3C%2FPRE%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22JosephAtNXP_4-1732572830444.jpeg%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22JosephAtNXP_4-1732572830444.jpeg%22%20style%3D%22width%3A%20749px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F312439i58371E9BB5853DDB%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22JosephAtNXP_4-1732572830444.jpeg%22%20alt%3D%22JosephAtNXP_4-1732572830444.jpeg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%3E%3CSTRONG%3EConclusion%3C%2FSTRONG%3E%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3ESquareLine%20demos%20can%20run%20in%20prebuilt%20and%20basic%20builds%20of%20i.MX%20processors%20through%20FB%2C%20which%20can%20enable%20a%20quick%20set-up%20for%20GUI%20testing%20before%20moving%20to%20use%20a%20windowing%20stack%20without%20sacrificing%20any%20features.%3C%2FP%3E%0A%3CP%3E%3CFONT%20size%3D%224%22%3E%3CSTRONG%3EAppendix%3C%2FSTRONG%3E%3C%2FFONT%3E%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-Processors-Knowledge-Base%2FHow-to-run-LGVL-on-iMX-using-framebuffer%2Fta-p%2F1853768%22%20target%3D%22_blank%22%3EDocument%3A%20How%20to%20run%20LGVL%20on%20iMX%20using%20framebuffer%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fsquareline.io%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3EOfficial%20page%20for%20pricing%20information%3C%2FA%3E%3C%2FP%3E%0A%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2001400%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EGraphics%20%26amp%3B%20Display%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EHands-On%20Training%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3ELinux%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
No ratings
Version history
Last update:
‎11-25-2024 03:25 PM
Updated by: