似乎任何类型的图形库都喜欢 直接FB 或者 迷你图形用户界面 需要某种底层操作系统,如 Linux 或 uClinux。

我面临的挑战是为只有 512kb 闪存、LCD 显示屏和触摸屏的微控制器编写一个软件,以显示和处理一些图片和 GUI 部分。

你知道有哪个库只需要一个指向视频内存的指针,也可以处理线条、图像和字体吗?

有帮助吗?

解决方案

到时候你纳入你可以自己刚才写它的一些第三方解决方案。

有关大多数,如果不是所有的环境屏幕仅仅是一个两个像素的二维阵列。有时造粒有时候没有,但并不重要,你可以写你的,但是你想。

有是吨自由代码在那里用于绘制线和弧等。

在凶手可能是字体,但我想你会发现,第三方应用程序将咀嚼你所有的记忆中只是做字体,你的资源有限,因此你将要预先计算的字体和刚才复制的位。

请数据的二维数组,做你的工作,你最喜欢的主机上,在第一,它是平凡的,如果你想看到你是画什么保存.bmp文件,以及琐碎把一系列的.BMP文件转换成一个视频,如果你想观看一些动作。

如果您使用通用的C,没有libc的电话(写自己的memcpy,memset的,等等),这个代码将在任何地方运行,主机为发展和目标上。

字体将是您的杀手,你必须预先计算他们却设法挤进这些信息分解成小如,你可以,并在运行时提取数据,并将每个字母复制位到虚拟屏幕快可以。

或者只买了许多LCD解决方案,做到这一切给你一个,你只需发送命令,如绘制的“Hello World!”在一些(X,Y)使用蓝色作为前景和白色为背景。

基本上我认为非操作系统的解决方案仍然会使用太多的图书馆和过大对具体应用。字节或象素的二维阵列是微不足道的管理自己。即使你是一个桌面平台编写应用程序,我会做这样的,在最后一分钟复制完全renedered屏幕更新一些依赖于操作系统的库(允许最大的可移植性,从一个操作系统或不是另一个)。

其他提示

我们多年来一直使用 Swellsoftware 的“PEG”(C++ 版本)。它是商业软件,不是免费的,但底层屏幕驱动程序可以仅使用指向图形内存的指针,并且它们为不同类型的图形硬件提供了许多示例驱动程序。我们使用示例驱动程序作为参考,为我们的专有硬件编写了自己的自定义驱动程序。我们一直都有某种 RTOS,但我相信 PEG+ 也可以在没有操作系统的情况下运行。

在这里查看: http://www.swellsoftware.com/

祝你好运,

如果您的交互性和图形用户界面部件的要求是非常温和的(或者你和设计自己的小部件OK),看看的的libgd 。绘制要显示使用库的功能的屏幕上的图像,并且然后使用gdImagePngToSink其写入到帧缓冲器()。

您应该关心的重要事情是液晶显示屏和触摸屏的控制器。有大量的 C 库(不是免费的)可以完成该任务。快速谷歌给我带来了这些结果: 简化技术拉姆泰克斯.

如果您想找到开源的东西,那么从您的控制器类型开始并搜索嵌入式设备论坛(即使它不是 ARM,您也可以轻松移植 C 代码)。一些建议:

此外,一些套件制造商在其主板上提供了 SDK(带或不带 Linux)。购买主板通常会授予您使用代码的许可。搜索具有相同 LCD 控制器的开发板。

不是免费的,但在低资源系统良好: http://www.tat.se 和其产品卡斯托和瀑布。它只需要一个指向视频内存,malloc和东西看起来像一个文件系统。最后两个要求是不是绝对必要无论是。没有操作系统是必需的。

有关尽可能小的足迹,你应该真正考虑RamTEX。我曾与8位PICS用它在两个项目。该ROM空间是我的〜1K申请RAM(数量取决于你是否需要RAM缓存用于显示)约35K。 ROM空间取决于你想要的图形功能或需要。

他们提供完整的源代码和一次性的价格是相当不错的,少于$ 1000(注意,在其网站上列出的价格已经转换为美元,或任何你的货币)。有没有使用费或每件商品的限制。

它们提供了许多不同的尺寸和风格的字体和基本绘图调用(线,像素,箱等)的。它没有任何定义的“对象”,如按钮或菜单,但我还是能够实现的弹出菜单中没有太多的麻烦。它支持可用于定义文本框,菜单等,每一个都有自己的属性“视口”。

它还配备了一个PC上运行,这样你就可以移动到嵌入式系统前,在桌面上显示开发代码的模拟器。

您可能需要压缩使用运行长度编码(RLE)字体。见例子.PCX文件格式,但它可能是最好的设计定制RLE。没有指定液晶显示器的位深,但字体需要每像素任何一个位如果不需要抗锯齿,或者抗锯齿最多三个BPP的。每个人的性格都必须有它自己的宽度,因为等宽文字是不是很好。应直接从压缩字体到屏幕的RLE渲染,使用优化的例程。

SDL是一个非常便携图形libary。它是在嵌入式Linux系统中使用,但我认为它可以在没有操作系统中使用。有关SDL的好处是,你可以使用Windows / Linux的开发和测试你的UI,后来又针对嵌入式系统。无需更改应用程序代码需要!

您也可以使用反谷物几何库( HTTP://www.antigrain。 COM /对SDL的顶部约/ index.html的)。具有16位或24位LCD它产生惊人的图形。这可能只是一个有点太为你的环境中的大,因为我的一个ARM / Linux系统上执行约一兆字节。它包含了SDL,AGG和libfreetype2的字体渲染。 AGG也是有点慢,但产生美观的效果。

(老问题,但我想我的后关于这个问题的调查结果)

有关高品质的图形,反谷物几何形状是一个很好的选择。它编译约50KB和可定制写入各种帧缓存和渲染的设备: http://www.antigrain.com/

有关的用户界面,格温出现一个很好的选择。这是很容易的便携式和可定制,以呈现位图剥皮控制或只是矩形/圆形/线形式: https://github.com/garrynewman/GWEN

然后,如果你也选择RTOS,NuttX有它自己的图形子系统和部件工具箱: http://nuttx.sourceforge.net/

我的猜测是,类似的FreeDOS,与DJGPP组合为工具链,以及快板作为一个图形库可能被认为适合闪存的512K和还是做一个合理的工作(我假设你有哪几种MB一个x86的RAM这里)

但是,这些东西是非常具体的x86(快板不是虽然)。

有棘手的Linux内核和用户空间的软件内512k的有用的量(但可能得到的东西)

您应该给 easyGUI 一试。

easyGUI是一个GUI图形软件/库专门设计用于小(ER)嵌入式系统工作。

没有操作系统所需。基本循环的执行就足够了。闪存512KB应该比还行。 easyGUI提供图书馆是在帮助减少闪光灯的你所需要的量非常灵活。

支持字体,图形,位图,触摸屏和一堆视频控制器的开箱。

加上它是很便宜的(无许可费用,每个座位只是平坦的量),并配有PC程序设计的屏幕和生成代码。 PC程序需要一段时间来适应,但最终它是非常好的尝试某些事情出在PC上,然后就生成并看着它在你的目标上运行。

他们在其网站上的演示应用程序。值得一检查出来。

512KB小。祝你好运!

您可能想尝试一个 DSL ,提供的 mplayer的。后者不需要GUI显示短片。我想它也可以显示图像。

不过我担心这将是太多的闪光。也许这些链接的来源将有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top