嵌入式系统下的Microwindows实现

前 言

    目前,伴随着各种手持、无线及嵌入式设备的迅猛发展,相应的软硬件设计也发生了很大的变化。许多设备都使用了 Intel,MIPS,摩托罗拉的32位微处理器及大屏幕的液晶图形显示器。由于在过去10年中,桌面操作模式取得了巨大成功,于是许多开发者在嵌入式设计中开始使用类似于桌面的操作系统。其中一个比较好的方案就是使用Linux操作系统。由于Linux在嵌入式系统上具有桌面电脑的全部功能和特性,同时作为一种开放式源码,它允许各种各样的修改,并且还可以根据用户的特定要求进行定制。

Microwindows概述 

    Microwindows 是一个著名的开放式源码的嵌入式GUI软件,目的是把现代图形视窗环境引入到运行Linux的小型设备和平台上。作为X Window的替代品,Microwindows可以使用更少的RAM和文件存储空间(100K-600K)提供与X Window相似的功能。该体系结构允许设计者轻松加入各种显示设备、鼠标、触摸屏和键盘等。Linux2.2以上版本的内核代码允许用户将图形显存作为帧缓存进行存取,这样当用户对显示设备进行写入、控制时可以避免对内存映射区进行操作,因此用户可以在不了解底层图形硬件或没有使用过X Window的情况下进行图形程序的开发。这就是为什么现在在嵌入式系统中广泛使用Microwindows的原因。Microwindows 的可移植性非常好,基本上用 C 语言实现,只有某些关键代码使用了汇编以提高速度。Microwindows支持 Intel 16位、32位CPU,MIPS R4000 以及 ARM 芯片。
Microwindows 已经移植到一些掌上电脑。它的图形引擎被设计成能够运行在任何支持readpixel, writepixel, drawhorzline 和drawvertline, 和setpalette 的系统之上。在底层函数的支持之下,上层实现了位图,字体,光标以及颜色的支持。Microwindows支持新的Linux内核帧缓存结构,目前提供每像素1、2、4、8、16、24和32位的支持,另外还支持彩色显示和灰度显示,其中彩色显示包括真彩色(每像素15、16和32位)和调色板(每像素1, 2, 4 和 8 位)两种模式。在彩色显示模式下,所有的颜色用RGB格式给出,系统再将它转换成与之最相似的可显示颜色,而在单色模式下中则是转换成不同的灰度级。Microwindows支持窗口覆盖和子窗口概念、完全的窗口和客户区剪切、比例和固定字体,还提供了字体和位图文件处理工具。系统使用了优化的绘制函数,这样当用户在移动窗口时可以提供更好的响应。内存图形绘制和移动的实现使得屏幕画图显得很平滑,这点特别在显示动画、多边形绘制、任意区域填充、剪切时有用。
尽管Microwindows完全支持Linux,但是它内部的可移植结构是基于一个相对简单的屏幕设备接口,可在许多不同的RTOS和裸机上运行。这种特性的优点突出体现在用户设计的图形程序不需重写就可以被不同的工程共享,甚至可以运行在不同RTOS的不同对象上。 

    Microwindows系统以图形方式支持在主机平台上的仿真目标平台。这样,为Linux设计的Microwindows应用程序就可以在台式机上进行编写和开发而不用进行交叉编译就可测试和运行,并且直接在目标平台上运行。台式主机上运行的目标应用程序在X window中显示,这一点通过由Microwindows提供的X window屏幕驱动来完成,而不是通过帧缓存驱动。该驱动可以在像素位素和颜色深浅方面准确的模拟目标平台上的显示器,这样即使桌面系统是24位颜色,它也可以预览显示2bpp灰度级的目标应用程序。 

    Microwindows采用分层设计方法。在最底层,屏幕,鼠标/触摸屏以及键盘驱动程序提供了对物理设备访问的能力。在中间层,实现了一个可移植的图形引擎,支持行绘制,区域填充,剪切以及颜色模型等。在上层,实现多种API以适应不同的应用环境。

两种API:Win32和Nano-X 

    Microwindows中使用两种流行的图形编程接口:Microsoft Windows Win32/WinCE图形显示接口(GDI)和Xlib-like接口。前者应用于所有的Windows CE和Win32应用程序,后者就象Nano-X,应用于所有Linux X插件集的最底层。这样做可以让大量的Windows程序员开发图形应用程序,类似地也可以让Linux图形程序员用X接口开发图形应用程序。

Nano-X程序设计 

    本文中将用Nano-X API设计一个应用程序,并且讨论底层Nano-X程序的设计问题。Nano-X允许应用程序使用client/server网络协议或本地UNIX的主域接口。这样可以让几个应用程序在嵌入式设备或远程主机上运行而连接到Microwindows 的服务器上显示,这些特点使得Nano-X的操作非常像X Windows系统。在底层和大部分有关创建、删除窗口以及基本画图函数方面,Nano-X API和X的Xlib库很相似。另外,由于Microwindows被设计得很小,很多选项可以用资源包中的配置文件来进行设置。 

    下面的过程是建立一个Nano-X服务器的一个具体操作。

(1)初始化 

    Mcrowindows的资源包可以从http://microwindows.org下载。首先通过编译为主机和嵌入式目标平台建立一个Nano-X 的服务器。大多数的设置选项在配置文件中,所以在解压缩该资源包后进入microwin/src目录里编辑配置文件。下面是一些最重要的ARCH选项:
ARCH=LINUX-NATIVE
ARCH=LINUX-ARM
ARCH=LINUX-MIPS
ARCH=LINUX-POWERPC 

    为LINUX-NATIVE设置ARCH选项的目的是通知系统为当前运行的主机的Linux系统生成程序,而为其他选项设置ARCH则是要给一个RISC目标平台进行交叉编译。Microwindows中使用Arch.rules文件为每一个选项确定一个具体的设置。 

    下面的设置项用于提供Nano-X 服务器的图像支持:
HAVE_BMP_SUPPORT=Y
HAVE_GIF_SUPPORT=Y
HAVE_JPEG_SUPPORT=Y 

    设置JPEG图像选项时必须给出外部jpeg解压缩库的位置,例如LIBJPEG=/usr/lib/libjpeg.a。大部分系统都提供了解压库,也可从Microwindows网站上下载。另外一个重要设置项为选择是否提供大小可变字体支持,缺省项是在drivers/genfont.c中提供固定大小的位图字体。如想显示更大的字体,例如运行一个嵌入式浏览器,则可加入对TrueType 或 Adobe Type 1字体的支持。当选项确定以后,就可以根据显示的需要指定字体文件和像素点的大小,相应Microwindows会根据外部字体文件来生成大小适当的字体。最新的版本还可支持外部中文字体,其中所有的字体可用8位ASCII 码、 Unicode-16或UTF-8确定。其中UTF-8是Unicode的字节流编码方案。 

    有关字符支持的选项如下:
HAVE_FREETYPE_SUPPORT=Y
HAVE_T1LIB_SUPPORT=Y
HAVE_HZK_SUPPORT=Y 
    
    FreeType 和T1lib外部库分别用于支持TrueType 和 Adobe Type 1字体。这些库必须预先编译并且在配置文件中应指定其位置。Microwindows的网站上提供的所有库函数的下载。

(2)配置输出显示设备 

    由于Microwindows可在帧缓存系统和X Windows下运行,每一种显示驱动需要确定不同的设置。如果已经在Linux桌面上运行了X ,最好首先用X屏幕驱动建立系统,然后再为嵌入式设备生成一个帧缓存。下列选项用以配置X屏幕驱动:
X11=Y
SCREEN_WIDTH=640
SCREEN_HEIGHT=480
SCREEN_PIXTYPE=MWPF_TRUECOLOR0888 

    Microwindows通过这些选项在X 桌面上生成一个640x480的虚窗口,采用了8位色彩模式(红、绿、兰各用8位表示)输出。通过改变设置,可以在自己的桌面上控制目标嵌入式设备的仿真。例如仿真一个每像素16位的显示,SCREEN_PIXTYPE=MWPF_TRUECOLOR565。其中MWPF常数在src/include/mwtypes.h 头文件中有详尽的解释。 

    由于必须确定Linux系统内核支持帧缓存,因此设置帧缓存显示比较复杂。其设置如下:
X11=N
FRAMEBUFFER=Y
FBVGA=Y
VTSWITCH=Y
PORTRAIT_MODE=N 

    FBVGA选项引入了对16色VGA平面模式屏幕驱动的支持,但是该选项不可用于嵌入式系统。VTSWITCH选项允许Microwindows在帧缓存控制器上运行,按下ALT键可打开另一个虚拟控制器。一些嵌入式系统要求该选项关闭。PORTRAIT_MODE选项利用 L/R键来指定系统偏向于左/右运行,这一点和康柏公司出品的iPAQ PDA非常类似。

(3)Linux内核帧缓存支持 

    如果在运行Nano-X 服务器时显示“Can’t open /dev/fb0”,说明没有打开帧缓存或是系统内核没有引入帧缓存驱动。最简单的识别方式是当启动系统时是否看见一个企鹅图标,如果没有图标则确认下列选项是否在/usr/src/linux/.config文件中:
CONFIG_FB=y
CONFIG_FB_VGA16=y
CONFIG_FBCON_VGA=y
CONFIG_FBCON_CFB4=y
CONFIG_FBCON_CFB8=y 

    如果系统支持图形卡而不是标准的老式VGA,可以不用CONFIG_FB_VGA16选项。在重建内核之前,需要备份旧的内核,并且在lilo.conf文件中写明备份位置。启用帧缓存是大部分嵌入式系统的标准设置。 

    最后一项重要配置是为Microwindows指定鼠标或触摸屏输入的驱动程序。目前Microwindows上的鼠标是通过GPM工具或直接使用串口。指令GPMMOUSE=Y是选择GPM支持,设置之后运行gpm工具,例如‘gpm –R –t ps2’(支持 PS/2 鼠标);指令SERMOUSE=Y 是选择串口,同时还要在src/drivers/mou_ser.c 中设置MOUSE_TYPE和MOUSE_PORT两个环境变量。

(4)创建一个完整的演示系统 

    一旦在配置文件中设置好选项后,只要用户不再改动,参数就保持不变。同时在src目录中还有很多针对不同平台的样本配置文件。要创建一个 Nano-X 服务器并且运行演示程序,首先进入microwin/src目录,然后键入“make”。所有的程序在microwin/src/bin目录中生成,客户链接库也放在microwin/src/lib目录下。要运行演示程序,首先运行Nano-X 服务器 (在bin/nano-X下),然后再运行应用程序。

bin/nano-X & sleep 1; bin/world
在运行demonstration world plotting程序之前运行休眠命令以便服务器有一段时间来进行初始化。 

    创建一个简单的Nano-X应用程序
目的:绘制一个带兰边的白色方块。源代码如下
filename :sample.c
#define MWINCLUDECOLORS
#include
#include “nano-X.h”
int main(int ac,char **av)
{
GR_WINDOW_ID w;
GR_EVENT event;
if (GrOpen() < 0) {
printf(“Can’t open graphics\n”);
exit(1);
}
w = GrNewWindow(GR_ROOT_WINDOW_ID, 20, 20, 100, 60, 4, WHITE, BLUE);
GrMapWindow(w);
for (;;) { GrGetNextEvent(&event); }
GrClose();
return 0;
} 

    在配置和检测了Microwindows初始安装程序以后,用“make install”指令来创建Nano-X 服务器、客户库和头文件,然后键入下述字符编译、链接和运行示例程序:
gcc sample.c –o sample –lnano-X
nano-X & sleep 1; sample
键入escape将退出服务器。 

    GrOpen()函数用于打开一个与正在运行中的Nano-X 服务器的连接,如果服务器没有运行,则返回-1值,应用程序此时显示错误信息并退出。GrNewWindow函数在屏幕(20,20)的位置上创建一个100x60像素的窗口。它的边界大小为4像素宽,兰边白底。然后调用GrMapWindow函数将刚刚创建的窗口在屏幕上显示出来。这是因为有时生成一组窗口很方便,但是要根据用户指令在屏幕上显示和移动。在屏幕显示窗口以后,程序进入“event loop”状态,等待下一个鼠标或键盘事件。

Expose event 

    更为复杂的Nano-X应用程序基本上遵从上述同样的逻辑结构。首先生成窗口,接着显示出来,然后程序进入“event loop”等待用户发出指令。在该例中并没有真正写出明确的代码在窗口上画出东西。在实现这一点之前,首先应当理解关于Expose event的概念。Nano-X API提供一套完整的在屏幕上划线、写字、画圆和显示图像的函数。当一个窗口被遮住时,Microwindows剪辑该窗口图画并保存下来,当被遮掩部分再次需显示时,可以重新刷新以显示以前的内容。刷新发生时,服务器首先向应用程序发送一个Expose event,要求重新绘制窗口中的内容。Microwindows在首次显示窗口后就发出一个expose event指令,这样重新绘制时使用的代码和原来显示时所用的代码完全一样,所以可以实现在原先位置上显示同样的内容。下例是用该机制显示一些文字,并在窗口移动后重新显示出来(sample2.c).
#define MWINCLUDECOLORS
#include
#include “nano-X.h”
int main(int ac,char **av)
{
GR_WINDOW_ID w;
GR_GC_ID gc;
GR_EVENT event;
if (GrOpen() < 0) {
printf(“Can’t open graphics\n”);
exit(1);
}
w = GrNewWindow(GR_ROOT_WINDOW_ID, 20, 20, 100, 60,4, WHITE, BLUE);
gc = GrNewGC();
GrSetGCForeground(gc, BLACK);
GrSetGCUseBackground(gc, GR_FALSE);

GrSelectEvents(w, GR_EVENT_MASK_EXPOSURE);
GrMapWindow(w);

for (;;) {
GrGetNextEvent(&event);
switch (event.type) {
case GR_EVENT_TYPE_EXPOSURE:
GrText(w, gc, 10, 30, “Hello World”, -1, GR_TFASCII);
break;
}
GrClose();
return 0;
} 

    为了检测expose event代码,要运行带有NanoWM窗口管理器的Nano-X,这样就可以移动窗口了。命令如下:
bin/nano-X & sleep 1; bin/nanowm & sleep 1; sample2 

    在上例中用GrSelectEvents函数发送 GR_EVENT_TYPE_EXPOSURE事件到客户(client)程序中。为了保持client/ server之间的通信,server只向每个client窗口发送选择过的事件。程序中只有一句处理“Hello World”显示文本,该句在expose event例程中。GrMapWindow调用后立即产生一个expose event,这样即使窗口实际上并没有真正移动文字还是会被显示出来。

Graphics contexts 

    当绘制类似于线条或文字的图形时,所调用的每个画图函数都定义了一些可以影响操作的参数。每个调用除了一些类似于线条起始点这样的最基本信息以外,还由系统确定一些其它信息。前景色、背景色、与或画图模式以及一些其它参数保存在一个graphics context结构中。上例中graphics context用GrNewGC生成。该函数按标准设置生成graphics context,然后调用GrSetGCForeground设置前景文字颜色。在expose event处理过程中,graphics context通过window id设置文本绘制参数。

画图函数 

    上面已经介绍了生成程序、窗口和graphics context的基本知识,下面介绍Microwindows图形库中提供的其它函数。
GrClearWindow 清除窗口(Clear a window to it’s background color)
GrPoint 画点(Draw a single point)
GrLine 画线(Draw a line)
GrRect 画矩形(Draw a rectangle outline)
GrFillRect 填充矩形(Draw a filled rectangle)
GrEllipse 画圆/椭圆(Draw an ellipse or circle outline)
GrFillEllipse 填充圆/椭圆(Draw a filled ellipse or circle)
GrArc 画弧形(Draw an arc outline or pie wedge)
GrArcAngle 画弧形,指定浮点及角度(Like GrArc, but uses floating point and angles)
GrPoly 画多边形(Draw a polygon outline)
GrFillPoly 填充多边形(Draw a filled polygon)

GrBitmap 绘制位图( Draw a bitmap image)
GrDrawImageFromFile 绘制存盘的BMP、GIF、JPEG图形(Draw a BMP, GIF or JPEG file from disk)
GrDrawImageToFit 绘制cache中的图形,并适当调整其大小(Draw a cached image and stretch to fit)
GrArea 绘制内存队列中像素点(Draw from a memory array of pixels)
GrCopyArea 将某一窗口中的矩形区域复制到另一窗口(Copy a rectangular area fromonewindow to another)
Microwindows也支持一种从来不在屏幕上显示的窗口,即像素映射(pixmap)。像素映射窗口有时也称作虚窗口(offscreen),虚窗口不能在屏幕上显示出来,但是可以使用GrCopyArea函数复制到别的窗口。有时在expose events期间,CPU太忙而无法保存显示窗口的内容,普通窗口在被遮掩时又从不保存它们的内容,这时就可以使用像素映射。用GrNewPixmap函数可以生成一个像素映射。 

    希望上面的介绍可以帮助你理解在嵌入式Linux里,一个小型系统如何运行复杂的应用程序。Microwindows网站上还有更多的内容。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9403012/viewspace-1647/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9403012/viewspace-1647/

Microwindows 0.91版本:嵌入式GUI系统详解 Microwindows是一个开源的、微内核的图形用户界面(GUI)系统,它提供了一种轻量级的方式,为嵌入式系统和小型设备提供窗口化操作界面。0.91版本是该系列中的一个里程碑,它在功能和性能上都有显著提升,为开发者提供了更为丰富的工具集和优化选项。 阅读详情

相关推荐

Micro_Window_Toolkit(MWT)

这个资源里面不仅有所有的Demo例子还有14个简单的易学的例子,希望能给大家带来好的学习资源。MWT是一个用于开发J2ME用户界面(UI)的工具包。它具有友好,强大,快速,开源等特性。因为它的"灵感"来自 AWT,Swing和SWT。可以使用bitmap fonts等来自定义组件。它专门为嵌入式开发而设计和优化。基于LGPL发布。

microwindows位图解析

 第1章 microwinodows图形显示框架1.1 microwindows体系结构Microwindows 采用了分层结构设计方法,其层次结构如下图所示。同时, 这里也列出 Microwindows 源代码目录树下的主要目录结构,以便于对照参考。 microwindows --bin --Configsnano-X /win32 API --demos

bisword的专栏 2301

MicroWindows_system.rar_microwindows

MICROWINDOWS事件,接口等的一些实际应用,对开发者有一定的借鉴作用

MicroWindows介绍

   MicroWindows Open Source Project成立的宗旨是针对体积小的装置建立一套先进的视窗环境。在Linux桌面上通过交叉编译可以很容易地制作出MicroWindows的程序。MicroWindows能够在没有任何操作系统或其他图形系统的支持下运行,它能对裸显示设备进行直接操作。因此,MicroWindows就显得十分小巧,便于移植到各种硬件和软件系统上。  然而Mi

冷雨 专栏 1394

海康工业相机排雷笔记02-像素格式解析

工业相机使用过程记录 02-像素格式解析 通过将相机输出图像裸数据raw格式直接存图查看 一、黑白/Mono 直接使用相机测试图像存图: 图像中各部分灰度分别为:0、36、73、109、146、182、219、255,以灰度73列为例 (1)Mono 8 该列图像数据为十六进制49,十进制为73,那么Mono 8就是每个像素点占8bit,依次排列。 (2)Mono 10 该列图像数据为十六进制2401,由于相机均为小端数据,实际数据应解析为0124,十进制为292=73*4,那么Mono 10格式为每

yonghuming_66的博客 8357

AI 代码赋能短视频带货:服装及多赛道批量内容生产全流程实操

本文聚焦 AI 技术在短视频带货领域的落地应用,以服装赛道为核心,延伸至花卉绿植、图书、茶具等热门领域,系统拆解 AI 工具在选品、素材处理、视频制作(含动态效果、场景搭建)、运营优化等环节的实操方法。针对从业者普遍面临的 “内容生产低效”“无专业技术难出优质视频”“流量运营踩坑” 等痛点,提供从基础工具使用到高阶视频制作的全流程技术方案,助力相关从业者借助 AI 实现批量、高效的短视频内容产出。

m0_67958922的博客 3083

Microwindows安装与配置指南

Microwindows,也称为Nano-X Window System,是一个轻量级的图形窗口系统。它为Linux、Mac OS X、Android、EMSCRIPTEN等多种平台提供了Win32和Nano-X(类似X11)API,用于在窗口中执行剪裁图形绘制。它是一个开源项目,遵循Mozilla Public License协议。该项目主要使用C语言编写。 ## 2. 关键技术和框架 - ...

gitblog_00481的博客 1005

【卫星语音通信】神经网络语音编解码算法:AudioDec

最新研究表明,通过深度学习模型对语音信号进行智能压缩与重建,可在12 kbps码率下实现48 kHz采样率的高保真语音还原,其主观音质评分(MOS)可达3.9分(满分4.27分),远超传统参数编码技术。这意味着未来卫星电话的通话质量有望达到CD级水准,而蜂窝网络的语音业务带宽需求可降低60%以上,为蜂窝和卫星网络中的大规模物联网语音交互铺平道路。它的诞生为神经音频编解码技术带来了一次重要升级,有助于让未来实时语音交互更流畅、更清晰,也让我们进一步体验到人工智能与音频信号处理结合所带来的创新可能性。

u011376987的博客 1472

嵌入式系统下Microwindows的实现

前 言  目前,伴随着各种手持、无线及嵌入式设备的迅猛发展,相应的软硬件设计也发生了很大的变化。许多设备都使用了 Intel,MIPS,摩托罗拉的32位微处理器及大屏幕的液晶图形显示器。由于在过去10年中,桌面操作模式取得了巨大成功,于是许多开发者在嵌入式设计中开始使用类似于桌面的操作系统。其中一个比较好的方案就是使用Linux操作系统。由于Linux在嵌入式系统上具有桌面电脑的全部功能和特性,同

billyliang的专栏 874

MWORKS 2025a电气模型库实战:手把手教你搭建全桥LLC电路(附避坑指南)

本文详细介绍了如何使用MWORKS 2025a电气模型库搭建全桥LLC电路,包括环境准备、电路拓扑构建、参数优化及故障诊断。通过实战案例和避坑指南,帮助电源工程师高效设计谐振转换器,提升转换效率至98%以上。文章特别强调了Modelica模型库在电气系统建模中的关键作用。

s8t9u0v1w的博客 603

Ubuntu本地部署CodeX编程助手:CLI配置全指南

本地AI编程助手是当前开发者关注的核心技术趋势,指在不依赖云端API、保障代码隐私前提下,于本地环境运行具备代码理解、多语言补全与知识库检索能力的智能辅助工具。其技术原理涉及模型加载、API网关编排、向量数据库集成及系统级资源调度,关键价值在于可控性、低延迟与合规性。典型应用场景包括企业内网DevOps提效、边缘设备嵌入式开发支持,以及敏感代码场景下的离线编程增强。本文聚焦Ubuntu系统下基于CLI的手动配置路径,深入解析Ollama服务注册、Node.js版本锁定、API Key环境隔离及Qwen2.5

weixin_26804345的博客 594

Microwindows及其中文化方法

 [转帖]Microwindows及其中文化方法 嵌入式GUI系统是嵌入式系统中实现友好人机界面的关键技术,应用于嵌入式的GUI系统必须具备体积小、反应快、高可靠性、可移植性好以及可裁减等特点,对于实时系统还需要有时实方面的要求。目前,流行的嵌入式GUI系统有Microwindows、MiniGUI、Qt/Embedded等。基中Microwindows以其开放的源

bisword的专栏 1991

模拟ic入门——设计一个单极运放(一)单级运算放大器设计基础

主要介绍了单级运放的基本理论和使用场景

qq_64956710的博客 3740

opengui移植到嵌入式linux,嵌入式Linux的MiniGUI研究和移植

嵌入式Linux的MiniGUI研究和移植摘要:分析嵌入式操作系统下典型的图形用户界面MiniGUI的结构和特点,并提出将其移植到SUNPLUS的DVD720上的方案。关键词:图形用户界面(GUI) 嵌入式系统 Frame Buffer引 言1 嵌入式Linux下的GUI概况1.1 GUI在嵌入式系统中的地位随着嵌入式系统的广泛应用,PDA、机顶盒、DVD/VCD播放机及WAP手机已经迅速普及。图...

weixin_39673742的博客 137

【音视频基础】一篇搞懂视频的各种封装格式

在现代多媒体处理中,视频封装格式扮演着至关重要的角色。不同的封装格式决定了视频文件的存储方式、兼容性以及功能特性。无论是观看高清视频、编辑电影剪辑,还是在互联网上流式传输内容,理解各种视频封装格式的基础知识都是必不可少的。在这篇文章中,我们将详细介绍常见的视频封装格式,探讨为什么需要这些格式,以及它们各自的功能和区别,帮助你在选择和使用视频格式时做出更明智的决定。WEBM理解各种视频封装格式的功能和区别对于选择合适的格式至关重要。

m0_62599305的博客 2477

LoRa无线通信技术介绍(六)SX127X芯片收发程序讲解

接收LORA芯片SX127X的收发程序。

DT程序员的博客 1751

microwindows 中文显示问题的解决

最近由于项目要使用新的GUI,涉及到microwindows 的移植,因此开始接触microwindows。microwindows 是运行在嵌入式系统下的开源GUI项目,对linux有很好的支持。系统采用分层的设计方案以满足不同的实现需要。总体分为三层:最下面的设备驱动层、中间的图形引擎层、面向应用程序的API接口层。设备驱动部分提供了屏幕、鼠标/触摸屏、键盘以及其它I/O设备的实际操作,并向上

abc的专栏 2088

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

我的microwindows论坛

转载时请注明出处和作者联系方式:http://blog.youkuaiyun.com/mimepp作者联系方式:YU TAO 本人建了一个microwindows的论坛,供有兴趣的开发人员交流之用。http://microwindows.5d6d.com 主要涉及到的内容是microwindows的原理、优化、应用等方面的内容。目前网络上关于microwindows的讨论太少,而microwindows还是有

mimepp的专栏,这里都是原创 1655

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

嵌入式Linux系统下Microwindows的应用

 引言            在进入后PC时代以后,嵌入式设备以一种无法抑制的迅猛速度普及和发展到日常生活及工作当中,众多知名开发商为了抢占市场和争夺利润,竞相推出各种性能优异的软硬件及内核芯片。鉴于以视窗为代表的桌面操作模式取得巨大成功,该模式目前已成为国内外开发者们在嵌入式设备中的首选方案。        近几年,随着Linux技术的兴起,越来越多的企业和科研机构把目光转向嵌入式Linux的开

DWATER 1419

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

10025.Microwindows 简介

        Microwindows 是一个著名的开放式源码嵌入式GUI 软件,目的是把图形视窗环境引入到运行Linux 的小型设备和平台上。作为X Window 的替代品,Microwindows可以使用更少的RAM 和文件存储空间(100K-600K)提供与X Window 相似的功能。        Microwindows 允许设计者轻松加入各种显示设备、鼠标、触摸屏和键盘等。    

1457

microwindows

 http://linux.chinaunix.net/bbs/viewthread.php?tid=1042929  关于microwindows http://blog.chinaunix.net/u2/84216/article_98658.html  关minigui Qtembedded  官方網站: http://www.microwindow.orgSDK 手冊:

TQW4321的专栏 1360

microwindows, minigui,qte的比较

一、Microwindows Microwindows是一个典型的基于Server/Clinent体系结构的GUI系统 他分为三层 显示设备、输入设备,窗口管理硬件抽象层,Nano-X、ECMA APIW。 最底层是面向图形显示和键盘、鼠标或触摸屏的驱动程序;中间层提供底层硬件的抽象接口,并进行窗口管理;最高层分别提供兼容于X Window和ECMA APIW(Win32子集)的API。其中使用N

1163

Microwindows 介绍

Microwindows 介绍(The Nano-X Window System is an Open Source project aimed at bringing the features of modern graphical windowing environments to smaller devices and platforms. Nano-X allows applicati

ShorminHsu的专栏 1214

microwindows:轻量级图形窗口系统,实现跨平台GUI设计

microwindows,又称Nano-X Window System,是一款轻量级的图形窗口系统。它实现了Win32和Nano-X(类似X11)API,支持在Linux、Mac OS X、ELKS、EMSCRIPTEN、Android等多种平台上进行剪裁图形绘制。该系统开源,并遵循Mozilla Public License授权。 microwindows为创建GUI提供了多种工具和库,包括N...

gitblog_00674的博客 477

uClinux上Microwindows的移植与中文化

2007-12-25 09:55:38 摘 要:Microwindows是运行在嵌入式系统上的开源GUI软件,对嵌入式Linux操作系统具有良好的支持。本文介绍了在uClinux上移植icrowindows的过程;提出了三种解决Microwindows中文化的方法:直接加载中文字库,添加Truetype字体驱动模块Freetype2,修改图形引擎支持国际化与本地化:并对这几

mybirdsky的专栏 763

Microwindows(Nano-X)移植

Microwindows(Nano-X) Gui移植笔记 (2011-11-07 20:38) 分类: Gui 首先需要下载Microwindows的源文件以及依赖的库. 下载zlib包 http://www.zlib.net/zlib-1.2.3.tar.bz2 下载jpeg包 http://www.fmsoft.cn/uploads/minigui_org_

AMOVLAB(阿木实验室) 2376
上一篇: IBM推出免费智能语义电子邮件搜索引擎
下一篇: 掌中咖啡:移动开发中的JAVA应用
ciyi7513
博客等级 码龄11年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值