当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]嵌入式图形系统μc/GUI的移植和开发

摘要
  嵌入式系统的开发已成为新的行业热点,而嵌入式图形系统的开发近年来随着嵌入式系统的深入而不断推陈出新。本文首先概述嵌入式系统及其嵌入式图形系统gui的现状,然后具体描述μc/GUI图形系统和其移植重点、程序开发以及和其他图形系统比较优缺点。

  gui 在嵌入式系统或实时系统中的地位

  越来越多的市场需求数据显示,包括 pda、娱乐消费电子、机顶盒、dvd等影音设备、wap 手机等高端电子产品得到广泛应用,原先仅在军工、工业控制等领域中使用的gui图形系统,受到越来越多的关注。

  对于轻量级 gui 的系统而言,对 gui 的要求相对较低,如传统51类型单片机这类系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和 gui 之上,如 windows 或 x window。目前此类系统都直接使用原有编程手段,采用比较简单的手法实现 gui。对于太过庞大和臃肿的gui系统而言,μc/gui这类可运用于此类资源较紧张的轻型 gui 的需求更加突出。

  μc/gui简介及其配制

  μc/gui是美国micrium公司出品的一款针对嵌入式系统的优秀图形软件。它是为任何使用lcd图形显示的应用提供高效的独立于处理器及lcd控制器而设计的图形用户接口,它适用单任务或是多任务系统环境。架构基于模块化设计,由不同的模块中的不同层组成。包括液晶驱动模块,内存设备模块,窗口系统模块,窗口控件模块,反锯齿模块和触摸屏及外围模块。其主要特性包括丰富图形库,多窗口、多任务机制,窗口管理及丰富窗口控件类(按钮、检验框、单/多行编辑框、列表框、进度条、菜单等),多字符集和多字体支持,多种常见图像文件支持,鼠标、触摸屏支持,灵活自由配制等特性。


  图1 μc/gui模块及开发套件

  在开发套件上,μc/gui提供众多工具辅助开发,包括位图转换器,字体转换器,μc/gui viewer和非常完善的基于pc平台的模拟器,如图1所示,其中μc/gui核心模块和lcd驱动模块是必须的,其他均是可配置可选择模块。由于μc/gui并非针对某一平台而设计,它可以运行于所有支持ansi c的平台上,所以在pc上调试成功的应用程序可以原封不动的移植到平台上,避免繁琐的片上调试过程。

  μc/gui可以在任何的cpu上运行, 能够适应绝大多数的使用黑白或彩色lcd的应用,它提供非常好的允许处理灰度的颜色管理。还提供一个可扩展的2d图形库及占用极少ram的窗口管理体系。在μc/gui的最初典型配制可包括是否需要操作系统支持,是否需要内存设备支持,是否需要窗口支持,是否需要抗锯齿支持等众多选项,这对于gui的定制和gui的体积是非常重要的。小型系统需求ram100bytes,堆栈500bytes,rom10kbytes,完全满足资源非常紧张的系统之中。

  mc/gui移植重点和应用程序开发

  (1) 首先定义guiconf.h和lcdconf.h这两个文件,前者是μc/gui功能模块和动态存储空间(用于内存设备和窗口对象)大小,默认字体设置等基本gui预定义控制的定义。后者lcdconf.h为lcd大小,控制器类别,总线宽度,颜色选取等lcd参数控制文件。gui/core/lcd_confdefaults.h文件内可以找到所有囊括lcd配制默认选项,包括lcd屏个数,控制器个数 ,调色板,屏幕反向设置等众多配制选项。如果配备触摸屏可以通过guitouchconf.h进行配制,根据触摸屏及其控制芯片编制以下几个函数

  void touch_x_activatex (void);// 准备y轴数据测量

  void touch_x_activatey (void);// 准备x轴数据测量

  int touch_x_measurex(void); // 根据ad转换结果返回x的值

  int touch_x_measurey(void); // 根据ad转换结果返回y的值

  以上几个函数在gui_touch_exec()会被调用。

  (2) 对于lcd自带控制器类别的液晶屏,通过lcdconf.h中的总线接口和寄存器接口进行硬件接口的配制和定义。对于片上集成lcd控制器平台而言,通过对片内lcd控制器寄存器的设置来配制lcd接口信号。在一般的lcd中需要配制的lcd接口信号包括vframe帧同步信号,vline线同步脉冲信号,vclk象素时钟信号,vm信号和数据位不等的象素点数据输出信号。[!--empirenews.page--]

(3) lcd驱动编程的实质是液晶屏上的点对应的显存编程,最底层调用函数为画点函数,用户可根据自身平台情况根据总线接口和寄存器接口或者lcd控制器寄存器进行操作。_setpixel(),_getpixel(),xorpixel()为最底层直接对显存操作函数。mc/gui提供部分控制器驱动,文件为gui/lcddriver/lcdslin.c,如sed1335,t6963等简单lcd控制器。核心函数为lcd_write(). _setpixel()调用lcd_write()写显存。


  (4) 在samplegui_x文件夹内包括有与硬件联系紧密的文件,包括gui_x.c,gui_x_embos.c, gui_x_ucos.c等文件, gui_x.c包括大部分与硬件的关联函数,如定时器的初始化和触摸屏相关函数。mc/gui与操作系统挂接的核心是定时器的设置和挂接。μc/GUI是通过延时函数gui_delay()调用gui_x_delay,再调用gui_exec()处理窗口部件中的回调函数进行重绘。在任何一款嵌入式操作系统中都需要定时器的心脏跳动作用,支持os的μc/gui可以通过定时器的设置达到嵌入式操作系统和图形系统的实时和同步操作。在gui_x_ucos.c中通过μc/os中的延时程序同μc/gui挂接实现整合。


  图2 μc/gui软件结构图

  (5) 经过移植之后,gui应用程序开发通过μc/gui而变得非常容易,在调用gui_init()后,用户可以根据需要正确配制μc/gui后,可使用其强大的库函数和丰富的gui资源进行编程。在gui编程过程中,可以打开抗锯齿功能减小图形失真,得到高质量的图形和字体效果。采用内存设备能有效克服闪烁现象,获得更快的显示速度,但它和抗锯齿功能一样需要额外的内存开销。

  μc/gui和其他图形系统的比较

  (1) μc/gui优势在于其体积小,配制性强,运用领域非常之广泛。相对于众多嵌入式图形系统,如microwindows/nanox, opengui, qt/embedded, minigui等,只要满足ram100bytes,堆栈500bytes,rom10kbytes的小型系统中都可以运行μc/gui,而这个需求是其他图形系统所不及的,可以广泛运用到国内已经运用非常成熟的单片机系统内,增强系统性能。在资源丰富的大型系统中,也只需要ram2-6kb,堆栈1200bytes,rom30-60kb就可以满足mc/gui的各种功能。对比于其他图形系统最少几百k,动辄上m的系统而言是非常有优势的。其众多的配制,满足不同需求用户需要,方便灵活小巧,实用性大大增强。

  (2) 平台的广泛性,移植方便。由于μc/gui是100%c编写,适应绝大多数软硬平台,其适应性非常强,相对于众多具有软硬件针对性的图形系统而言,结构划分和模块划分非常清晰,分设专门的lcd驱动模块,移植简单方便。代码量相对较小,易操作可扩展性强,方便用户定制和自主更新完善满足个性需求。

  结语

  本文着重介绍了μc/gui和其移植方法,作为一个面向嵌入式系统的图形用户界面支持系统,μc/gui系统需求、执行效率、可定制方面非常出色,体积小,移植方便,程序适应平台广泛,在嵌入式系统研发过程中大大简化了图形系统开发的周期和难度,具有很高的实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Lua RTOS 是一个实时操作系统,设计在嵌入式系统上运行,对 FLASH 和 RAM 内存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平台,并可以轻松移植到其他32位...

关键字: Lua RTOS 操作系统 嵌入式系统

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UATR,是一种串行、异步、全双工的收发器。全双工的UART支持同时双向通信,是嵌入式系统必不可少的d...

关键字: 异步收发 传输器 嵌入式系统

一星期中最糟糕的一天,这居然也成功拿下了吉尼斯记录。10月17日,吉尼斯世界纪录官微发文称,正式认证星期一为一个周里最糟糕的一天,周五是最伟大的一天。看起来有点官微小编搞怪的意思,毕竟尚未见到正式的证书。当然,一些打工人...

关键字: MIDDOT MDASH GUI WORLD

亘喜生物科技集团宣布正在中国开展的、旨在全面评估GC007g治疗复发/难治性急性B淋巴细胞白血病效果的1/2期注册性临床试验顺利进入2期研究阶段,首例入组患者已给药。GC007g是亘喜生物旗下的一款靶向CD19的供者来源...

关键字: 移植 CD

Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。

关键字: Flash 存储器 嵌入式系统

近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。 嵌入式系统一般由嵌入式微处理器、外...

关键字: 嵌入式 嵌入式系统 计算机

北京2022年9月9日 /美通社/ -- 诺诚健华(香港联交所代码:09969)今天宣布,tafasitamab (Minjuvi®)联合来那度胺治疗不适合自体干细胞移植 (ASCT) 条件的复发/难治弥漫性大B...

关键字: VI NJU BSP 移植

深圳2022年8月26日 /美通社/ -- 8月17日 – 深圳,AMD Xilinx举办为期一天的线下技术日活动,在AMD Xilinx主办下宜鼎国际作为合作伙伴的身份被邀...

关键字: AMD Xilinx AGENT 嵌入式系统

单向散列算法,又称hash哈希函数,Hash函数(也称杂凑算法)就是把任意长的输入消息串变化成固定长的输出串的一种函数,该过程是不可逆的。Hash函数可用于数字签名、消息的完整性检测、消息起源的认证检测等。较为常用的方法...

关键字: 嵌入式算法 嵌入式系统

苏州2022年8月19日 /美通社/ -- 近日,华中科技大学同济医学院附属协和医院心外科董念国教授团队运用与心擎医疗联合研发的短中期体外全磁悬浮心室辅助装置MoyoAssist®,成功救治三例危重的终...

关键字: 磁悬浮 移植 IC 静脉

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭