当前位置:首页 > 嵌入式 > 嵌入式硬件

一、实验目的

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

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

二、实验内容

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

UCGUI是一种嵌入式应用中的图形支持系统。它设计用于为任何使用LCD图形显示的应用提供高效的独立于处理器及LCD控制器的图形用户接口,它适用单任务或是多任务系统环境, 并适用于任意LCD控制器和CPU下任何尺寸的真实显示或虚拟显示。它的设计架构是模块化的,由不同的模块中的不同层组成,由一个LCD驱动层来包含所有对LCD的具体图形操作。 UCGUI可以在任何的CPU上运行,因为它是100%的标准C代码编写的。UCGUI能够适应大多数的使用黑白或彩色LCD的应用,它提供非常好的允许处理灰度的颜管理。还提供一个可扩展的2D图形库及占用极少RAM的窗口管理体系。

三、预备知识

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跳变。



QICK

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

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭