当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]uCGUI 移植到S3C44B0X实验

一、实验目的

1. 初步掌握uCGUI底层硬件驱动函数;

2. 掌握将uCGUI移植到ARM S3C44BOX上的方法和步骤。


二、实验内容

移植uCGUI到ARM处理器S3C44BOX上,并编写Hello World程序,在Micetek 44B0实验平台的LCD上显示“Hello World!”字符串,在LCD显示平面坐标(20,20)处,显示一个小于10000的整数,该整数不断循环加1,每次加1后立即更新显示,从而反应出显示输出的速度。


三、预备知识


1. uCGUI的体系结构:

uCGUI包含三个总的文件夹:Application,Config,GUI.其中:

Ⅰ Application是应用程序的文件夹,它中间包含主函数文件,其它资源文件。

Ⅱ Config是GUI的配置文件夹,它包含三个文件:

  ★ GUICONF.H是uCGUI的配置文件,负责配置GUI的对OS,window manager,DMA,触摸屏,Unicode码的支持。以及设置默认字体和各种控件的默认颜色等。

  ★ GUITouchConf.h负责配置触摸屏。

  ★ LCDConf.h负责配置LCD显示器,如分辨率,颜色位数,以及LCD控制器的其它设置。

Ⅲ  GUI是uCGUI的实现部分,它是GUI最重要的组成部分,其中包含八—九个文件夹。

  ★  ConvertColor是彩色颜色转换文件夹,它里面包含24位色—各种颜色之间的转换的函数。

  ★  ConvertMono是灰度颜色转换文件夹,它里面包含24位色—单色,四级灰度,16级灰度和用户自定义颜色之间转换的函数。

  ★  Core是GUI的核心,GUI多数的处理函数都在这个文件夹里面。

  ★  Font是GUI的字体文件夹,我们可以通过对它里面文件的增减来增删字体。

  ★  LCDDriver是GUI的底层接口部分我们所移植的部分就应该在这个文件夹。

  ★  MemDev是GUI的DMA模式的一些处理函数文件。

  ★  Widget里面含有各种窗口控件,如对话框,按钮等控件。

  ★  WM是GUI的窗口消息处理函数文件夹。

  ★  Touch是触摸屏和鼠标的底层接口部分。


2.UCGUI需要移植的部分

① uCGUI移植需要修改的文件有:修改Main.c,LCDConf.h,在LCDDrive文件夹添加LCD 44b0.h, LCD 44b0.c其中LCD 44b0.h是LCD 44b0.c的声明,LCD 44b0.c提供一系列LCD底层函数接口。

② 若要支持DMA模式还要添加一个LCDMemc.h, LCDMemc.c文件。LCDMemc.h使LCDMemc.c的声明,LCDMemc.c使DMA模式的底层接口函数。

③ 若要支持触摸屏和鼠标还需要在GUICONF.H中修改一下定义:   

#define GUI_SUPPORT_TOUCH         (1)

使GUI支持鼠标触摸屏,并配置GUITouchConf.h文件。在GUITouch下添加相应的接口驱动。

我们主要移植的使LCD的直接驱动模式,所以只需要修改<1>就行了。

我用的是JediView(for ARM)集成调试环境,其它环境类似,硬件为S3C44b0X,LCD为256色彩色液晶,分辨率为320×240。


四、实验设备及工具(包括软件调试工具)

硬件: Micetek 44B0 实验系统

JEDI仿真器

PC机 Pentumn100以上

软件: PC机操作系统win2000

JEDIView集成开发环境 


五、程序说明

新建一个文件夹uCGUI,添加以上体系的所有文件夹及文件加到uCGUI文件夹,删除LCDDrive文件夹下的LCDWin.c,它是在VC下的仿真驱动程序,在LCDDrive文件夹添加LCD 44b0.h, LCD 44b0.c。暂时不移植触摸屏驱动,可保持Touch目录为空,以后扩展时再用。

在uCGUI目录下新建一个Inc文件夹,将option.h, 44b.h, 44blib.h, def.h,cache.h,lcdlib.h,44blcd.h添加进来。

将lcdlib.c添加到Application文件夹。

新建一个工程也叫uCGUI,添加以上体系的所有文件夹及其内部文件加到uCGU工程。

修改include配置:打开 Tools->Option->Directory->Include Files添加路径

……uCGUIguiConvertColor

……uCGUIguiConvertMono

……uCGUIguiCore

……uCGUIguiFont

……uCGUIguiLCDDriver

……uCGUIguiMemDev

……uCGUIguiWidget

……uCGUIguiWM

……uCGUIguiTouch

……:ucOSConfig

……guiApplication

其中……为你所建工程所在路径,以上这些路径在有的编译器可不加,自动找到,在JediView(for ARM)集成调试环境需要添加。

由于uCGUI 用到了数学库,在Gcc编译器下需要在link设置中添加-lm参数,使编译器可以找到数学库。


六、实验现象

液晶显示屏显示的是实验结果,其中第2行的数值不断加1跳变。


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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭