uCOS与uCGUI在s3c2410上的整合移植.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
uCGUI和uC/OS-II在S3C2410上的整合移植实现 吴倚龙,郝卫东,赵瑞芳 (桂林电子科技大学 机电与交通工程系, 广西 桂林 541004) 摘 要:本文在简要介绍UC/OS-II在S3C2410上移植后,就UCGUI在UC/OS-II上整合移植进行了重点阐述,归纳出整合移植的具体步骤,同时就在移植过程中,最后给出一个多任务窗口的测试范例。uCGUI;uC/OS-IIS3C2410;嵌入式系统移植TN929.5 文献标识码:A 文章编号:1001-7437(2004)00-00-00 uC/OS-II是专为微控制器系统和软件开发而设计的抢占式的实时多任务操作系统微内核,经过十几年的发展,已经在众多领域的应用中取得了成功CP / IP、文件系统、图形界面等等图形界面CGUI是Micrium开发的一种基于嵌入式系统的图形界面支持系统.可以用于任何使用LCD图形显示的应用,提供高效的独立于处理器及LCD控制器的图形用户接口,可以在单任务或是多任务系统上运行, 并适用于任意LCD控制器和CPU下任何尺寸的真实显示或虚拟显示。 本文研究的uCGUI和uC/OS-II在S3C2410上的移植整合,不涉及文件系统的移植,后面论述的重点由以下几个部分组成,第一部分简要的介绍uC/OS-II在S3C2410上移植,第二部分uC/OS-II的uCGUI的移植,第部分给出一个测试用例uC/OS-II在S3C2410上的移植主要包括两个部分的代码配置或者编写:第一部分与应用相关的配置,体现在对OS_CFG.H和INCLUDES.H配置上;第二部分与特定处理器(这里指S3C2410) 相关的代码编写uC/OS-II微内核代码形成,并不能立即烧入目标板运行,要在目标板上运行,必须还要编写目标板初始化引导程序,初始化引导程序主要实现硬件初始化、内存映射(S3C2410不支持二次映射)、中断向量初始化、系统堆栈空间的分配、 等功能,以引导uC/OS-II的正确运行。 在上述移植过程完成后,需要测试内核是否能够正常运行,测试是一个系统的工程,具体细节的工作在文献[1]有具体的介绍,由于现在互连网上可以搜到很多有关于uC/OS-II在S3C2410移植的范例,参考这些移植源代码,可以将测试工作大大的简化,只需注意OSStart(), OSTickISR()函数调用的先后顺序。必须在开始多任务后(调用OSStart()后),然后再启动时钟节拍中断(调用OSTickISR()),由于OSStart()不返回,所以不应将OSTickISR()与OSStart()置于同一主函数当中,通常的做法是,将OSTickISR()方在第一个任务的首句位置,这样就可以确保它们执行的先后顺序。 uCGUI在S3C2410上的移植 uC/OS-II和uCGUI在S3C2410上的整合移植主体上遵循以下流程,首先是针对使用的液晶屏的S3C2410内部的液晶屏控制器的初始化,构造uCGUI的运行环境,在此基础上修改和配置ucGUI的一些文件和函数使得ucGUI在目标上的正确运行。 2.1 S3C2410内部液晶屏控制器初始化 移植GUI的前提条件是液晶屏能够被正常驱动,为此需要实现液晶屏控制器的初始化,试验采用的是液晶屏为分辨率640*480的真彩TFT屏,S3C2410内部有专门针对TFT类型液晶屏的控制器Glib_Line()和PutPixel()函数)在正确的位置打印出正确的结果,说明液晶屏初始化工作完成。这两个函数本质上就是往已经在内存开辟的图像存储区里写图像中每个象素点RGB值,要注意的地方在于对图像存储区16BPP的图像像素RGB值的排列,这个顺序一定要以初始化时S3C2410控制寄存器LCDCON5规定的一致。如果不一致,可以调整BSWP位(这里无需用到HSWP位进行半字节转换)。如图1是在液晶屏控制器初始化后使用Glib_Line()函数在液晶屏上用绘制的三条颜色分别为红绿蓝的直线,三条直线的起始坐标分别为:红色直线(100,200)- (400,200), 绿线(100,250)-(400,250),蓝线(100,300)400,300),屏幕显示尺寸为640*480p,显示结果表明初始化工作已经完成。   图 1 液晶屏初始化显示   图 2 移植文件目录结构 Fig.1. initial display of LCD Fig.2. directory tree of porting files 2.2 ucGUI在S3C2410上的移植 为了尽量减少移植的工作量,考虑尽量在ucGUI已经实现的LCD控制器驱动上修改。由于采用的TFTL

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档