要写的东西太多,一时间竟不知从何说起。正值端午放假,先安康吧,大致记录一下关键点
目的
给海思芯片的板子加一个菜单界面。
历程
- framebufferr
尝试了官方手册推荐的什么osd不太会搞,偶然间发现了framebuffer很好用,就用这个来做菜单了。很好奇业内(嵌入式)都是怎么搞UI的,问了那么多没人能答出来,竟然会觉得这个问题很新鲜,哎自己搞吧。 - lvgl
找嵌入式相关的视频来看,发现韦东山老师讲得不错,b站有上传。于是用framebuffer打点加字库的方式做了初级菜单,用双链表+json存储菜单,做了好久,太丑了看不下去了,于是开始找可替代的。浏览b站发现squareline的ui设计软件,最终发现了lvgl并看到有人在海思上成功应用,就它了! - 工程组织
在这之前其实有一个遗留问题一直没有解决:海思的sdk到底应该怎么用?怎么基于海思的sdk开发自己的应用?这么大一个工程,用编辑器纯手写?都21世纪了,应该不会有这么low的吧?新上手的东西讲究快,所以开始跑程序都直接在sample下的demo里编辑,直接make就好,不用考虑那么多乱七八糟的。这也就导致了程序全靠make的时候报错提示然后改正,没有深入了解交叉编译的gdb怎么操作。在vscode中可以依靠插件结合通用makefile调试,海思的sdk这条路显然不通。问题就此搁置。 - 破局
squareline推荐用模拟器运行ui,按照他们官方的说法,模拟器跑通了,其他平台移植也很快。导出c/c++工程只支持eclipse,然后就不得不下载eclipse模拟运行。第一次接触c/c++的eclipse,此前(读大学期间)用eclipse编译过java,安卓的程序,多年未见,还是离不开啊~windows上跑gcc程序离不开mingw,现在有升级版mingw64。 - mingw64绊倒石
官网提供的安装包有问题,只能手动安装。
折腾了很久终于还是没搞定,切Linux吧,受不了了! - Ubuntu下的eclipse和squareline工程
下面这段出自squareline导出工程
Eclipse project for SquareLine Studio and LVGL
This project can be used to build and run C/C++ UI code exported from SquareLine Studio.
Get started
- Install a compiler and related tools if you don’t have them yet:
- On Windows MinGW can be a good choice
- On Linux type in the Terminal:
sudo apt-get install gcc g++ gdb build-essential
- Install SDL (required to simulate a display)
- On Windows see for example this guide
- On Linux
sudo apt-get install libsdl2-dev
- Download and Install Eclipse CDT from http://www.eclipse.org/cdt/