设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
嵌入式图形用户界面在S3C44B0X上的移植
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  


关键词: μC/GUI   实时操作系统   接口   S3C44B0X   移植

1  引言http://www.16sheji8.cn/
    如今随着信息化、智能化、网络化的迅速发展,嵌入式系统已被广泛应用在消费电子、工业应用、军事国防、网络设备等领域。μC/GUI作为一个通用的嵌入式应用的图形模块,它在嵌入式系统中的作用也显得的越来越重要。 μC/GUI是一个源代码开放的图形系统,它提供了丰富的资源,包括二维绘图库、多字体及可扩充字符集、Unicode、位图显示、多级RGB及灰度调整、动画优化显示、具有Windows风格的对话框和预定义控件(按钮、编辑框、列表框等),以及对键盘、鼠标、触摸屏等输入设备和双LCD输出的支持,目前在具有图形界面的嵌入式产品中得到越来越广泛地应用。

2  通用嵌入式图形模块uC/GUI
    μC/GUI是一个通用的嵌入式应用的图形模块,它是美国Micrium公司开发的一种高效的、与处理器和LCD控制器独立的通用GUI,可以适用各种CPU和LCD,在单任务和多任务操作系统中,它都可以工作得很好。它具有驱动接口层和应用层,全部代码采用ANSI _C编写,提供源代码,可以方便的移植到各种平台下。
2.1  μC/GUI特点
(1) 支持任何8位、16位和32位的CPU,只要求CPU具有相应的ANSI_C编译器即可。
(2) 所有硬件接口定义都使用可配置的宏
(3) 字符、位图可显示与LCD的任意点,并不限制与字节长度的整数倍数地址。
(4) 所有程序在长度和速度方面都进行了优化,结构清晰。
(5) 对于慢速的LCD控制器,可以使用缓冲存储器减少访问时间,提高显示速度[1]。
因为μC/GUI具有这些优点,它越来越受到更多嵌入式设计者的青睐。
2.2  μC/OS-II介绍http://www.16sheji8.cn/
    在嵌入式系统的开发过程中,选择操作系统与选择开发平台一样的重要。虽然不是一个完整的实时操作系统,只是一个实时内核,但与其它操作系统比起来它具有很多优点因而得到了广泛的应用。首先它是一种结构简单、源代码公开的操作系统,适合所有的开发者使用;它具有可移植性,它的绝大部分源码都是用移植性很强的 ANSI _C编写,与微处理器硬件相关的部分采用汇编语言编写,很容易被移植到各种微处理器上;它还具有可固化和可裁剪等特点,对于嵌入式设计者来讲的,只要拥有固化手段(C编译、连接、下载和固化),就可以很方便将其嵌入到产品中去。设计者还可以根据系统应用程序的需要对μC/OS-II进行相应的裁剪来减少产品中的μC/OS-II所需的存储器空间,这可以通过条件编译来实现。
2.3  μC/GUI接口
    μC/GUI 是运行于操作系统之上的程序,它既需要与操作系统的协调,又需要与各种输入输出设备的协调,来实现用户层与应用程序层的联结,即通过输入设备接收用户请求、通过输出设备反映微处理器的响应。因此在这一过程中GUI至少要与3个对象打交道:输入设备、输出设备和操作系统。因此μC/GUI接口主要包括2 个,与操作系统的接口和与输入输出设备的接口,这也正是在移植μC/GUI的过程中所要解决的关键问题。
    对于操作系统,GUI作为操作系统的一个显示任务接受操作系统的调度,μC/GUI提供了与操作系统的接口支持。与操作系统的接口主要解决系统实时性的要求。对于用户输入,μC/GUI提供了键盘、鼠标以及触摸屏等支持,对于输出设备GUI反映微处理器的响应给用户是通过LCD输出图像来完成的,对于不同型号和显示原理的LCD要编制相应的驱动程序。

3  uC/GUI在基于S3C44B0X的μC/OS-II上移植
  3.1  S3C44B0X 微处理器和开发平台简介

    这里硬件开发平台的微处理器选择三星公司的S3C44B0X,实时操作系统选择移植性较强的μC/OS-II。
S3C44B0X 微处理器是三星公司专为手持设备和一般应用提供的一款高性价比的微处理器解决方案,它采用ARM 7TDM I核,工作在66MHz,为减少外围件, 该芯片集成了8KB的Cache、LCD控制器、5通道PWM定时器和一个内部定时器、71个I/O口、8个外部中断源、实时时钟等[3]。
移植的目标平台的液晶模块使用320×240分辨率, 通过总线的形式连接在S3C44B0X的Bank3上, 并在系统的内存区开辟了一块内存作为液晶显示的后台缓存。
    要成功将μC/GUI移植到该平台上一般要解决以下几方面的问题。
3.2  μC/GUI与操作系统的接口相关部分的修改
    μC/GUI 在与μC/OS-II结合应用时通常被分为几个小的显示任务,由于每个显示任务都共用一个GUI_Context上下文变量,在操作系统进行任务切换时一个GUI任务对上下文的操作可能被另外一个GUI任务打断,此时新的GUI任务对上下文的操作是在被中断任务的上下文基础上进行的,这样前一个任务的信息会被后一个任务所使用,有些基本信息作为公用信息需要被共用,而有些信息在处理过程中是不能被打断的。这就存在资源互斥的问题。
    μC/GUI在设计时是通过上锁和解锁来解决此问题。其过程是通过在关键区域入口设置GUI_X_Lock()以获得专一访问权,用完后在出口处设置GUI_X_ Unlock()让出资源,达到多个GUI任务对同一数据在关键区域内访问的互斥。
在μC/GUI移植到μC/OS-II的过程中,则需要利用操作系统实现资源互斥的系统调用对上述宏进行替换,这涉及到3个任务调度函数的重新定义:
void  GUI_X_InitOS (void); http://www.16sheji8.cn/
/*任务初始化*/
void  GUI_X_Lock (void);  
/*任务锁定*/
void  GUI_X_Unlock (void); 
/*任务解锁*/
此外μC/GUI还用到μC/OS-II中的延时调用,通过在GUI_X_Delay()中调用μC/OS-II的OSTimeDly()实现延时和任务切换。这涉及到2个系统时间接口函数的定义:
int    GUI_X_GetTime (void); 
/*取系统时间*/
void  GUI_X_Delay (int ms);  
/*延时函数*/


嵌入式图形用户界面在S3C44B0X上的移植 
 

嵌入式图形用户界面在S3C44B0X上的移植

3.3  μC/GUI与输入输出设备驱动接口模块设计
本文以LCD驱动接口模块设计为例介绍在μC/GUI移植过程中LCD驱动程序的编写,以最终实现图形显示。
驱动程序主要是LCD初始化,这个函数完成对44B0X LCD控制器的配置、显存的映射等。这里还是以320×240彩色LCD为例介绍一下初始化程序的编写。具体如下:
void LCD_Init(void)
{
int i;
LCD_DisplayOpen(FALSE);
/* 关LCD显示 */
for(i=0; i<320*240; i++) 
/* 初始化显存 */
*(pLCDBuffer256+i) = 0x0;
rPDATD = 0xff;;   
/* PDATD[7 :0]: 此处初始化为0xff */
rPCOND = 0xaaaa;
/* PCOND[15:0]: 配置为功能端 */
rPUPD = 0x00;
/* PUPD [7 :0]: 允许相应位的上拉电阻(0=允许, 1=禁止) */
rLCDCON1 = (0)|(DISMODE<<5)|(WDLY<<8)|(WLH<<10)|(CLKVAL<<12);
/* disable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/
rLCDCON2 = (LINEVAL)|(HOZVAL<<10)|(LINEBLANK<<21);
/* 彩色模式, LCDBANK=0xc000000, LCDBASEU=0x0 */
rLCDSADDR1= (MODESEL<<27) | (((U32)pLCDBuffer256>>22)<<21) |
M5D((U32)pLCDBuffer256>>1);
rLCDSADDR2= M5D(((U32)pLCDBuffer256+(LCDWIDTH*LCDHEIGHT))>>1) |
(MVAL<<21);
rLCDSADDR3= PAGEWIDTH | (OFFSIZE<<9);
rREDLUT = 0xfdb97531; 
/* 设置红绿蓝三色的颜色值*/http://www.16sheji8.cn/
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_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/
rLCDCON1 = (1)|(DISMODE<<5)|(WDLY<<8)|(WLH<<10)|(CLKVAL<<12);
Delay(5000);
LCD_BkLight(TRUE);     
/* 开背光 */
LCD_DisplayOpen(TRUE);  
/* 打开LCD显示 */
}
完成如上LCD驱动以后, 再设置相应的中断服务子程序(IS), μC/GU I就可以稳定地运行在μC/OS-II和目标平台之上了。
3.4  μC/GUI配置文件参数的修改
主要是LCDConf.h配置文件的修改,如果LCD选用320×240彩色,就要作如下修改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寄存器常量的设置等这里不一一详述
    到这里μc/GUI的移植基本完成。本文只介绍了μc/GUI结合LCD在基于S3C44B0X的μC/OS-II上的移植。如果涉及到输入设备键盘、鼠标以及触摸屏的移植还要编写相应的驱动程序和其相关参数的修改。
4  结束语
    本文详细介绍了嵌入式图形用户界面在基于μC/OS-II目标平台上的移植过程,实际表明在具有图形界面的嵌入式系统的开发中,采用基于μC/OS-II的图形系统μc/GUI,移植简便、使用方便灵活,目前基于 μC/OS-II的μc/GUI系统已成功移植到了系统效率测试仪上,系统的电能参数(电流、电压、功率)可以实时采集和实时波形显示;参数设置以菜单、编辑框的形式实现,界面的切换以窗口的形式实现。充分利用了μc/GUI强大的图形功能,使人机界面更加丰富、友好。实践表明系统具有良好的实时性和稳定性。http://www.16sheji8.cn/

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
储油罐的变位识别与罐容表标定 DVD租赁优化方案 车灯线光源的优化设计方案
基于时频分析与自适应滤波技术的多 基于WxJava框架的集客微信公 CRM系统的设计开发与Open
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!