uCGUI如何移植到S3C44B0X

发布者:幸福微风最新更新时间:2022-12-26 来源: elecfans关键字: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跳变。


关键字:uCGUI  移植  S3C44B0X 引用地址:uCGUI如何移植到S3C44B0X

上一篇:基于S3C4510B的串口网络服务器最小系统
下一篇:S3C2410处理器特性

推荐阅读最新更新时间:2024-11-23 12:15

linux 2.6.24.4在S3C2410上的移植(内核配置)(基于GEC2410)
移植完u-boot后,接下来就是linux内核了.以下记录我移植的步骤,如有问题,欢迎指正. 1.下载linux kernel源代码 到http://www.kernel.org/下载linux内核源代码,这里我们使用2.6.24.4的内核. 解压linux-2.6.24.4.tar.bz2 $ tar -xvjf linux-2.6.24.4.tar.bz2 $ cd linux-2.6.24.4 2.修改顶层Makefile,设置交叉编译器 ARCH ?= arm CROSS_COMPILE ?= /home/GEC2410/toolchain/arm-softfloat-linux-gnu/bin/arm-softf
[单片机]
MIDP2.0及其移植技术分析
摘要:MIDP即移动信息设备规范,是专门基于资源和网络连接有限的移动设备之上的J2ME应用规范。本文在分析MIDP2.0的基础上,详细阐述MIDP的事件处理、文件系统、用户图形接口和网络等主要部分在不同平台间移植的实现过程。 关键词:J2ME MIDP 移植 平台无关 本地代码 1 MIDP2.0简介 随着现代信息化社会的发展,小型移动通信设备已经从最初的一种单纯的通信工具转变成如今集通信、工作、娱乐等功能为一体的综合设备;但仅有这些还不能满足用户的要求。个性永远是千变万化的,时尚也不会始终为一种模式。因此,在移动终端上开发通用的、丰富的应用已成为必然的趋势。这些应用可以按用户的意愿随时安装和删除。 J2ME(JAVA2
[嵌入式]
STM32开发笔记64: STM32F4 UART4-5移植驱动程序应注意的问题
单片机型号:STM32F407VGT6 使用通用串口驱动程序分别运行UART1和UART4,则UART1正常,UART5不正常,本文解释具体原因。 先看STM32F407VGT6的串口配置情况,如下图所示,串口1、2、3、6为USART(同异步串口),串口4、5为UART(异步串口)。 在启动文件startup_stm32f407xx.s定义的中断矢量入口地址不同,可参看下面程序。 DCD USART1_IRQHandler ; USART1 DCD USART2_IRQHandler ; USA
[单片机]
STM32开发笔记64: STM32F4 UART4-5<font color='red'>移植</font>驱动程序应注意的问题
基于ARM S3C44B0X 的LED显示屏设计
  为了简化L ED 显示屏的驱动电路,节约单片机的端口资源,对常见的L ED 显示屏驱动电路进行了改进,全部采用通用的串入并出移位寄存器作为选通驱动,系统全部采用串行数据控制,形成了一种只需4 根信号线的L ED 显示屏驱动电路解决方案,仅需占用单片机的4个I/ O 端口发送串行数据就可以实现正常的显示功能,文中给出相应的程序代码。    1 、引言   L ED 显示屏应用十分广泛,是信息传播的有效工具。在某井下矿采设备监测系统中选用了ARM S3C44B0X 32 位单片机作为CPU ,根据应用要求,监测系统的显示部分使用16 行的单色L ED 显示屏实时显示监测数据。由于系统外设较多,端口资源十分紧张,针对这种情况开
[单片机]
基于ARM <font color='red'>S3C44B0X</font> 的LED显示屏设计
ARM移植MPlayer
奋斗了一晚上,多方查找资料,终于将MPlayer交叉编译成功了,小记经验于此。 MPlayer版本:MPlayer-1.0rc2.tar.bz2; 交叉编译器:cross-3.2.tar.bz2 1 在我的主目录中解压Mplayer 2 安装交叉编译器,将cross-3.2.tar.bz2以root权限拷贝到/目录执行解压操作 3 cd Mplayer目录 4 修改stream.c,注释掉 //#ifdef USE_DVDREAD //extern stream_info_t stream_info_dvd; //#endif //#ifdef USE_DVDREAD // &stream_info_dvd, //#endif 原
[单片机]
4412开发板图像识别实战项目-移植jsoncpp库(四)
图像识别: 通过百度AI的快速入门手册,我们可以知道,如果要调用百度AI的接口,我们需要移植依赖库libcurl,openssl和jsincpp库。 环境:迅为提供的ubuntu16.04 编译器:arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 平台:迅为4412开发板 一.jsoncpp库简介 JSON全称为JavaScript ObjectNotation,它是一种轻量级的数据交换格式,易于阅读、编写、解析。jsoncpp是c++解析JSON串常用的解析库之一。 二.移植 1,解压压缩包进进入解压后的目录 tar -vxf jsoncp
[单片机]
4412开发板图像识别实战项目-<font color='red'>移植</font>jsoncpp库(四)
MBED移植日记:gpio_api移植(基于STM32F107RC)
本文是继MBED串口API移植的又一篇系列文章,前阵子忙着赶项目,移植完了却没来得及写成文章来分享,今天来补上,一来可以温故知新,二来也可以献出自己的一点微薄之力。写的不好,移植的也不一定好,请大家多多指教。本文的gpio_api模块与mbed官方的会有一些不同,原因是加入了我个人理解的一些东西。 一、关联文件 1、ierror.h /* ************************************************************** file: ierror.c date: 2016-8-15 ver : 1.00.00 *****************************
[单片机]
u-boot-2009.08在mini2440上的移植(一)---建立mini2440工程环境(3)
根据启动流程修改或添加基本的u-boot源码,使其能够在内存中启动 【1】增加对S3C2440一些寄存器的支持,添加中断禁止部分和时钟设置部分 用gedit打开cpu/arm920t/start.S,定位到134行附近,如下代码 #if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) /* turn off the watchdog */ 由于2410和2440的寄存器及地址大部分是一致的,所以这里就直接在2410的基础上再加上对2440的支持即可,修改后代码如下: #if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) |
[单片机]
u-boot-2009.08在mini2440上的<font color='red'>移植</font>(一)---建立mini2440工程环境(3)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved