历史上的今天
返回首页

历史上的今天

今天是:2026年02月02日(星期一)

正在发生

2023年02月02日 | uCGUI 移植到S3C44B0X实验

2023-02-02 来源:elecfans

一、实验目的

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


推荐阅读

史海拾趣

CBM_America_Corporation公司的发展小趣事

CBM_America_Corporation在电子行业的初期,专注于研发具有创新性的半导体技术。通过不懈的努力,公司成功开发出一种高效能、低能耗的芯片,受到了市场的广泛欢迎。这一技术突破为公司带来了大量的订单,也吸引了众多投资者的关注。随着资金的注入,CBM开始扩大生产规模,并进军国际市场,逐步成为了电子行业的领军企业。

中科芯(CKS)公司的发展小趣事

在技术创新方面,中科芯不断推出具有竞争力的新产品。其中,CKS32系列MCU是公司近年来推出的一款高性能微控制器产品。该产品具有高可靠性、高兼容性和高性价比的特点,在市场上广受好评。在苏州先进技术成果交易大会上,CKS32系列MCU以其卓越的性能和广泛的应用领域吸引了众多关注。该产品的推出不仅提升了中科芯在微控制器领域的市场地位,也为中国电子行业的发展注入了新的活力。

DL Instruments LLC公司的发展小趣事

DL Instruments的成功离不开其领导层的智慧与远见。David Woolston先生作为公司的创始人之一,凭借其丰富的行业经验和敏锐的市场洞察力,带领公司不断突破自我、超越竞争对手。他注重人才培养和技术创新,为公司的发展奠定了坚实的基础。

高博(GBG)公司的发展小趣事

谷峰电子有限公司的故事始于1995年,当时公司在香港成立,标志着其半导体元器件研发与销售的起点。初期,面对激烈的市场竞争和技术挑战,谷峰团队凭借对半导体技术的深刻理解和对市场需求的敏锐洞察,逐步确立了以功率MOSFET为核心产品的战略方向。2000年,谷峰在深圳设立分公司,进一步扩大了其研发和销售网络,为公司的快速发展奠定了坚实基础。

成都芯进(CrossChip)公司的发展小趣事

随着技术的不断积累和市场的逐步拓展,成都芯进电子逐渐在磁传感器芯片领域崭露头角。他们不仅实现了霍尔效应和磁阻效应磁传感器芯片的量产,还成功研发了电流传感器芯片、电机驱动芯片和电源管理芯片等系列产品。这些产品的推出,不仅丰富了公司的产品线,也进一步提升了公司的市场竞争力。

Electro Technik Industries公司的发展小趣事

作为一家具有社会责任感的企业,ETI始终关注环保问题。公司积极推广绿色生产理念,采用环保材料和工艺进行生产。同时,ETI还投入大量资金用于环保设施的建设和运营,减少了对环境的污染。此外,ETI还积极参与社会公益活动,为环保事业贡献自己的力量。这些举措使ETI在业界树立了良好的形象,赢得了社会各界的广泛赞誉。

问答坊 | AI 解惑

LC滤波

哪位大侠能推荐一下47uF,500V的滤波用电容型号和220mF,2A的滤波用电感型号,万分感谢!…

查看全部问答>

猖狂的滚筒型概念汽车

这是伊斯坦布尔的设计师Özkan Koral为俏丽公司设计的滚筒型概念汽车,不仅样子奇特,而且非常环保,因为它采用的是氢气做为燃料,每个大轮子都由独立的马达驱动。全部车体都是透明的,“车门”可以自下而上旋转打开,开着这样的环保车旅行,外 ...…

查看全部问答>

【转贴】超级劲爆!!惠普3431玩家自暴本本《七宗罪》!!

1、散热差:HP3431采用的是AMD的CPU,散热和性能都比较平庸,而且因为采用90nm技术,CPU发热量比较大,给本子的稳定运行埋下了隐患,而且HP为了减低成本把铜制散热片都取消了; 2、电池使用时间短:仅2小时使用时间,主要原因是AMD TL-56散热量大,制 ...…

查看全部问答>

请问USB和串口有什么区别?

做一个arm+linux下的东西,想买一样外设的时候,听别人说有usb的和串口的,一些朋友推荐用串口的。想问一下,usb和串口有什么区别,各有什么利弊?刚接触这方面的东西,可能问的有些业余,请大家不吝赐教。谢谢!…

查看全部问答>

新人请教:CE6 模拟器

    wince6.0 编译产生Nk.bin后,如何在pc上模拟啊,怎么设置或者是否要安装其他软件?…

查看全部问答>

关于at92RM00的编译问题

头文件中定义AIC_SMR[0]是这样定义的:AT91_REG         AIC_SMR[32];         // Source Mode Register。 程序如下 #incluude #include   int _irq_FIQ(void) {    ...…

查看全部问答>

LED技术在汽车上的运用

灯光早已在家居装潢、建筑设计等领域运用广泛,但由于传统灯光需要滤色与车内有限空间的矛盾,所以在以前一段时间,汽车灯光的装饰功能一直是厂商很少涉及的领域,然而随着LED(发光二极管)技术的成熟,设计师们在这一领域有了很大的拓展空间。现在 ...…

查看全部问答>

ucf 引脚绑定

问下,ise10.1中如何添加ucf 最好是能在软件直接添加的!…

查看全部问答>

PCB视频制作

不能发图片太麻烦,大家下载附件看啦! 在PCB 3D Movie Editor 面板中,我们可以创建、配置和管理PCB 3D视频。 在主设计窗口的右下角,点击PCB按钮,在随后的菜单中选择  PCB 3D Movie Editor ...…

查看全部问答>

一个 430宏定义的语法的问题

#define Bitime_5 0x05*4 // ~ 0.5 bit length + small adjustment #define Bitime 13*4//0x0D 看程序 看到这两句定义请问一下 这个 * 号是什么作用是乘法吗? 怎么感觉和注释不大一样…

查看全部问答>