- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UC GUI在NIOSII上的移植
?
作者:齐威王发表于2010-08-22 11:03原文链接阅读:1评论:0
转自
这是前些日子在使用uc/GUI的时候即下来的一些东西原来发布在EDACN的bbs上面。现在不知道沉到哪里去了。现在把它重新整理发布在这里。随后在明年过年的时候把后续的几个高级主题整理出来。
下面开始我的笔记!有兴趣的兄弟们可以来看看。
step1.
下载uC/GUI的代码。(废话没有源代码移植个鸟)
我下载的时uC/GUI3.32这是能得到的源代码中最全的一个版本。
看看里面都有些什么东西。由于这里的发间大小的限制的问题不能上传源代码。很是郁闷。有需要的同志可以联系我。Email:william7447@
首先看看所有名叫Simulation的东西这是uC/GUI在VC中仿真的VC工程,他的仿真功能非常的实用可以在没有具体硬件的情况下先行开发软件,而丝毫不影响软件的兼容性。但是有一个问题比较郁闷,就是速度的问题。大家知道嵌入式系统的CPU运算能力有限,而电脑的cpu.我的整个项目的gui是在电脑上完成的。拿到目标系统上面编译.通过。
经过紧张的下载.
运行.显示出了第一个画面,无比的兴奋。但测试发现极其郁闷而几乎无法解决的问题.目标系统的处理能力只有100mips而我的电脑的cpu是P4 3.0。速度的差别太大了。解决这个问题几乎成了我后半段工作的主题。
GUI文件夹存放全部uC/GUI源代码的地方
看看它的属性有多达390个文件,全部是.c和.h。可以看出GUI系统是一个庞大复杂的东西。我在调试系统的时候跟踪过完整的消息循环再进入了60多个子函数调用后还没有看到希望,就彻底的放弃了跟踪的想法。下来会具体说明这里面都有些什么东西。
config文件夹uC/GUI的配置文件夹。里面存放的是uC/GUI的配置头文件。改动里面的相应的就可以改动uC/GUI的配置。
这个GUI功能十分强大。我也在探索之中。
这几天刚刚入门,只能说我自己的移植过程,以后陆续添上它的使用。有什么不对的地方大家请指出来。
uC/GUI移植之准备工作。
先来看看吧uC/GUI移植到NIOS II都要准备些什么东西。
首先就是要了解uC/GUI的源代码包括了一些什么东西。
前面提到了这个gui有两个文件夹一个GUI存放gui的核心文件,一个config为gui提供配置信息。
先看core里面有什么东西。
GUIAntiAlias抗锯齿支持,看上去挺牛的。
根据对抗锯齿的使用发现,uC/GUI的抗锯齿的效果好坏主要取决于系统的发色数,即系统的色彩表现能力,例如系统仅有灰度显示能力的时候,uC/GUI在对一条直线进行处理的时候它是在直线的两侧添加颜色较浅的点来实现抗锯齿的。效果十分明显。
GUIConvertMono(b/w)和灰度显示的色彩转换支持。
GUIConvertColor彩色显示的色彩转换支持
实际上就是色彩空间变换,为什么需要色彩转换呢?
在gui内部定义了一套调色板及色彩的数据格式,但是有的控制器的色彩数据格式和gui内部定义的并不一样,甚至色彩的数量(即lcd的发色数)也不同,这样就需要将两种不同的数据格式进行转换。这样才能在lcd上看到正常的颜色。
GUICore C/GUI核心文件,提供了GUI基本的功能,比如画点,画线,为图之类的东西。什么窗口,窗口控件都是基于这些基本功能的。
GUIFont不用多说了
GUILCDDriver LCD控制器。下面会说这个东西。
GUIMemDev Memory device支持。这个东西可用在很多情况下,但最主要的功能是防止在项目重叠时,防止屏幕的闪烁。如果没有Memory device的支持数据会直接写到控制器中去,这样当进行各种屏幕跟新的时候就会出现闪烁现象。如果有Memory device支持,就会避免这种现象。具体的还没有测试,不过看说明是蛮牛的。关于这个东西会有一个较详细的测试。
GUITouch Touch-panel支持。虽然说是支持,甚至连鼠标都支持,但是底层驱动程序的四个函数是空的需要用户自己添加内容,我们使用mxb7843这个四线电阻触摸屏控制器。班子还没有做好,做好就测试。
GUIWidget窗体控件库,功能强大,提供诸如按钮,文本框之类的复杂的功能。
GUIWM窗口库。
widget wm配合memory device使用功能强大。
下面看看CONFIG文件夹
三个文件:
GUIConf.h GUITouchConf.h LCDConf.h
看名字也知道干什么的了。
下面一个一个说。
#ifndef GUICONF_H
#define GUICONF_H
#define GUI_OS(1)/*多任务支持,如果使用rtos就打开这个选项,除了自家的ucos,别的r
文档评论(0)