摘 要 人机界面的设计是计算机科学的重要部分,它从系统的一个附属部分发展成为一门独立的科学。而嵌入式GUI作为移动计算、移动商务和信息家电的核心技术,已成为当今图形用户界面领域的发展焦点。本文介绍的就是一款提供丰富界面、并且资源占用相对较少的软件uC/GUI,它可以实现嵌入式系统上GUI的快速应用开发。
关键词 S3C44B0X;嵌入式系统;uC/GUI;人机界面引 言 随着半导体技术和信息技术的飞速发展,各式各样的嵌入式系统产品已经渗入到人们生活的每一个角落。小到手机、MP3、MP4、数码相机、机顶盒等产品,大到汽车、数控机床、火箭等产品。嵌入式GUI(Graphical User Interface)作为嵌入式系统的应用软件,已经成为当今图形用户界面领域的发展焦点。[2]1 GUI 的概述 GUI以一种以图形化为基础的用户界面,使用统一的图形操作系统,如可移动的视窗、选项与鼠标,作为用户与操作系统之间的中介。GUI最重要的优势在于使用户摆脱了在命令行提示符下与操作系统进行交互的方式,用户可以仅仅通过鼠标点击来实现熟悉程序的操作,而且由于图表、对话框等的引入,使得操作直观形象。GUI已成为一种用户与计算机交互的标准。包括Microsoft的视窗系统、Unix的Motif、Linux的桌面系统GNOME。 在计算机硬件平台下的GUI模型一般如图1所示:| 桌面管理系统 |
| 用户模型 |
| 窗口模型 |
| 图形平台 |
| 操作系统 |
| 硬件平台 |
| 类型 | Stack | RAM | ROM |
| 小型系统 | 500b | 100b | 10~25K |
| 大型系统 | 1200b | 2~6K | 30~60K |
图2 系统框图 采用三星的S3C44B0X开发通用的嵌入式系统,S3C44B0X的运行方式通常有两种:一种是有操作系统的,由于操作系统所占用的空间比较大,所以Flash里面装的是系统引导程序,通常称为Boot Loader,是在系统复位后执行的 论文检测天使-免费论文检测软件http://www.jiancetianshi.com第一段代码,相当于PC上的BIOS,完成系统硬件的初始化,包括时钟的设置、存储区的映射等,设置堆栈指针,然后跳转到操作系统内核的入口,将系统控制权交给操作系统,在此之后系统的运行和Boot Loader 再无任何关系。Boot Loader独立于操作系统,必须由用户自己设计,它的实现高度依赖于硬件,包括处理器的体系结构、具体型号、硬件电路板的设计。另一种是无操作系统的,系统的初始化以及主程序都是在Flash内,它与S3C44B0X的Bank0相连,上电复位后系统使程序从0x00000000开始运行。 3 利用uC/GUI开发GUI应用程序的基本方法 由于uC/GUI提供了源代码,因此可以很容易地将它移植到各个平台下,使用时,只要将uC/GUI的软件压缩包解压缩到一个目录下就可以了。 3.1 uC/GUI的结构 uC/GUI的软件体系结构如图3所示。uC/GUI函数库为用户的应用程序提供GUI接口,包含的函数有文本、数值、二维图形、输入设备以及各种窗口对象。其中,输入设备可以是键盘、鼠标或触摸屏;二维图形包括图片、直线、多边形、圆、椭圆、圆弧等;窗口对象包括按钮、编辑框、进度条、复选框等。μC/GUI函数库可以通过GUI_Conf.h文件进行配置,配置的内容包括是否采用内存设备,是否采用窗口管理器,是否支持操作系统、触摸屏、
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />以及配置动态内存的大小等。
图3 uC/GUI的软件体系结构3.2 利用uC/GUI开发应用程序的步骤 由于uC/GUI提供了源代码,在开发应用程序时,用户可以首先将核心文件、LCD驱动文件和需要的字体文件包含在自己的工程里,然后再根据实际的硬件需要,包含内存设备输入设备控件和窗口管理部分。 具体可以分为以下几步:⑴按照实际需要,定制自己的uC/GUI开发环境。其中包括对上述目录的筛选,或对目录中文件的筛选。⑵指定硬件设备的地址,编写接口驱动代码。这里需要修改LCD_Conf.h文件。⑶编译、链接、调试示例程序。⑷修改示例程序并测试,增加需要的功能。⑸如果准备开发多任务应用,则需要修改GUI_MAXTASK和GUI_OS宏,实现uC/GUI与操作系统的结合。⑹编写自己的应用程序。 使用uC/GUI开发应用程序时,目标系统不是必须配备的,因为uC/GUI提供了一个模拟器,用户可以在模拟器上面看到应用程序的执行的结果。所以,对于开发环境,uC/GUI仅要求有一个符合ANSI标准的“C”语言编译器。至于C++编译器,它不是必须的,但是如果用户使用C++语言来编写应用程序,那就需要一个C++编译器。[1]因此,在Windows系统下只要安装了Microsoft Visual C++就可以运行uC/GUI的模拟器工程(工程名一般为Simulation.dsw),然后将该工程中的Application文件夹清空,加入自己编写的源文件,编译链接就可以看到运行结果。3.3应用实例 下图是用uC/GUI开发应用程序的一个实例,该程序是显示汽车运行时发动机转速的一个界面。
图4 用户界面图 黑色的背景是这个LCD的窗口区域,大小为640*480。先利用画线函数绘制基本的弧线,再利用填充函数填充相应的背景颜色,最后用一个分片存储设备执行一个指定的绘图函数,在这种情况下,在一段时间内只有一小部分要更新。static void DemoScale(void){int Cnt;int tDiff, t0 = GUI_GetTime();PARAM Param; /* 绘图函数的参数 */GUI_AUTODEV AutoDev; /* 分片存储设备对象 */GUI_SetColor(GUI_WHITE); /*设置颜色*/GUI_SetFont(&GUI_Font8x16);/*设置字体*/GUI_DispStringHCenterAt(“Scale using GUI_AUTODEV-object”, 160, 0);GUI_AA_EnableHiRes();/* 启动高分辨率用于抗锯齿 */GUI_AA_SetFactor(MAG);GUI_MEMDEV_CreateAuto(&AutoDev); /* 建立 GUI_AUTODEV 对象 *//* 显示在一个固定时间上的指针 */for (Cnt = 0; (tDiff = GUI_GetTime() - t0) < 24000; Cnt++);{/* 获得数值用于显示一个多边形来表示指针 */Param.Angle = GetAngle(tDiff)* DEG2RAD;GUI_RotatePolygon ( Param.aPoints,aNeedle,countof(aNeedle),Param.Angle);GUI_MEMDEV_DrawAuto(&AutoDev, &Param.AutoDevInfo, &Draw, &Param);} 4 结束语 本文只是简单展示了uC/GUI在开发图形用户界面上的应用,其巨大的应用潜力还有待进一步的研究。相信随着计算机渗透到人类工作和生活的各个方面,以嵌入式系统为核心的后PC时代的到来,uC/GUI的应用前景也将更为广阔。 参考文献:1 葛欣,孟凡荣.使用uC/GUI开发图形用户界面.计算机工程与设计.2005⑴:53-552 周立功等.ARM嵌入式MiniGUI初步与应用开发范例.北京:北京航空航天大学,2006
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
相关文章:
司法精神病鉴定基本问题研究04-26
论未成年人犯罪诉讼程序的建立和完善04-26
我国刑事司法改革的推进之路04-26
对搜查、扣押、冻结等强制性侦查措施检察监督有关问题04-26
自诉案件公诉化追诉模式之弊端及改革路径04-26
轻罪刑事政策指导下不起诉的制度转变04-26
公诉权与被害人权利之冲突及衡平04-26
关于诉前调解程序的实践性思考04-26
治理刑讯逼供的两种路径04-26