当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于S3C44B0X的嵌入式GUI的研究与应用

GUI 的概述
  GUI以一种以图形化为基础的用户界面,使用统一的图形操作系统,如可移动的视窗、选项与鼠标,作为用户与操作系统之间的中介。GUI最重要的优势在于使用户摆脱了在命令行提示符下与操作系统进行交互的方式,用户可以仅仅通过鼠标点击来实现熟悉程序的操作,而且由于图表、对话框等的引入,使得操作直观形象。GUI已成为一种用户与计算机交互的标准。包括Microsoft的视窗系统、Unix的Motif、Linux的桌面系统GNOME。
    在计算机硬件平台下的GUI模型一般如图1所示:

uC/GUI是由Micrium公司专门针对嵌入式系统开发的一款图形开发系统。它设计用于为任何使用LCD图形显示的应用提供高效的独立于处理器及 LCD 控制器的图形用户接口,它适用单任务或是多任务系统环境, 并适用于任意 LCD 控制器和 CPU 下任何尺寸的真实显示或虚拟显示。
对于开发uC/GUI图形应用不需要什么目标系统, 大部分的图形应用开发都可以在模拟器下进行; 但是最终的目的是通常还是在目标系统上运行程序。
目标系统(硬件):
[1].CPU(8/16/32/64位)。
[2].必要的RAM和ROM 存储。
[3].LCD 显示器(任何类型及分辨率的)。
对于内存的需求取决于你选用的 UCGUI 的功能模块以及你所使用的目标系统上的编译器的效率. 内存的占用量无法估计准确的值, 下面就一些的数值适用于多数的目标系统。
表1  uC/GUI资源需求情况

注:①小型系统指不包含窗口管理功能,大型系统指包含窗口管理及各种窗体控件功能。
       ②ROM的需求量随着应用程序中使用的字体数目而增长。
2  基于S3C44B0X处理器的嵌入式系统的基本组成
       三星公司推出的16/32位RISC处理器S3C44B0X为手持设备和一般应用提供了高性价比和高性能的微控制器解决方案。为了降低成本,同时增强稳定性,S3C44B0X提供了丰富的内置部件,包括:8KB Cache和 内部SRAM,LCD控制器等,其主频可以达到66MHz,速度几乎相当于486CPU,而且扩展了完整丰富的外围设备的接口,图2是典型的系统的框图。

图2   系统框图
       采用三星的S3C44B0X开发通用的嵌入式系统,S3C44B0X的运行方式通常有两种:一种是有操作系统的,由于操作系统所占用的空间比较大,所以Flash里面装的是系统引导程序,通常称为Boot Loader,是在系统复位后执行的第一段代码,相当于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文件进行配置,配置的内容包括是否采用内存设备,是否采用窗口管理器,是否支持操作系统、触摸屏、以及配置动态内存的大小等。

图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的应用前景也将更为广阔。

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

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引...

关键字: 嵌入式 物联网 技术

随着IT技术飞速发展,互联网已经进入了“物联网”时代。物联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处。即 “物联网”的目的则是让所有的物品都具有计算机的智能但并不以通...

关键字: 嵌入式 物联网 计算机

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭