欢迎来到天天文库
浏览记录
ID:30363341
大小:104.26 KB
页数:35页
时间:2018-12-29
《ucgui在niosii上的移植》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、UCGUI在NIOSII上的移植作者:齐威王发表于2010-08-2211:03原文链接阅读:1评论:0转自这是前些日子在使用uc/GUI的时候即下来的一些东西原来发布在EDACN的bbs上面。现在不知道沉到哪里去了。现在把它重新整理发布在这里。随后在明年过年的时候把后续的几个高级主题整理出来。下面开始我的笔记!有兴趣的兄弟们可以来看看。step1.下载uC/GUI的代码。(废话没有源代码移植个鸟)我下载的时uC/GUI3.32这是能得到的源代码中最全的一个版本。看看里面都有些什么东西。由于这里的发间
2、大小的限制的问题不能上传源代码。很是郁闷。有需要的同志可以联系我。Email:william7447@gmail.com首先看看所有名叫Simulation的东西这是uC/GUI在VC中仿真的VC工程,他的仿真功能非常的实用可以在没有具体硬件的情况下先行开发软件,而丝毫不影响软件的兼容性。但是有一个问题比较郁闷,就是速度的问题。大家知道嵌入式系统的CPU运算能力有限,而电脑的cpu.我的整个项目的gui是在电脑上完成的。拿到目标系统上面编译.通过。经过紧张的下载.运行.显示出了第一个画面,无比的兴奋。
3、但测试发现极其郁闷而几乎无法解决的问题.目标系统的处理能力只有100mips而我的电脑的cpu是P43.0。速度的差别太大了。解决这个问题几乎成了我后半段工作的主题。GUI文件夹存放全部uC/GUI源代码的地方看看它的属性有多达390个文件,全部是.c和.h。可以看出GUI系统是一个庞大复杂的东西。我在调试系统的时候跟踪过完整的消息循环再进入了60多个子函数调用后还没有看到希望,就彻底的放弃了跟踪的想法。下来会具体说明这里面都有些什么东西。config文件夹uC/GUI的配置文件夹。里面存放的是uC/
4、GUI的配置头文件。改动里面的相应的就可以改动uC/GUI的配置。这个GUI功能十分强大。我也在探索之中。这几天刚刚入门,只能说我自己的移植过程,以后陆续添上它的使用。有什么不对的地方大家请指出来。uC/GUI移植之准备工作。先来看看吧uC/GUI移植到NIOSII都要准备些什么东西。首先就是要了解uC/GUI的源代码包括了一些什么东西。前面提到了这个gui有两个文件夹一个GUI存放gui的核心文件,一个config为gui提供配置信息。先看core里面有什么东西。GUIAntiAlias抗锯齿支持,
5、看上去挺牛的。根据对抗锯齿的使用发现,uC/GUI的抗锯齿的效果好坏主要取决于系统的发色数,即系统的色彩表现能力,例如系统仅有灰度显示能力的时候,uC/GUI在对一条直线进行处理的时候它是在直线的两侧添加颜色较浅的点来实现抗锯齿的。效果十分明显。GUIConvertMono(b/w)和灰度显示的色彩转换支持。GUIConvertColor彩色显示的色彩转换支持实际上就是色彩空间变换,为什么需要色彩转换呢?在gui内部定义了一套调色板及色彩的数据格式,但是有的控制器的色彩数据格式和gui内部定义的并不一
6、样,甚至色彩的数量(即lcd的发色数)也不同,这样就需要将两种不同的数据格式进行转换。这样才能在lcd上看到正常的颜色。GUICoreC/GUI核心文件,提供了GUI基本的功能,比如画点,画线,为图之类的东西。什么窗口,窗口控件都是基于这些基本功能的。GUIFont不用多说了GUILCDDriverLCD控制器。下面会说这个东西。GUIMemDevMemorydevice支持。这个东西可用在很多情况下,但最主要的功能是防止在项目重叠时,防止屏幕的闪烁。如果没有Memorydevice的支持数据会直接写
7、到控制器中去,这样当进行各种屏幕跟新的时候就会出现闪烁现象。如果有Memorydevice支持,就会避免这种现象。具体的还没有测试,不过看说明是蛮牛的。关于这个东西会有一个较详细的测试。GUITouchTouch-panel支持。虽然说是支持,甚至连鼠标都支持,但是底层驱动程序的四个函数是空的需要用户自己添加内容,我们使用mxb7843这个四线电阻触摸屏控制器。班子还没有做好,做好就测试。GUIWidget窗体控件库,功能强大,提供诸如按钮,文本框之类的复杂的功能。GUIWM窗口库。widgetwm配
8、合memorydevice使用功能强大。下面看看CONFIG文件夹三个文件:GUIConf.hGUITouchConf.hLCDConf.h看名字也知道干什么的了。下面一个一个说。#ifndefGUICONF_H#defineGUICONF_H#defineGUI_OS(1)/*多任务支持,如果使用rtos就打开这个选项,除了自家的ucos,别的rtos也支持*/#defineGUI_SUPPORT_TOUCH(1)/*支持触摸屏*/#defineGUI
此文档下载收益归作者所有