基于嵌入式gui的工作日志记录器的设计与开发(编辑修改稿)内容摘要:
本上出自 INTEL、 AMD 等几家公司。 软件则主要是WINDOWS 系统以及其相配套的如 OFFICE、 IE 等应用软件,所以传统计算机是一个 WINTEL 垄断的工业。 但 是嵌入式系统就不同了,它是一个分散的工业,在这个领域充满了竞争、机遇与创新,没有哪一个系列的处理器和操作系统能够垄断全部市场,呈现一种 “百花齐放 ”的景象。 即便在体系结构上存在着主流,但各不相同的应用领域决定了不可能由少数公司、少数产品垄断全部市场。 因此,嵌入式系统领域的产品和技术,必然是高度分散的,留给各个行业的中小规模搞技术公司的创新与第很大。 另外,社会上的各个应用领域是在不断向前发展的,要求其中的嵌入式处理器核心也同步发展,这也构成了推动嵌入式工业发展的强大动力。 嵌入式处理器的应用软件是实现嵌入式系统 功能的关键,对嵌入式处理器系统软件及应用软件的要求也和通用计算机有所不同 [1][2]。 软件要求固态化存储 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在非易失性存储器芯片或单片机本身中,而不是存储与磁盘等载体中。 软件代码高质量、高可靠性 尽管半导体技术的发展使处理器速度不断提高,片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。 为此要求程序编写和编译工具的质量要高,编译后的代码要优化,以减少程序二进制代码的长度,提高执行速度。 系统软件(例如 OS)要有一定 的实时性 在多任务嵌入式系统中,对重要性格不相容的任务进行统筹兼顾的合理调度是保证每个任务及时执行的关键。 这种任务调度应该由优化编写的系统软件来完成,但通过提高处理器速度也可以在一定程度上予以弥补。 多任务操作系统是知识集成的平台和走向工业标准化道路的基础 嵌入式操作系统是由于工程实践的需要而诞生的,因为控制程序应嵌入式系统得应用领域日益扩大而所提供的功能也越来越复杂,而这些功能大多是可以由操作系统来提供的。 嵌入式操作系统所使用的技术,基本上是从 PC 操作系统下推而来的。 由于应用的需要和硬件条件的限制,嵌入式 操作系统一般更加注重占用空间小和效率高等特点。 把嵌入式操作系统引入到嵌入式系统中,能够对嵌入式系统的开发产生极大的推动作用。 在没有操作系统的嵌入式系统下,每当要进行进一步的开发和功能的扩展,都会带来巨大的劳动力的无谓消耗。 而嵌入式操作系统则可以通过提供给用户的各种 API,来对嵌入式系统进行有效的管理。 嵌入式 LINUX 的特点和优势 从 20 世纪 80 年代开始,出现了如 VxWorks、 pSOS、 Nucleus、 Palm OS 和 Windows CE 等商用嵌入式操作系统。 但这些操作系统都是商业化产品,其高昂的价 格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积极性,因为这些 EOS 提供给编程人员的,往往只有 API 应用编程接 口,一般以函数形式出现,这些函数均是不能修改的。 另外,结合国内实情,当前国家对自主操作系统的大力支持,也为源代码开放的 Linux 的推广提供了广阔的前景。 Linux 操作系统是 UNIX 操作系统的一种克隆系统。 它诞生于 1991 年的 10月 5 日(这是第一次正式向外公布的时间)。 此后借助于因特网,经过全世界各地计算机爱好者的共同努力,现已成为当今世界上使用最多的一种 UNIX 类操作系统 ,并且使用人数还在迅猛增长。 Linux 的特点如下: 1.开放性是指系统遵循世界标准规范,特别是遵循开放系统互联( OSI)国际标准。 凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互联。 Linux 采用 GPL 授权,除了把源代码公开以外,任何人都可以自由使用、修改、散布;而 Linux 核心本身采用模块化设计,让人很容易增减功能,由于 Linux 具有这样高的可伸缩性,所以可以调出最适合我们硬件平台的核心出来。 2.多用户是指系统资源可以被不同用户各自拥有并使用,即每个用户对自己的资源有特定的权限,互不影响。 Linux 和 UNIX 都具有多用户的特性。 3.多任务是现代计算机最主要的一个特点。 它是指计算机同时执行多个程序,而且各个程序的运行互相独立。 Linux 系统调度每一个进程平等地访问微处理器。 由于 CPU 的处理速度非常快,其结果是,启动的应用程序看起来好像在并行运行。 4.稳定性强, Linux 不属于任何一家公司,但它却拥有全世界愿意投入自由软件的开发人员。 在全球各处都有无数的人参与 Linux 核心的改进、调试与测试,也正因此造就了稳定度高的 Linux。 所以, Linux 虽不是商业的产物,但它的质量却不逊于商业产品。 5.设备独立性,是指操作系统把所有外部设备统一当做文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。 另外,由于用户可以免费得到 Linux 的内核源代码,因此,用户可以修改内核源代码,以便适应新增加的外部设备。 6.提供了丰富的网络功能 完善的内置网络是 Linux 的一大特点。 Linux 在通信和网络功能方面优于其他操作系统。 Linux 为用户提供了完善的、强大的网络功能,包括支持Inter、文件传输和远程访问。 7.可靠的系统安全 在 Linux 操作系统中采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这些措施为网络多用户环境中的用户提供了必要的安全保障。 8.良好的可移植性 可移植性是指将操作系统从一个平台转移到另一个平台,并使它仍然能按其自身的方式运行的能力。 Linux 一开始是基于 Intel 386 机器设计的,但是随着网络的散布,加上有许多工程师致力于各式平台的移植,使得 Linux 可以在x8 MIPS、 ARM/StrongARM、 PowerPC、 Motorola 68k、 Hitachi SH3/SHTransmeta 等平台上运行。 这些平台几乎覆盖了所有嵌入式系统的 CPU种类,这样,在硬件平台设计时,使得可以考虑的 CPU 种类增加了不少 [3][4]。 9.应用软件多 自由软件世界里有个很大的特点就是软件多,授权几乎都是采用 GPL 方式,大家都可以自由参考与使用,但是因为这些软件多半是由设计者利用空余时间开发的,不以赢利为目的,所以并不能担保这些软件完全没有问题。 尽管如此,仍有许多优秀软件出现,例如,大家熟知的 KDE 与 GNOME 便是很好的证明。 Linux 内核 内核是操作系统的内部核心程序,它向外部提供 了对计算机设备的核心管理调用。 操作系统的代码分为以下两部分,内核所在的地址空间称为内核空间,外部管理程序与用户进程所占据的地址空间称为外部空间(用户空间)。 通常,一个程序会跨越两个空间。 当执行到内核空间的一段代码时,称程序处于核心态;而当程序执行到外部空间代码时,称程序处于用户态 [5]。 Linux 系统使用了单一内核结构。 Linus Torvalds 将代码执行效率作为自己操作系统的第一要务。 在这样的发展过程中,比起结构的清晰,他们更加注重 功能的强大和高效率的代码。 于是,他们将大量的精力花在优化代码上,而这样 的全局性优化必然以损失结构精练作为代价,导致 Linux 中的每个部件都不能被轻易拆出,否则,必然破坏整体效率。 虽然 Linux是一个单一内核操作系统,但它与传统的单一内核 UNIX操作系统不同。 在普通的单一内核系统中,所有内核代码都是被静态编译连入的。 而在 Linux 中,可以动态装入和卸载内核中的部分代码。 Linux 中将这样的代码段称为模块( Module),并对模块给予了强有力的支持。 在 Linux 中,可以在需要时自动装入和卸载模块。 Linux 操作系统的内核稳定而高效,以独占的方式执行最底层任务,来保证其他程序的 正常运行。 它是整个操作系统的核心,具有独特的性质 [6][7]。 Linux 内核系统体系结构, Linux 内核主要由 5 个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。 进程调度模块用来负责控制进程对 CPU 资源的使用,所采取的调度策略是各进程能够公平合理地访问 CPU,同时保证内核能及时地执行硬件操作。 内存管理模块用于确保所有进程能够安全地共享机器主内存区,同时,内存管理模块还支持虚拟内存管理方式,使得 Linux 支持进程使用比实际内存空间更多的内存容量,并可以利用文件 系统把暂时不用的内存数据块交换到外部存储设备上去,当需要时再交换回来。 文件系统模块用于支持对外部设备的驱动和存储,虚拟文件系统模块通过向所有的外部存储设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细节,从而提供并支持与其他操作系统兼容的多种文件系统格式。 进程间通信模块子系统用于支持多种进程间的信息交换方式。 网络接口模块提供对多种网络通信标准的访问并支持许多网络硬件 [8]。 3 嵌入式图形用户界面 图形用户 界面 ( Graphical User Interface,简称 GUI,又称图 形用户接口 )是指采用图形方 式显示的计算机操作用户界面。 与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。 嵌入式 GUI 概述 嵌入式 GUI( Graphics User Interface)为嵌入式系统提供了一种应用于特殊场合的人机交互界面。 嵌入式 GUI 要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条件。 另外,由于嵌入式系统硬件本身的特殊性,嵌入式 GUI 应具备高度可移植性与可裁减性,以适应不同的硬件条件和使用需求。 总体来讲,嵌入式 GUI 具备以下特点:体积小 、 运行时耗用系统资源小 、 上层接口 与硬件无关 、 高度可移植 、 高可靠性 、 可配置 [9]。 嵌入式 GUI 的分类 目前在常用的嵌入式 GUI 领域,广泛使用的有 QT/Embedded、Microwindows 和 MiniGUI 三种。 由于嵌入式开发人员对实时嵌入式系统在理解上的不同,是的这些 GUI 系统在接口定义、体系结构、功能特性等方面存在很大差别,它们所采取的技术路线也有所不同。 三种 GUI 优缺点分析 下面以形式总结以上说叙述的三种图形用户界面 GUI 的优缺点: 图形用户界面 优点 缺点 MiniGUI (1)轻量级的图形用户界面支持 (2)系统图形抽象 层 (3)多字体和多字符集支持 (4)两个不同架构的版本 Minithread和 Minilite (1)控件功能不够丰富 (2)C 代码,扩展不利 Microwindows (1)开源项目 (1)典型的基于 C/S 体系结构 (3)最底层是面向图形输出和键盘、鼠标或触摸屏的驱动程序,中间层提供底层硬件抽象接口 (1)无任何硬件加速能力 (2)图形引擎中存在许多低效算法,同时未经任何优化 (3)代码质量差 Qt/Embedded 随意设置程序界面的外观 非常容易的根据硬件特性定制 有针对手机的 Qtopia 应用 套件 商用客户较多 当移植 Qt/Embedded 程序到不同平台时,只需要重新编译代码,而不需要对代码进行修改 程序本地化很容易 程序与 Java 集成很容易 代码量过大,最好用于 flash 大的智能手机 结构过于复杂,很难进行底层太多的扩充 商用需要一定的授权费用 表格 31 三种 GUI 优缺点分析 综上对比,不难看出, Qt/Embedded 是一个专门为小型设备提供图形用户界面的应用框架和窗口系统。 Qt/Embedded 是高 端嵌入式设备 PDA 及手机的主流开发工具。 作为一项成熟的技术, KDE 桌面系统对于嵌入式窗口系统的设计有很大参考价值, Qtopia 给嵌入式窗口系统提供了很好的框架,提供了丰富的窗口小部件( widgets),并且还支持窗口部件的定制,因此它可以为用户提供漂亮的图形界面。 Qt 是 KDE 等项目使用 GUI 支持库,所以有许多基于 Qt 的 X Window 程序可以非常方便地移植到 Qt/Embedded 版本上 [10][11][12]。 4 嵌入式 GUI 的开发软硬件环境 本章主要介绍设计基于 GUI 的嵌入式工作日志记录器所用到的软件和硬件平台,其中硬件主要是 MINI2440 开发板、三星 S3C2440 处理器而软件主要是QT 集成开发环境 QT sdk。 此设计的主要工作是在 Linux(本次设计所使用的Linux 发行版为红帽的桌面系统 Fedora9)下 ARM 交叉环境的搭建,在 Windows xp 下 QT SDK 的安装以及设计编写工作日志记录器的主程序。 Linux 内核的移植,文件系统的构建(包括能在 ARM 上运行的 QT/E 库和交叉编译完成后的工作日志记录器程序)与移植。 硬件平台简介 Mini2440 是一款真正低价实用的 ARM9 开发板,是目 前国内性价比最高的一款学习板;它采用 Samsung S3C2440 为微处理器,并采用专业稳定的 CPU 内核电源芯片和复位芯片来保证系统运行时的稳。基于嵌入式gui的工作日志记录器的设计与开发(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。