- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
uCGUI简单移植
嵌入式图形用户界面uc/gui在nios II上的移植
?
uc/gui是一个优秀的嵌入式图形用户界面,这几天的工作就是将它移植到nios II系统上。前人也做了一些工作,不过大部分都是针对其他硬核处理器,针对nios II软核处理器的移植资料那简直是凤毛麟角。在阅读了相关文档后,我决定自己亲自动手实践,这下面的很多过程都是自己摸索出来的,并通过了实验的验证。这只是一个初步的移植,也许在以后的更复杂的应用中,还需要对其进行调整。但对目前我的应用而言,应该足够了。
写这篇文章的目的一是由于自己记性不好,所以需要给自己留个备忘,免得以后忘的一干二净;二是给有需要的朋友提供一些参考,也好相互交流,共同进步。请大家多提宝贵意见。
一、源码和文档下载
/上有很多不同版本的源码下载,目前能下到的必威体育精装版版本是3.98,不过还有一些组件不是很完整,但作基础开发已经够用了。
ucgui3.98源码下载地址:uC-GUI-V3-98.zip。
ucgui必威体育精装版版用户手册下载地址:uC-GUI-user.rar。
开发软件:quartus II 6.0, Nios II IDE 6.0。
二、移植过程
先来看看解压后都有些什么东西:
如图,核心的东西包括Config和GUI两个文件夹,这里面是ucgui的所有源码和配置文件。ConvertColor包含彩色转换函数,ConvertMono包含灰度到彩色转换的函数,Core包含核心程序,Font是字体文件,LCDDriver包含多种控制器驱动,Widget是窗口控件库,WM是窗口库,提供复杂的功能。其他文件夹包含一些应用范例以及一些有用的工具,留待慢慢探索。
1、config文件的移植:
Config文件夹是ucgui的配置文件夹,里面有3个文件:
GUIConf.h:gui的基本属性配置文件,有很多开关可以配置,具体可以参考ucgui的用户手册,这里只需配置几个必要的参数如下:
#ifndef GUICONF_H
#define GUICONF_H
#define GUI_OS??????????????????? (1) /* 支持操作系统,nios系统自带了ucosII,所以我们选择此项,使gui支持该操作系统 */
#define GUI_SUPPORT_TOUCH???????? (0) /* 支持触摸屏,由于暂时没有用触摸屏,所以关掉这个开关 */
#define GUI_SUPPORT_MOUSE???????? (0) /* 支持鼠标,暂时关闭 */
#define GUI_SUPPORT_UNICODE?????? (1) /* Unicode字符串支持 */
#define GUI_DEFAULT_FONT????????? GUI_Font6x8/* 默认字体 */
#define GUI_ALLOC_SIZE??????????? 12500/* WM和memery device分配的内存 */
#define GUI_WINSUPPORT??????????? 1 /* Window manager available */
#define GUI_SUPPORT_MEMDEV??????? 0 /* Memory devices available,由于下载到的源代码中缺少memery device组件的源码,所以关闭此项 */
#define GUI_SUPPORT_AA??????????? 1 /* Anti aliasing available */
#endif /* Avoid multiple inclusion */
LCDConf.h:LCD控制器的硬件配置文件,这个文件与硬件直接相关,一般是根据你所使用的LCD的类型和所用的LCD控制器的类型来配置。我的配置是一块640*480的TFT LCD,支持18位色,不过我只使用16位,RGB565色彩模式,足矣。LCD控制器就是自己写的一个硬件模块,挂在avalon总线上,负责读取显示缓冲区中的数据,然后按照该LCD的时序输出显示到LCD上。显示缓冲区直接开辟在系统内存中,系统使用一块SDRAM作为系统内存,CPU可以直接对其进行32位读写访问。通过仔细阅读ucgui的用户手册,可以知道,在我这种硬件配置条件下,可以选择LCDLin32.c这个驱动文件(后面将详细讲述对LCDLin32.c的修改与移植),那么对应了LCD_CONTROLLER 必须配置为3200。
#ifndef LCDCONF_H
#define LCDCONF_H
#define LCD_XSIZE????? (640) /* X-resolution of LCD, Logical
文档评论(0)