目录

基于嵌入式系统的linux图形界面设计与应用

基于嵌入式系统的linux图形界面设计与应用

引子

自动售货机现在已经成为了我们日常生活中的一部分,当我们通过自动售货机购物时,是否注意过售货机上的显示屏,上面罗列着商品信息,提供支付的二维码,还会放一些广告。类似自动售货机显示屏这种独立显示的图形界面,是由 嵌入式系统图形界面 开发的技术来支持的,自动售货机的显示屏后连接着一块嵌入式主板,预先设计好的图形界面代码存储在这块嵌入式主板中,电源供电后显示屏上便呈现出相应的图形界面。这种嵌入式开发板一般都是 linux系统 的,比如国内知名的SigmaStar(启明星)开发板(SSD系列),所以我们在设计图形界面代码时是要基于linux系统来做的。这也就引出了笔者在本系列博客中介绍的项目—— 基于嵌入式系统的linux图形界面设计与应用 ,这是笔者正在做的项目,因为觉得收获颇多,并且过程中很多问题在网上并没有直接解决方案,故开启本系列博客专以记录,也希望能借此帮助到更多人。

项目简介

嵌入式主板一个非常大的缺点便是资源有限,因此开发出的图形界面的程序就不能过大,相反越小越好,这就对设计图形界面的工程代码有着很大的要求。我们选用的是 LVGL (Light and Versatile Graphics Library)这款嵌入式图形库用于创建嵌入式 GUI,它具有易于使用的图形元素、精美的视觉效果和 低内存占用 。LVGL于2014年由匈牙利人 创立,最初,它是为Gábor的个人项目而开发的,但随着时间的推移,LVGL逐渐成长为一项强大的开源工具。现在,LVGL社区得到了全球范围内嵌入式系统开发者的广泛支持和贡献。

项目整体上的开发思想是:

①先在Windows主机上使用codeblocks模拟器编写基于LVGL设计的图形界面工程代码,测试结果可以直接在模拟器上看到。这里说的模拟器是指codeblocks、vscode这类的IDE,之所以称之为模拟器是因为它不是真正的将图形界面显示在windows主机的整个显示屏上,而是开辟出一块小窗口,来显示程序运行的结果画面。类似于这样:

https://i-blog.csdnimg.cn/blog_migrate/ec255cef1c64d0d3a46f39f74b601d8c.png

可以看到右上角显示着“LVGL Simulator for Windows Desktop”

②将Windows主机上设计好、测试无误的工程代码移植到Linux虚拟机上(笔者使用的是ubuntu-22.04.2-desktop-amd64),修改驱动和其他配置,调试代码直到能成功运行。具体的移植过程后续文章会专门讲解,此处不做赘述。

③将Linux虚拟机上测试成功的工程代码换做arm-linux-gnueabihf-gcc交叉编译,再把编译完成得到的可执行文件移植到嵌入式开发板上,也就是引子中提到的嵌入式主板,在主板上再进行环境的配置,驱动使能等准备工作,准备工作完成后运行移植的可执行文件,便可在与开发板连接的显示屏上观察到设计好的图形界面。这样其实就完成了一个嵌入式GUI( Graphical User Interface )的开发,也就是笔者的项目“基于嵌入式系统的linux图形界面设计与应用”最终要实现的事情。

下节预告

好了,本节的项目综述就到这里了。如果您对 嵌入式GUI开发 或者 LVGL的学习 感兴趣,又或者想跟随笔者 复现笔者的开发项目 ,还请收藏/关注以便能收到接下来同系列博客的更新通知。

下一节,笔者将沿着自己的学习轨迹介绍一下在Windows中下载并使用LVGL官方代码,还会分析官方代码的组成以及一些LVGL的基本语法和API,敬请期待。