基于嵌入式Linux的视频采集系统6----视频在LCD上的实时显示

本文来自:
http://blog.chinaunix.net/uid-23093301-id-86395.html

MiniGUI的移植

● MiniGUI图形支持库的组成

本课题选用MiniGUI的版本为libMiniGUI-1.6.10 。

编译完成后生成三个库:它们分别是libMiniGUI、libmgext以及libvcongui。

1) libMiniGUI 为MiniGUI的核心库,提供标准控件。

2) libmgext 是MiniGUI 的扩展库,提供“文件打开”、“颜色选择”等高级对话框等;

3)  libvcongui 支持虚拟控制台窗口的函数库。

● 移植资源文件

本课题选用MiniGUI的版本为MiniGUI-res-1.6.10

资源文件包括基本字体、图标、位图和鼠标光标。

●  MiniGUI所依赖函数库

MiniGUI需要交叉编译其依赖的以下函数库:

1) zlib库,zlib是提供数据压缩用的函式库,zlib使用DEFLATE算法。

2) png库,png 图片支持库。

3) jpeg库,jpeg 图片支持库

4) ttf库,TrueType 字体的支持库

编译libMiniGUI,需要添加必须的交叉编译选项。

./configure

--prefix=/root/MiniGUI/arm/target \

--host=arm-linux \

--target=arm-linux \

--build=i386-linux \

--with-osname=linux \

--with-style=classic \

--with-targetname=fbcon \

--enable-autoial \

--enable-rbf16 \

--disable-vbfsupport \

CC=arm-linux-gcc

# make

# make install

● 复制MiniGUI相关文件到嵌入式系统根文件系统

主要是将MiniGUI库文件、资源文件、和MiniGUI所依赖的函数库复制到指定的嵌入式系统根文件系统目录。

● 复制和修改MiniGUI的配置文件

MiniGUI的配置文件为MiniGUI.cfg ,一般将其此文件放置到/etc目录下。需要根据我们的开发板进行修改,主要是设置图形设备引擎、输入设备及图形设备大小和显示位数。需要修改的字段如下:

1)  gal_engine=fbcon 设置图形引擎为帧缓冲控制台fbcon

2)ial_engine=cosole 设置输入引擎为控制台

3)mdev=dummy 不需要鼠标输入

4)Defaultmode选项用于设置显示器分辨率,由于本课题选用的是3.5 寸液晶LCD,故设置为:Defaultmode=320x240-16bpp。

3.1.2 基于MiniGUI的显示模块实现

MiniGUI的显示模块初始化一个320*240的窗口,然后创建一个环形缓冲区,当缓冲区有数据时,MiniGUI立即将其显示,如果缓冲区无视频数据,则MiniGUI模块阻塞在条件变量上,当有图像数据到达时,条件变量被激活,MiniGUI立即将视频图像显示到LCD上。

MiniGUI显示模块程序流程图所示:



你可能感兴趣的:(usb摄像头)