荔枝派LicheePi Zero V3S芯片图形系统开发详解
一、图形子系统
一般移动Linux设备实现图像显示的方案无非两种:
一种是使用OpenGL ES
另外一种就是使用FrameBuffer
使用OpenGL有个前提就是这个芯片是需要有GPU的,不然是没有意义的。
查看芯片系统框图,注意到V3S这款芯片是不支持GPU的,所以只有使用FrameBuffer显示这一条路了。
另外就是芯片定位了,这款芯片的定位就说明了,本身并不需要精细的画面显示效果。
二、FrameBuffer开发
1、FrameBuffer认知误区
我一直以为FrameBuffer做图像显示是很低效率的,无法做高帧率动画或者视频显示,实际上显示效率确实不是太高,但是并不意味着无法做高帧率,可以理解为直接对显存读写实现图像显示,对显存读写的过程会很占用cpu时间,但是只要cpu写入速度够快,也是可以做到很高帧率的,但是显存刷新速率并不意味着显示帧率,显示帧率也受总线和屏幕质量的影响。
根据系统框图说明,这款芯片最高是可以做到1024*768分辨率下的60Hz显示的,已经够用了。
2、FrameBuffer支持的图形库
1)QT
官方推荐的图像库,用基本Widget开发内存占用小一些,如果要使用Qml开发,对于V3S的64M内存来说就有些捉襟见肘了。
2)SDL
sdl也是支持framebuffer的
3)LVGL
可以配置framebuffer支持