ucgui在基于s3c44b0x的ucos-ii上移植

上传人:第*** 文档编号:38879209 上传时间:2018-05-09 格式:DOC 页数:4 大小:28.50KB
返回 下载 相关 举报
ucgui在基于s3c44b0x的ucos-ii上移植_第1页
第1页 / 共4页
ucgui在基于s3c44b0x的ucos-ii上移植_第2页
第2页 / 共4页
ucgui在基于s3c44b0x的ucos-ii上移植_第3页
第3页 / 共4页
ucgui在基于s3c44b0x的ucos-ii上移植_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《ucgui在基于s3c44b0x的ucos-ii上移植》由会员分享,可在线阅读,更多相关《ucgui在基于s3c44b0x的ucos-ii上移植(4页珍藏版)》请在金锄头文库上搜索。

1、uCGUI 在基于在基于 S3C44B0X 的的 uCOS-II 上移植上移植关键词: uC/GUI 实时操作系统 接口 S3C44B0X 移植 1 引言如今随着信息化、智能化、网络化的迅速发展,嵌入式系统已被广泛应用在消费电子、 工业应用、军事国防、网络设备等领域。uC/GUI 作为一个通用的嵌入式应用的图形模块, 它在嵌入式系统中的作用也显得的越来越重要。 uC/GUI 是一个源代码开放的图形系统, 它提供了丰富的资源,包括二维绘图库、多字体及可扩充字符集、Unicode、位图显示、多 级 RGB 及灰度调整、动画优化显示、具有 Windows 风格的对话框和预定义控件(按钮、编 辑框、列

2、表框等),以及对键盘、鼠标、触摸屏等输入设备和双 LCD 输出的支持,目前在 具有图形界面的嵌入式产品中得到越来越广泛地应用。 2 通用嵌入式图形模块 uC/GUI uC/GUI 是一个通用的嵌入式应用的图形模块,它是美国 Micrium 公司开发的一种高效的、 与处理器和 LCD 控制器独立的通用 GUI,可以适用各种 CPU 和 LCD,在单任务和多任务 操作系统中,它都可以工作得很好。它具有驱动接口层和应用层,全部代码采用 ANSI _C 编写,提供源代码,可以方便的移植到各种平台下。2.1 uC/GUI 特点 (1) 支持任何 8 位、16 位和 32 位的 CPU,只要求 CPU 具

3、有相应的 ANSI_C 编译器即可。 (2) 所有硬件接口定义都使用可配置的宏。 (3) 字符、位图可显示与 LCD 的任意点,并不限制与字节长度的整数倍数地址。 (4) 所有程序在长度和速度方面都进行了优化,结构清晰。 (5) 对于慢速的 LCD 控制器,可以使用缓冲存储器减少访问时间,提高显示速度1。 因为 uC/GUI 具有这些优点,它越来越受到更多嵌入式设计者的青睐。2.2 uC/OS-II 介绍在嵌入式系统的开发过程中,选择操作系统与选择开发平台一样的重要。虽然不是一 个完整的实时操作系统,只是一个实时内核,但与其它操作系统比起来它具有很多优点因 而得到了广泛的应用。首先它是一种结构

4、简单、源代码公开的操作系统,适合所有的开发 者使用;它具有可移植性,它的绝大部分源码都是用移植性很强的 ANSI _C 编写,与微处 理器硬件相关的部分采用汇编语言编写,很容易被移植到各种微处理器上;它还具有可固化 和可裁剪等特点,对于嵌入式设计者来讲的,只要拥有固化手段(C 编译、连接、下载和固 化),就可以很方便将其嵌入到产品中去。设计者还可以根据系统应用程序的需要对 uC/OS-II 进行相应的裁剪来减少产品中的 uC/OS-II 所需的存储器空间,这可以通过条件编 译来实现。2.3 uC/GUI 接口uC/GUI 是运行于操作系统之上的程序,它既需要与操作系统的协调,又需要与各种输 入

5、输出设备的协调,来实现用户层与应用程序层的联结,即通过输入设备接收用户请求、 通过输出设备反映微处理器的响应。因此在这一过程中 GUI 至少要与 3 个对象打交道:输 入设备、输出设备和操作系统。因此 uC/GUI 接口主要包括 2 个,与操作系统的接口和与 输入输出设备的接口,这也正是在移植 uC/GUI 的过程中所要解决的关键问题。 对于操作系统,GUI 作为操作系统的一个显示任务接受操作系统的调度,uC/GUI 提供了与 操作系统的接口支持。与操作系统的接口主要解决系统实时性的要求。对于用户输入,uC/GUI 提供了键盘、鼠标以及触摸屏等支持,对于输出设备 GUI 反映微处理器的响应给

6、用户是通过 LCD 输出图像来完成的,对于不同型号和显示原理的 LCD 要编制相应的驱动 程序。3 uC/GUI 在基于 S3C44B0X 的 uC/OS-II 上移植 3.1 S3C44B0X 微处理器和开发平台简介这里硬件开发平台的微处理器选择三星公司的 S3C44B0X,实时操作系统选择移植性 较强的 uC/OS-II。S3C44B0X 微处理器是三星公司专为手持设备和一般应用提供的一款高性价比的微处 理器解决方案,它采用 ARM 7TDM I 核,工作在 66MHz,为减少外围件, 该芯片集成了 8KB 的 Cache、LCD 控制器、5 通道 PWM 定时器和一个内部定时器、71 个

7、 I/O 口、8 个 外部中断源、实时时钟等3。移植的目标平台的液晶模块使用 320240 分辨率, 通过总线的形式连接在 S3C44B0X 的 Bank3 上, 并在系统的内存区开辟了一块内存作为液晶显示的后台缓存。 要成功将 uC/GUI 移植到该平台上一般要解决以下几方面的问题。3.2 uC/GUI 与操作系统的接口相关部分的修改uC/GUI 在与 uC/OS-II 结合应用时通常被分为几个小的显示任务,由于每个显示任务 都共用一个 GUI_Context 上下文变量,在操作系统进行任务切换时一个 GUI 任务对上下文 的操作可能被另外一个 GUI 任务打断,此时新的 GUI 任务对上下

8、文的操作是在被中断任 务的上下文基础上进行的,这样前一个任务的信息会被后一个任务所使用,有些基本信息 作为公用信息需要被共用,而有些信息在处理过程中是不能被打断的。这就存在资源互斥 的问题。 uC/GUI 在设计时是通过上锁和解锁来解决此问题。其过程是通过在关键区域入口设置 GUI_X_Lock()以获得专一访问权,用完后在出口处设置 GUI_X_ Unlock()让出资源,达到 多个 GUI 任务对同一数据在关键区域内访问的互斥。在 uC/GUI 移植到 uC/OS-II 的过程中,则需要利用操作系统实现资源互斥的系统调用 对上述宏进行替换,这涉及到 3 个任务调度函数的重新定义: void

9、 GUI_X_InitOS (void); /*任务初始化*/ void GUI_X_Lock (void); /*任务锁定*/ void GUI_X_Unlock (void); /*任务解锁*/此外 uC/GUI 还用到 uC/OS-II 中的延时调用,通过在 GUI_X_Delay()中调用 uC/OS-II 的 OSTimeDly()实现延时和任务切换。这涉及到 2 个系统时间接口函数的定义: int GUI_X_GetTime (void); /*取系统时间*/ void GUI_X_Delay (int ms); /*延时函数*/3.3 uC/GUI 与输入输出设备驱动接口模块设计

10、本文以 LCD 驱动接口模块设计为例介绍在 uC/GUI 移植过程中 LCD 驱动程序的编写, 以最终实现图形显示。驱动程序主要是 LCD 初始化,这个函数完成对 44B0X LCD 控制器的配置、显存的映 射等。这里还是以 320240 彩色 LCD 为例介绍一下初始化程序的编写。具体如下: void LCD_Init(void) int i; LCD_DisplayOpen(FALSE); /* 关 LCD 显示 */ for(i=0; i22)1); rLCDSADDR2= M5D(U32)pLCDBuffer256+(LCDWIDTH*LCDHEIGHT)1) | (MVAL21);

11、rLCDSADDR3= PAGEWIDTH | (OFFSIZE9); rREDLUT = 0xfdb97531; /* 设置红绿蓝三色的颜色值*/ rGREENLUT = 0xfdb97531; rBLUELUT = 0xfb73; rDITHMODE = 0x0; rDP1_2 = 0xa5a5; rDP4_7 = 0xba5da65; rDP3_5 = 0xa5a5f; rDP2_3 = 0xd6b; rDP5_7 = 0xeb7b5ed; rDP3_4 = 0x7dbe; rDP4_5 = 0x7ebdf; rDP6_7 = 0x7fdfbfe; /* enable,8B_SNGL_S

12、CAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/ rLCDCON1 = (1)|(DISMODE5)|(WDLY8)|(WLH10)|(CLKVAL12); Delay(5000); LCD_BkLight(TRUE); /* 开背光 */ LCD_DisplayOpen(TRUE); /* 打开 LCD 显示 */ 完成如上 LCD 驱动以后, 再设置相应的中断服务子程序(IS), uC/GU I 就可以稳定地运行在 uC/OS-II 和目标平台之上了。3.4 uC/GUI 配置文件参数的修改主要是 LCDConf.h 配置文件的修改,如果 LCD 选用 32024

13、0 彩色,就要作如下修改 LCDConf.h 的内容: /*LCDConf.h*/ #ifndef LCDCONF_H #define LCDCONF_H #define LCD_XSIZE (320) /* LCD 水平分辨率 */ #define LCD_YSIZE (240) /* LCD 竖直分辨率 */ #define LCD_BITSPERPIXEL (8) #endif另外,还涉及到 LCD 寄存器常量的设置等这里不一一详述。到这里 uc/GUI 的移植基本完成。本文只介绍了 uc/GUI 结合 LCD 在基于 S3C44B0X 的 uC/OS-II 上的移植。如果涉及到输入设备

14、键盘、鼠标以及触摸屏的移植还要编写相应的 驱动程序和其相关参数的修改。 4 结束语本文详细介绍了嵌入式图形用户界面在基于 uC/OS-II 目标平台上的移植过程,实际表 明在具有图形界面的嵌入式系统的开发中,采用基于 uC/OS-II 的图形系统 uc/GUI,移植简 便、使用方便灵活,目前基于 uC/OS-II 的 uc/GUI 系统已成功移植到了系统效率测试仪上, 系统的电能参数(电流、电压、功率)可以实时采集和实时波形显示;参数设置以菜单、编辑 框的形式实现,界面的切换以窗口的形式实现。充分利用了 uc/GUI 强大的图形功能,使人 机界面更加丰富、友好。实践表明系统具有良好的实时性和稳定性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号