嵌入式Linux开发教程12(MiniGUI图形界面设计)

合集下载

嵌入式控制终端GUI应用软件设计

嵌入式控制终端GUI应用软件设计

嵌入式控制终端GUI应用软件设计检定平台的各个传感器采集的数据,最终都要上传到嵌入式控制终端,并被汇总和实时显示到目标机(X210BV3S开发板)的液晶显示屏上,同时一些指令由检定人员通过人机交互界面实现对检定平台相应执行机构的控制。

因此,嵌入式控制终端的GUI应用程序,是实现这一需求的关键途径。

目前嵌入式Linu某操作系统环境下,主流的应用软件开发平台为Qt、uCGUI和miniGUI等,选择Qt平台进行嵌入式控制终端的GUI应用程序开发。

Qt是挪威Trolletch公司发布的一款的图形化界面开发工具,因为Qt是以C++为基础,提供了丰富的应用程序编程API接口,用以与Linu某操作系统的I/O设备、Framebuffer设备等进行交互,所以Qt有着优秀的跨平台特性,即其源代码只需进行一次编写,在不同平台、不同操作系统中的Qt开发工具下重新编译就可运行。

所以,嵌入式控制终端的GUI应用程序,首先在宿主机Ubuntu中进行Linu某操作系统环境下的Qt应用程序编写,然后选择已配置好的交叉编译工具链对应用程序源码进行编译,最后将编译后得到的可执行程序以及相关的库文件移植到目标机(X210BV3S开发板)的根文件系统指定目录下,便可在嵌入式控制终端运行GUI应用程序。

由于目标机(X210BV3S开发板)所采用的arm-2023q3版本的交叉编译工具链只支持C++ 98标准,所以最高只能使用Qt5.6;Qt官方再高版本已采用C++ 11标准,所以本课题使用Qt5.6.2在宿主机Ubuntu中进行嵌入式控制终端上层应用软件的开发。

检定系统程序在执行检定流程时主要实现的功能如下:(1)用户的登陆登陆界面实物图如图所示:(2)参数设置参数设置界面的功能是完成对被检热量表的信息录入以及检定控制参数的设定,其中被检热量表的信息主要包括:从检厂家、型号规格、检定单位、检定日期、检定人员、准确度等级等;检定控制参数主要包括:最大流量、最小流量、被检流量点等。

基于嵌入式系统MiniGUI车载显示界面开发

基于嵌入式系统MiniGUI车载显示界面开发
等汉 字 输入 法 , 持 多种 图形文 件 格式 , B 、 支 如 MP GF JE P X和 T A no s的资 源文 件 支 持 I、P G、C G Widw ( 位图、 如 图标 和光标 等 ) 。MiiU 小 巧 , nG I 包含 全 部 功能 的库 文 件 大 小 为 30k 0 B左 右 。可 以根 据 开 发 的需要 自行 配 置 和 编 译 , 别 适 合 于作 为嵌 特 入 式 Lnx系统 的 图形 平 台 , 也 是 选 择 它 作 为 iu 这
少、 性能高、 可靠性高和可配置等特点。M n U iG I i 目前 已 比较成 熟 , 已应 用 到很 多项 目或 产 品的 并 实 际开 发 中。现在 MiG I 支持 的操 作 系统 不 n U所 i
仅 仅 限于 Ln x它还 可 以在 i l u 、 x rs i , u  ̄ i x V Wok 、 Cn
随着 汽车产 量 和保 有 量 的 日益 增 多 , 以石 油 产 品为动力 源 的车辆 所排 放 的废气 成 了影 响全球 气候 和城 市 自然 环 境 污染 的主 要来 源 , 此外 能源 短缺 问题 也越来 越严 峻 。燃料 电池 车作 为一 种 高 效低公 害 的清 洁车辆 被普 遍认 为是 解 决城 市机 动 车排 气污 染最有 效 的途径 之 一 。随着 社会信 息 化 和汽 车 电子控 制 技 术 的 日益 发 展 , 为实 现 未 来 汽
eo、 C O C s ̄ / S—I、S S和 T raX等 操作 系 统 上 Ip O hed
运行 , 可 以 在 Wi3 也 n 2平 台 上 运 行 , 而 方 便 从
MiiU 应 用 程 序 的开 发 和调 试 。MiiU 提 供 n I G nG I

MiniGUI(程序开发)

MiniGUI(程序开发)

25
控件风格的介绍
窗口的通用风格: WS_VISIBLE WS_CAPTION WS_BORDER WS_VSCROLL WS_EX_NONE (窗口可见) (窗口有标题) (窗口有边框) (垂直滚动条) (无扩展风格)
26
重要的消息类型
MSG_CREATE:在窗口成功创建后进行触发, 在其中可以进行新窗口的创建。 MSG_COMMAND:控件内部发生事件时, 通过此消息来进行发送。 MSG_CHAR:有按键值,当按键按下时触发此 消息。 MSG_LBUTTONDOWN:鼠标点击左键时出 发此消息。
28
主要的API接口函数

GetDlgItem:根据控件标识符获得控件句柄。


GetWindowText:复制编辑框中的文本。
SetWindowText:重置编辑框中的文本。


SetWindowBkColor:设置窗口背景颜色。
SetWindowAdditionalData:保存对话框的附加数 据
// control class // control style // control position in
// control identifier // control caption // additional data // control extended style
14
对话框的建立
//设置主窗口风格
CreateInfo.dwExStyle = WS_EX_NONE; CreateInfo.spCaption = “HelloWorld”; CreateInfo.hMenu = 0;
//设置主窗口的扩展风格 //设置主窗口的标题 //设置主窗口的主菜单

MiniGUI图形界面实验

MiniGUI图形界面实验

学习移植 MiniGUI-STR(for uC/OS-II)软件到 SmartARM2200 开发板的基本方法,然后 编写一个简单的 MiniGUI 应用程序,使用 MessageBox 函数创建一个消息框,消息框中显示 字符串“Hello MiniGUI!” 。 4. 实验预习要求 (1) 仔细阅读<<ARM 嵌入式系统实验教程(二)>>第 1 章的内容,了解 SmartARM2200 开发板的硬件结构,注意 TFT 液晶接口电路和键盘电路。 (2) 阅读 MiniGUI 的文档 <<MiniGUI 用户手册 >> 和 <<MiniGUI 编程指南 >> ,了解 MiniGUI 的基本特点和应用配置选项,以及应用程序的编写。 5. 实验原理 (1) MiniGUI 简介 MiniGUI 项目的最初目标是为基于 Linux 的实时嵌入式操作系统提供一个轻量级的图形 用户界面支持系统,发展到今天,MiniGUI 已进入成熟和稳定阶段,并且所支持的操作系统 已不仅仅限于 Linux,它还可以在 uClinux、uC/OS-II、eCos、VxWorks 等系统上运行。 MiniGUI 为应用程序定义了一组轻量级的窗口和图形设备接口, 利用这些接口, 每个应 用程序可以建立多个主窗口,然后在这些主窗口中创建按钮、编辑框等控制。MiniGUI 还为 用户提供了丰富的图形功能,以显示各种格式的位图并在窗口中绘制复杂图形。 MiniGUI 和嵌入式操作系统的关系如图 1.1 所示,基于 MiniGUI 的应用程序一般通过 ANSI C 库以及 MiniGUI 自身提供的 API 来实现自己的功能。
4
广州周立功单片机发展有限公司 }
Tel: (020)38730976

嵌入式linux开发教程pdf

嵌入式linux开发教程pdf

嵌入式linux开发教程pdf嵌入式Linux开发是指在嵌入式系统中使用Linux操作系统进行开发的过程。

Linux作为一种开源操作系统,具有稳定性、可靠性和灵活性,因此在嵌入式系统中得到了广泛的应用。

嵌入式Linux开发教程通常包括以下内容:1. Linux系统概述:介绍Linux操作系统的发展历程和基本原理,包括内核、文件系统、设备驱动等方面的知识。

了解Linux系统的基本结构和工作原理对后续的开发工作至关重要。

2. 嵌入式开发环境搭建:通过搭建开发环境,包括交叉编译器、调试器、仿真器等工具的配置,使得开发者可以在本机上进行嵌入式系统的开发和调试。

同时,还需要了解各种常用的开发工具和调试技术,如Makefile的编写、GDB的使用等。

3. 嵌入式系统移植:嵌入式系统往往需要根据不同的硬件平台进行移植,以适应各种不同的硬件环境。

这个过程包括引导加载程序的配置、设备驱动的移植和内核参数的调整等。

移植成功后,就可以在目标硬件上运行Linux系统。

4. 应用程序开发:在嵌入式Linux系统上进行应用程序的开发。

这包括编写用户空间的应用程序,如传感器数据采集、数据处理、网络通信等功能。

还需要熟悉Linux系统提供的各种库函数和API,如pthread库、socket编程等。

5. 系统优化和性能调优:在开发过程中,经常需要对系统进行调优和优化,以提高系统的性能和稳定性。

这包括对内核的优化、内存管理的优化、性能分析和调试等。

只有深入了解和熟练掌握这些技术,才能使得嵌入式系统运行得更加高效和稳定。

嵌入式Linux开发教程PDF通常会结合理论和实践相结合的方式进行教学,通过实际的案例和实践操作,帮助开发者快速掌握嵌入式Linux开发的技术和方法。

同时还会介绍一些常见的开发板和硬件平台,以及开源项目等,帮助开发者在实际项目中应用所学的技术。

总之,嵌入式Linux开发教程PDF提供了系统而详细的指导,帮助开发者快速入门嵌入式Linux开发,掌握相关的技术和方法,以便更好地进行嵌入式系统的开发工作。

MiniGUI

MiniGUI

消息的队列(2)
系统向应用程序消息队列投递消息是通过填充一个MSG 消息结构,再把它复制到消息队列中,MSG结构中的信 息如上所述,包括接收消息的句柄、消息标识、两个消息 参数以及消息时间。 应用程序可以通过GetMessage函数从它的消息队列中取 出一条消息,该函数用所取出消息的信息填充一个MSG 消息结构。应用程序还可以调用HavePendingMessage 函数来检查消息队列中是否有消息而不取出消息。 int GUIAPI GetMessage(PMSG pMsg,HWND hWnd); BOOL GUIAPI HavePendingMessage(HWND hMainWnd); 非排队消息不通过消息队列而直接发送到目标窗口的窗口 过程。系统一般通过发送非排队消息通知窗口完成一些需 要立即处理的事件,比如MSG_ERASEBKGND消息。
MiniGUI
MiniGUI的工作流程和体系架构的分析 基于GUI的应用程序设计 MiniGUI在嵌入式Linux下的移植
MiniGUI的工作流程和体系架构的分析
的概念(1) MiniGUI的历史 MiniGUI的体系架构 MiniGUI的事件驱动和消息机制 MiniGUI的三种运行模式
GUI概念(2)
Gui Framework提供给应用的接口主要包括窗口的建立, 事件的注册,还会提供更加底层的接口让应用创建自己特 色的窗口。Framework内部实现主要分为四块: 1. 图形引擎 2. 事件系统 3. 窗口系统 4. 用户接口层 图形引擎提供最底层的图形函数,如点、线、矩形、椭圆 形、图片等,及最底层的图形区域的计算,颜色的计算等。 事件系统提供对最原始的硬件源事件的管理,如鼠标的点 击,键盘的输入,触摸屏的操作等,将这些事件发送到指 定的模块,以及提供内部自定义的事件管理和转发。 窗口系统实际上是对图形引擎和事件系统的封装,给本来 屏幕上每一块的区域都添加了”生命“,使得这些区域可 以响应事件,显示特定的图像。 用户接口层主要是为应用程序服务的,让应用程序不关心 图形引擎和事件系统的情况下来建立自己的窗口。

嵌入式linux系统开发标准教程

嵌入式linux系统开发标准教程

嵌入式linux系统开发标准教程嵌入式Linux系统开发是一门非常重要的技术,它在嵌入式设备、物联网和智能家居等领域中得到广泛应用。

本文将介绍嵌入式Linux系统开发的标准教程,帮助读者了解该技术的基本原理和常用的开发工具。

一、嵌入式Linux系统开发的基本原理嵌入式Linux系统开发是指将Linux操作系统移植到嵌入式设备中,并针对特定的应用领域进行定制开发。

它与传统的桌面Linux系统有很大的区别,主要体现在以下几个方面:1. 硬件平台的选择:嵌入式设备通常采用ARM架构或者其他低功耗的处理器架构,而不是传统的x86架构。

因此,在进行嵌入式Linux系统开发时,需要根据具体的处理器架构进行相应的移植和优化。

2. 精简的内核:由于嵌入式设备的资源有限,为了提高系统性能和节省资源,嵌入式Linux系统通常会精简内核。

这需要对Linux内核的源代码进行裁剪和优化,以去除不必要的模块和功能,并保留对应用需求的必要功能。

3. 定制化的驱动程序和应用程序:嵌入式设备通常需要与各种外设进行交互,因此需要编写相应的驱动程序。

此外,根据具体的应用需求,还需要定制相关的应用程序和用户界面。

二、嵌入式Linux系统开发的工具嵌入式Linux系统开发需要使用一些常用的工具,下面是一些常用的工具和其功能的介绍:1. 交叉编译工具链:由于嵌入式设备和开发主机的处理器架构不同,无法直接在开发主机上编译和运行目标代码。

因此,需要使用交叉编译工具链,在开发主机上生成适用于目标设备的可执行文件。

2. 调试工具:在嵌入式Linux系统开发过程中,调试是非常重要的一环。

常用的调试工具包括GDB(GNU调试器)和strace(系统调用跟踪工具),它们可以帮助开发人员追踪程序的执行过程和定位错误。

3. 文件系统工具:嵌入式设备的存储资源有限,需要使用文件系统来组织和管理存储的数据。

常用的文件系统工具包括mkfs(创建文件系统)、mount(挂载文件系统)以及文件传输工具(如scp和rsync)等。

实验六---MiniGUI在LINUX运行环境的建立

实验六---MiniGUI在LINUX运行环境的建立

MiniGUI在LINUX运行环境的建立步骤实验目的:掌握MINIGUI在linux运行环境中的安装实验设备:PC机,MINIGUI-1.3.3等安装包,ARM核心板等实验原理:MiniGUI项目的最初目标是为基于Linux的实时嵌入式操作系统提供一个轻量级的图像用户界面支持系统。

作为操作系统和应用程序之间的中间件,MiniGUI将底层操作系统与硬件平台之间的差别隐藏起来,并对上层应用程序提供了一致的功能特性。

MiniGUI的特点:(1)占用资源少:MiniGUI本身占用的空间非常小,整个MiniGUI系统占用空间在2~4MB,在某些系统上,MiniGUI系统本身所占用的空间可进一步缩小到1MB以内。

(2)高性能、高可靠性:MiniGUI良好的体系结构及优化的图形接口,可确保最快的图形绘制速度。

(3)可定制配置:和Linux内核类似,MiniGUI也具有大量的编译配置选项,通过这些选项可指定MiniGUI库中包括哪些用户所需要的功能。

(4)跨操作系统支持:MiniGUI支持Linux/uClinux、eCos、uC/OS-II、V xWorks等嵌入式操作系统。

同时,在不同操作系统上的MiniGUI,提供完全兼容的API接口。

MiniGUI的体系结构:从整体结构上看,MiniGUI采用的是分层设计的,结构如图1所示图1 MiniGUI的分层体系结构MINIGUI的分层结构:在最底层,GAL(图形抽象层)和IAL(输入抽象层)及鼠标和键盘的驱动;中间层是MiniGUI的核心层,包括窗口系统必不可少的各个模块;最顶层是API,即编程接口。

GAL和I AL为MiniGUI提供了底层的Linux控制台或者X-Window上的图形接口以及输入接口,而Pthread用于提供内核级线程支持的C函数库。

利用GAL和IAL,大大提高了MiniGUI的可移植性,并且使程序开发和调试变得更加容易。

MiniGUI在QVFB上的仿真应用:MiniGUI能够在PC机上运行,也能够移植到目标板上运行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第12章 MiniGUI图形界面设计
课程安排
• • • • • • • • •
12.1 Minigui概述 12.2 Minigui的安装和使用 12.3 利用Eclipse编写MiniGUI程序 12.4 MiniGUI的编程基础 12.5 消息循环和窗口过程 12.6 对话框和控件编程 12.7 图形设备接口 12.8 实例--MiniQQ界面设计 12.9 小结
1-2
12.1 MiniGUI概述

MiniGUI最初是为了满足一个工业控制系统的需求而设计和开发 的。这个工业控制系统是清华大学为一台数控机床设计的计算机 数控系统(CNC)。在比较了DOS、Windows 98、Windows NT、Linux等系统之后,该项目组决定选择RT-Linux作为实时 操作系统,以便满足2ms甚至更高的实时性。但是图形用户界面 是一个问题,因为X Window不适合于实时控制系统,并且当时 X Window系统的本地化也不尽人意。因此,项目组决定自己开 发一套图形用户界面支持系统。
1-5
12.2 MiniGUI的安装和使用

现有的资料主要介绍了MiniGUI在RedHat9.0下的安装和配置, 而对其他Linux发行版下应用的资料还很少。本章将介绍 MiniGUI在Ubuntu下的安装和配置方法,以及如何使用eclipse 进行MiniGUI的嵌入式开发。

1-6
12.2.1 安装MiniGUI库
• •
1-11
12.2.6 交叉编译例程

• • • • •
以交叉编译mg-sample-3.0为例,所需的命令如下:
$tar zxvf mg-samples-3.0.12.tar.gz $cd mg-samples-3.0.12 $./configure $export PATH=”/usr/local/arm/3.4.1/bin”:$PATH $make CC=arm-linux-gcc
• •
1-13
12.2.8 FrameBuffer图形引擎

FrameBuffer是出现在Linux 2.2.xx内核当中的一种驱动程序接 口。这种接口将显示设备抽象为帧缓冲区。用户可以将它看成是 显示内存的一个映像,将其映射到进程地址空间之后,就可以直 接进行读写操作,而写操作可以立即反应在屏幕上。使用 FrameBuffer需要内核的支持,同时也与具体所使用的显示芯片 有关,在不同的系统下有不同的配置方法。
• • • • •
1-10
12.2.5 交叉编译MiniGUI库

与编译PC上的libminigui的过程是大致相同的,只需在make menu出现的配置界面中略做配置即可。当出现如图12-1所示的 配置界面后,选择菜单:
"Development environment options " 按Enter键后进入子菜单,需要配置的项如图12-2所示。


MiniGUI v3.0.12的源代码包可以在飞漫公司的网站上下载。安 装步骤如下: (1)使用tar命令解压libminigui-3.0.12.tar.gz文件。
– $tar zxvf libminigui-3.0.12.tar.gz

(2)运行配置命令。
– $cd libminigui-3.0.12 – $make menuconfig
1-12
12.2.7 QVFB图形引擎
• QVFB是Qt提供的一个虚拟FrameBuffer工具。这个程序基于Qt 开发(Qt是Linux窗口管理器KDE使用的底层函数库),运行在 X Window上。可以在Qt 2或者Qt 3源代码的src/tools目录下找 到这个程序。 将qvfb2-2.0.tar.gz下载后解压,在其中的QVFB目录下可以找到 QVFB的可执行文件,打开一个终端,然后执行命令: $qvfb&
1-9
12.2.4 编译应用程序例子

在mg-samples-3.0.12.tar.gz中提供了很多介绍MiniGUI中各类 函数和控件等使用的例子,这些例子都比较简单,适合初学时研 究。编译该应用程序例程库所需的命令如下:
$tar zxvf mg-samples-3.0.12.tar.gz $cd mg-samples-3.0.12 $./configure $make 编译完成后,编译好的可执行文件都在src子目录下。
$tar zxvf minigui-res-1.3.tar.gz $cd minigui-res-1.3.3 $sudo make install
1-8
12.2.3 配置MiniGUI

MiniGUI的配置文件位于“/usr/local/etc/MiniGUI.cfg”,编辑 这个文件需要具有root权限。这里主要是通过该文件选择通过 QVFB或是FrameBuffer作为图形引擎,详细的配置说明请参考 MiniGUI的配置手册。打开该文件后,请注意下列的配置选项:
1-3
12.1.1 MiniGUI的特点
• 显然,MiniGUI一开始就针对实时系统而设计,在设计之初就考 虑到了小巧、高性能和高效率。因此,MiniGUI是一个非常适合 于工业控制实时系统以及嵌入式系统的可定制的、小巧的图形用 户界面支持系统。它的主要特色有:
1-4
12.1.2 MiniGUI运行模式

(3)如果没有出现错误,就可以继续执行make和make install 命令编译并安装libminigui库文件。
– $make

(4)默认情况下,MiniGUi的函数库将安装在/usr/local/lib目录 中。
1-7
12.2.2 安装MiniGUI的资源

• • •
MiniGUI资源的安装比较简单,只需解开软件包并以root身份运 行make install命令,如下所示:

• • •
和Linux这样的类UNIX操作系统相比,一般意义上的嵌入式操作 系统具有一些特殊性。举例而言,诸如uClinux、uC/OS-II、 eCos、VxWorks等操作系统,通常运行在没有MMU(内存管理 单元,用于提供虚拟内存支持)的CPU上。这时,往往就没有进 程的概念,而只有线程或者任务的概念,这样,GUI系统的运行 环境也就大相径庭。因此,为了适合不同的操作系统环境,可将 MiniGUI配置成三种运行模式: MiniGUI-Threads。 MiniGUI-Processes。 MiniGUI-Standalone。
相关文档
最新文档