Microwindows在基于单片机嵌入式系统中的移植
图形引擎层
microwindows系统中的核心函数是在图形引擎层通过调用下层硬件设备驱动程序来实现的。这些函数对屏幕、鼠标、键盘等驱动程序进行了封装,为api提供了服务,用户调用最上层提供的编程接口,而不需要直接调用引擎层的例程。在microwindows的源代码中,核心的例程包括:
devdraw.c: 主要的图形绘制操作,描画和填充、圆、多边形、文本与位图的显示,颜色转换相关的代码;
devclip.c: 剪裁操作;
devmouse.c:处理鼠标操作的信息;
devkbd.c: 处理键盘操作的信息;
devpalx.c: 与调色板相关的代码;
devimage.c: 实现对gif、bmp、jpeg、ppm 等格式图形的显示操作;
fongt_xxxx.c: 对不同字体的显示操作
api
microwindows提供了两种类型的api,以便更好地适应在不同平台上应用程序的移植。一种是与win32/win ce 基本兼容的api,支持大多数的图形操作,它的api是基于消息机制的。另一种是采用x体系的nano-x api,它是client/server模式的,在客户端的api函数以nx……( )命名,在服务端的api函数以gr……( )命名。
具体实现
下面具体论述microwindows在pc机和s3c44b0x开发板上的实现。首先,需要下载相应的安装包,本文下载的是0.90版本的microwindows和相应的字库文件。同时,由于microwindows需要使用freetype库函数产生truetype字体,因此还需要下载安装freetype,这里使用的的是1.3.1版本的freetype。
pc机上实现
解压缩相关的安装包,安装freetype之后,就可以开始运行microwindows。在解压缩目录中输入命令:./xconfigure,就会出现相应的配置菜单,由于是在pc机上运行,应根据具体的参数配置microwindows。具体的参数配置如下:
(1) 点击compiling option ,进入编译选项。在随后弹出的子窗口中选中optimize,点击ok 返回即可。
(2) 点击platform,进入开发平台选项。由于是在pc机上运行,选择“linux(native)”选项。在其后的“option”选项中,按如下配置:“screen driver”选项中,由于是在pc机上运行,选择“x11”;在“mouse driver”鼠标选项中,选择“gpm mouse”;在“keyboard driver”键盘选项中,选择“tty”。
(3) 点击“libraries to compile”,进入链接库配置选项。其中有nanox库和microwindows 库,在“nanox”的“option”选项中,选择“link app into server”和“compile demos”选项。
关于其他的参数配置,包括字库、文件格式支持等应根据具体的情况进行配置。至此,microwindows在pc机上运行的配置工作已经完成,存盘退出,屏幕显示配置成功。输入命令:make,完成编译工作。当编译完成后,在src的bin目录下有很多演示程序,一些是基于nano—x api 的,一些是基于win32 api 的,运行即可。
以上简单论述了microwindows在pc机上运行的方法与过程,pc机上的运行过程相对简单,只需要按照实际情况进行配置,编译即可。
嵌入式开发板上的实现
下面论述microwindows在以s3c44b0x为主控芯片的嵌入式开发板中运行的步骤与方法。首先需要建立交叉编译开发环境,这里建立的编译器是arm-elf-gcc,汇编器是arm-elf-as,链接器为arm-elf-ld和库管理器arm-elf-ar。接着,移植相应的?clinux,关于此类的文章已经较多,在此就不赘述了。最后,在clinux内核中将s3c44b0x的帧缓冲设备驱动打开,并需要建立/dev/fb0设备节点,关于s3c44b0x的帧缓冲设备驱动程序的开发已另文发表。至此,已经做好microwindows移植的基础工作,下面具体论述实现的步骤与方法。
评论