似乎任何像
DirectFB或
MiniGui这样的图形库都需要像Linux或uClinux这样的底层操作系统.
对于只有512kb闪存的微控制器编写软件,LCD显示屏和触摸屏可以显示和处理一些图片和GUI部件.
您是否知道任何只需要指向视频内存,也可以处理线条,图像和字体的库?
解决方法
当你纳入一些第三方解决方案,你可以自己写的.
对于大多数(如果不是全部)环境,屏幕只是像素的二维数组.有时托盘化有时候不是,但这并不重要,你可以写你想要的.
有大量的免费代码,用于绘制线条和弧线等.
杀手可能是字体,但我想你会发现,第三方应用程序会嚼掉所有的内存,只是做字体,你资源有限,所以你想要预先计算字体,只是复制位.
做一个二维数据的数组,首先在你喜欢的主机上完成所有的工作,如果你想看到你正在绘制的东西,保存.bmp文件是微不足道的,而且将一系列.bmp文件变成一个视频如果你想看一些动作.
如果您使用通用C,并且没有libc调用(写入您自己的memcpy,memset等),则此代码将在主机上运行,并在目标上运行.
字体将成为您的杀手,您必须预先计算它们,但可以将该信息压缩到尽可能小的范围内,并在运行时提取数据,并将每个字母的位复制到虚拟屏幕中,尽可能快.
或者只是购买许多lcd解决方案之一,为您做所有这一切,你只需发送命令,如画“Hello World!”在某些(x,y)使用蓝色作为前景和白色作为背景.
基本上我认为非os解决方案仍然会使用太多的库,对于你的具体应用来说太大了. 2d数组的字节或像素是微不足道的管理自己.即使您正在为桌面平台编写应用程序,我将以此方式执行此操作,并在最后一刻将完全重新编辑的屏幕更新复制到某个依赖于OS的库(允许从一个操作系统或另一个操作系统获得最大可移植性).