Running GuiLite on top of NuttX-在NuttX上运行GuiLite
Why GuiLite-为什么选择GuiLite
GuiLite是5千行的图形界面库,可以运行在所有平台(例如:iOS/macOS/WatchOS,Android,Linux(ARM/x86-64),Windows(包含VR),Docker和MCU)上;也可以与多种语言(例如: Swift, Java, Javascript, C#, Golang)协同工作。
- 轻量: 5千行C++代码,可合并在:1个头文件(GuiLite.h),1个实现文件(GuiLite.cpp)中 - 轻松编译/移植
- 超快: 一次调用就可以完成图形渲染,与操作系统及第三方库无关 - 程序更快速,UI更流畅
- 可注入: 可注入在Qt/MFC/Winform/Cocoa/Web程序中运行 - 充分利用现有Qt/MFC代码,局部GuiLite优化,亦可显著提升效率
- 最低硬件要求:
- Processor 24MHz
- Flash-29 KB SRAM - 9 KB
相比QT、MFC,GuiLite不预设开发者的使用场景,不在具体功能上,大包大揽;用框架的简洁,换取开发的自由;GuiLite在图形绘制上面,力图一步到位,运行效率感人。
移植GuiLite到NuttX RTOS平台
GuiLite本身支持移植到多个平台,它给出官方例程都有Linux平台的参考,如果想移植到NuttX操作系统下,只需要你选用的NuttX硬件平台有移植好的Frame Buffer驱动就可以了。只需要打开/dev/fb0驱动设备节点,通过ioctl接口获取显示设备支持的分辨率,然后通过mmap映射出一段内存空间就可以了。如果不清楚的,可以去下载NuttX源码,查看apps/graphics/lvgldemo这个例程。
GuiLite在NuttX上的运行效果
GuiLite例程是320*240分辨率的,所以看到的内容只占了LCD部分显示区域。NuttX RTOS版本是V9.0.0,本身支持C++,用C++代码做UI开发时非常有优势的。