基于嵌入式的数码相框设计
- 格式:doc
- 大小:808.00 KB
- 文档页数:20
实习报告实习类型生产实习题目华迪实训报告学院名称信息与科学技术学院专业名称信息工程1班(电子方向)学生姓名严鹏学生学号201213010118指导教师李俊(校外)/余小平(校内)实习地点成都华迪公司实习成绩二〇 15 年 3 月二〇 15 年3 月华迪实训报告本次实训是一款基于嵌入式硬件平台的数码相框,主控芯片为基于ARM Cortex-M3内核的STM32系列嵌入式处理器,本设计包含主控制器核心板、LCD液晶显示、SD卡存储器等多个功能模块。
实现对SD卡里多幅图片以幻灯片形式在TFT屏上动态显示的效果,且带有实时时钟的功能。
一.项目简介这将是以数字照片的重显为主要功能的产品,其功能更接近于传统意义上的相框。
由于人机界面的限制,为了更方便的重显和浏览以及确定重显的规则,这类产品并不强调有大容量的内存以及丰富的存储卡接口。
嵌入式系统具有以下几个重要特征:①系统内核小,由于嵌入式系统一般应用于小型电子装置,系统资源相对有限,所以内核较之传统的操作系统要小得多。
比如,ENEA公司的OSE分布式系统,内核只有5KB,而Windows 的内核则要大得多。
②专用性强,嵌入式系统的个性化很强,其中的软件系统和硬件结合非常紧密,一般要针对硬件进行系统的移植,同时针对不同的任务,往往需要对系统进行较大的更改。
另外,程序的编译下载要和系统相结合。
③嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能的设计及实现过于复杂,这样既利于控制系统成本,也利于实现系统安全。
④高实时性的操作系统软件是嵌入式软件的基本要求,而且软件要求固化存储,以提高速度,软件代码要求高质量和高可靠性。
⑤嵌入式软件开发要想走向标准化,就必须使用多任务操作系统。
嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行,但为了更合理的调度多任务,利用系统资源、系统函数,用户必须自行选配RTOS开发平台。
⑥执行的实时性、可靠性,并减少开发时间,保障软件质量。
基于S5PV210数码相框的设计与实现王莉莉【摘要】随着计算机技术、网络技术的蓬勃发展,嵌入式系统已经广泛应用于航空航天、网络通信和工业控制等各个领域.本文介绍了一个基于嵌入式技术的数码相册的设计和制作过程.设计的数码相框能实现翻页,放大、缩小等功能.【期刊名称】《山西电子技术》【年(卷),期】2015(000)001【总页数】3页(P32-33,57)【关键词】嵌入式技术;数码相册;浏览照片【作者】王莉莉【作者单位】苏州工业职业技术学院,江苏苏州215104【正文语种】中文【中图分类】TP368.1227当胶卷退出我们普通人的生活之后,拍摄-冲洗胶卷-扩印照片的经典流程也渐渐从我们身边消失。
取而代之的是,大量的数码相机用户群和种类繁多的各种存储介质。
数码相框则是目前回放这些照片的最好途径,作为浏览数字照片的核心产品,数码相框正迎合了消费者的需求。
1 系统需求分析许多人不明白数码相框的魅力到底在哪里。
时下拍摄的数码相片开始呈现出了几何级数的增长,要想再把这些相片都冲印出来回味、欣赏,浪费大量金钱不说,传统的相框、相册也无法再承担起保存的重任。
数码相框将彻底解放那些积压下来的数码相片,让你人生中值得记忆的每一个瞬间从此不再被埋没在硬盘里面。
数码相框可以用来美化家居,构造精致生活享受。
分享快乐、展示成功;带给父母,缓解思念;或者带入办公室,消解工作压力。
而和传统的相框相比,数码相框也具备了很多的优势。
数码相框采用了普通相框的外形,而且更为精致,用液晶显示屏来显示照片,配上电源、存储介质等,使多张相片能够在显示屏上循环播放,有的数码相框还增加了MP3 和MP4 等多媒体娱乐功能,比普通相框的单一功能更有优势。
作为消费类电子产品,数码相框必须考虑以下几个方面的功能:1)用户界面及接口友好,操作简便。
作为一个消费类电子产品,它的客户是多样化的,其中大部分都是非专业化的,甚至是老人或者是小孩,操作是否人性化、简洁化,成为能否让用户迅速接受产品的重要因素。
关于数码相框嵌入式实训报告范文实训报告范文标题:数码相框嵌入式实训报告一、实训目的和意义数码相框是一种利用液晶显示屏显示数字图像的装置,具有相册展示、广告宣传等功能。
通过本次实训,旨在掌握数码相框的嵌入式系统设计与开发技术,提升学生对嵌入式系统的理解和应用能力。
二、实训内容和方法1. 实训内容本次实训主要包括以下内容:(1)数码相框的硬件结构和工作原理学习;(2)数码相框的软件设计和程序开发;(3)数码相框的测试和优化。
2. 实训方法(1)理论学习通过课堂教学和自主学习,学习数码相框的相关理论知识,包括硬件结构、主要功能和工作原理。
(2)实践训练通过实际操纵数码相框的硬件组装和软件编程,完成数码相框嵌入式系统的开发和测试。
三、实训过程和结果1. 实训过程(1)准备工作了解数码相框的硬件结构和工作原理,查阅相关资料,熟悉嵌入式系统设计与开发的基本知识。
(2)硬件组装根据指导书和教师指导,完成数码相框的硬件组装,包括液晶显示屏、电路板、电源等的连接和安装。
(3)软件开发根据实训要求,使用相应的开发工具,编写嵌入式系统的软件程序。
包括图像显示、自定义菜单、画面切换等功能。
(4)测试和优化对嵌入式系统进行测试,检查是否能正常显示图像、实现菜单操作等功能。
对软件进行优化,提高系统的稳定性和响应速度。
2. 实训结果经过实训的努力,成功完成了数码相框的嵌入式系统设计和开发。
实现了图像的显示、菜单的操作、画面的切换等功能,并且系统性能稳定,响应速度较快。
四、实训体会和收获本次实训使我深入了解了数码相框的嵌入式系统,掌握了相关的设计和开发技术。
通过实践操作,我对嵌入式系统的工作原理和应用有了更深的理解,提高了解决问题的能力和实际操作能力。
在实训过程中,我还学到了团队合作的重要性。
与同学们一起学习、讨论和解决问题,相互支持和协作,达到了良好的实训效果。
同时,也加深了我对计算机科学和技术的兴趣和热情,为我今后的学习和职业发展奠定了坚实的基础。
电力学院本科毕业设计(论文)题目:基于QT的数码相框设计电力学院本科毕业设计(论文)题目:基于QT的数码相框设计院系:计算机与信息工程学院专业年级: 2007电子科学与技术学生:学号:指导老师:2011年月日毕业设计(论文)原创性声明和使用授权说明原创性声明本人重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。
尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。
作者签名:日期:学位论文原创性声明本人重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日指导教师评阅书评阅教师评阅书教研室(或答辩小组)与教学系意见基于QT的数码相框设计摘要随着现代科学技术的飞速发展,人类历史即将进入一个崭新的时代。
基于STM32数码相框的设计与实现崔晓康;范馨予【摘要】数码相框作为嵌入式设计的典型应用,相对于普通相框来说更加灵活多变.基于STM32系列嵌入式开发板丰富的外围设备,使得数码相框的到了进一步的发展.本系统采用STM32作为控制核心,添加了多种格式汉字显示、并移植了FATFS 去读取相关文件信息的功能,研究实现了对SD卡里多幅图片多种格式(如bmp、jpg/jpeg、gif)以幻灯片形式在TFT屏上动态显示的效果,同时连接显示了相应图片内容的文字信息,并且增加了按键控制,使得数码相框的设计更加人性化.【期刊名称】《电子世界》【年(卷),期】2016(000)021【总页数】3页(P111-113)【关键词】嵌入式;STM32微处理器;数码相框;图片解码【作者】崔晓康;范馨予【作者单位】北方工业大学电子信息工程学院通信工程系;北方工业大学电子信息工程学院通信工程系【正文语种】中文近年来,随着数字技术的快速发展,各种数字类产品遍布全球,数字图像的数量也正以惊人的速度增长,为了更加方便快捷的查看图像,高速浏览图片的设备应运而生,数码相框采用传统的外观造型,只是把传统外观部分换成了液晶显示屏,加上外围设备以及供电模块等,就可以实现数码照片的直接显示,与此同时还可以循环显示照片,实现幻灯片的效果。
这给日益增多的数字照片和摄影爱好者们提供了一个很好的照片展示平台和空间。
数码相框拥有相当大的优势,使用简单,直接从数码相机中取出记忆卡插入到数码相框卡槽中即可浏览;无需像之前那样繁琐,无需电脑,更不需要冲洗打印,各种格式的数字图片均能够快速显示。
嵌入式是当今最热门的概念之一,它具有体积小、性能强、功耗低、可靠性高以及面向行业应用等突出特征。
嵌入式系统将先进的半导体技术、计算机技术和电子技术,以及各个行业的具体应用相结合,是一个技术密集、资金密集、学科交叉和不断创新的知识集成系统。
因此基于嵌入式的各种数码相框的设计已经成为目前研究的热点。
嵌入式课程设计基于SDL的数字相框班级:学院:指导老师:姓名:一.嵌入式课程设计概述:本程序基于SDL开发的一个带有幻灯片功能的数字相框。
二.课程设计的目的:本课程设计的目的是通过开发一个消费类电子产品——数字相框,了解嵌入式产品开发的主要步骤,包括需求分析、系统结构设计、图形界面设计、驱动程序、功能优化、系统测试等,从而培养自己独立完成比较复杂的实际系统设计的能力。
三.课程设计内容:3.1设计的内容利用SDL实现图片的调用的功能,利用信号来实现图片的播放功能,利用SDL的可移植性,将该设计方案移植到开发板上,该数字相框的功能包括以下方面:(1)在LCD屏上全屏循环显示多幅图像文件;(2)根据设定的时间间隔更新图像;(4)通过键盘进行操作;四.总体设计:数字相框软件系统功能分为三个模块:1)图片浏览模块,可以通过按键控制选定某个图像或更新图像页(上一页、下一页)。
2)播放模块,对浏览界面选定的图片进行循环播放。
3)退出模块,退出图片播放和退出程序。
功能模块组织架构图:五.详细设计:该程序分为2个部分:一部分为用户界面层,一部分为功能模块层。
5.1用户界面层代码设计如下:int Init() //初始化SDL{if(( SDL_Init(SDL_INIT_VIDEO) | IMG_Init(IMG_INIT_PNG) )){fprintf(stderr,"SDL init error:%s",SDL_GetError());return -1;}return 0;}void creatScreen(int width , int height , Uint8 bpp , Uint32 flags) // 创建屏幕640*480 0 SDL_SWSURFACE{screen = SDL_SetVideoMode(width , height, bpp , flags);if(screen == NULL){fprintf(stderr,"Could not Creat a Screen!:%s",SDL_GetError());exit(1);}return;}void show_Pic(SDL_Surface *bmp ,SDL_Rect *rect) //显示图片{SDL_BlitSurface(bmp , NULL , screen , rect);SDL_UpdateRect(screen , 0 , 0 , 0 , 0 );SDL_FreeSurface(bmp);return ;}int appMode(){int width = WIDTH;int heigth = HEIGTH;Uint8 bpp = 0;Init();creatScreen(width , heigth, bpp , SDL_SWSURFACE);backpng = IMG_Load("./image/beijing.jpg");show_Pic(backpng ,&(screen->clip_rect));SDL_Delay(3000);caidan();SDL_WM_SetCaption(TITLE_NAME, ICON_NAME); //设置窗口标题return 0;}效果如下图:封面:菜单:5.2.功能模块实现代码:int getRightPic(int a){a++;if(a > 15 ){a = 0;return a;}int getLeftPic(int a){a--;if(a < 0){a = 15;}return a;}int ShowPic(char *string) //更换显示图片{if(strcmp(string , "left") == 0){i = getLeftPic(i);}elsei = getRightPic(i);backpng = IMG_Load(picture[i]);if(!backpng){fprintf(stderr,"Could not load %s: %s\n",picture[i],SDL_GetError());exit(1);}SDL_Rect rect;rect.x = (screen->w - backpng->w ) / 2;rect.y = (screen->h - backpng->h ) / 2;rect.w = backpng->w;rect.h = backpng->h;SDL_UpdateRect(screen , 0 , 0 , 0 , 0 );show_Pic(backpng , &rect);return 0;}int caidan(){png = IMG_Load("./image/caidan.jpg");show_Pic(png ,&(screen->clip_rect));}void timefunc(int sig) /* 定时事件代码*/ShowPic("left");signal(SIGPROF, timefunc); /* 捕获定时信号*/}void xinhao(int signo){if(signo == SIGALRM){//printf("123\n");}else{signal(SIGALRM, timefunc);struct itimerval value;value.it__sec=3; /* 定时3秒后启动定时器*/value.it__usec=0;value.it__sec=3; /* 每隔3秒执行下一个相应的函数*/ value.it__usec=0;signal(SIGPROF, timefunc); /* 捕获定时信号*/setitimer(ITIMER_PROF, &value, NULL); /* 定时开始*/int ret = setitimer(ITIMER_REAL,&value,NULL);}}int main(int argc,char **argv){appMode();int i=0;double zoom_x,zoom_y;SDL_Event event;while(SDL_WaitEvent(&event)){switch(event.type){case SDL_KEYDOWN:if(event.key.keysym.sym == SDLK_ESCAPE){goto loop;}/*if(event.key.keysym.sym == SDLK_SPACE){xinhao(0);}if(event.key.keysym.sym == SDLK_END){alarm(1);SDL_Delay(1000);caidan();} */break;case SDL_KEYUP:if(event.key.keysym.sym == 276){ShowPic("left");}if(event.key.keysym.sym == 275){ShowPic("right");}break;case SDL_QUIT:printf("quit\n");goto loop;break;}}loop:raise(SIGKILL);return 0;}效果如下图:六.在开发板上移植:6.1.安装arm-linux交叉编译库.6.2.对SDL进行交叉编译安装,对程序进行交叉编译。
一、实训背景随着信息技术的飞速发展,嵌入式系统在各个领域得到了广泛应用。
数码相框作为智能家居的一部分,其功能也逐渐丰富,对嵌入式系统的要求也越来越高。
为了更好地掌握嵌入式系统的设计与应用,提高实践能力,我们开展了数码相框嵌入式实训项目。
二、实训目的1. 熟悉嵌入式系统的基本原理和开发流程。
2. 掌握嵌入式硬件平台(如Blackfin处理器)的原理和应用。
3. 学习嵌入式操作系统(如uClinux)的使用和编程。
4. 掌握嵌入式软件开发工具和调试方法。
5. 设计并实现具有WiFi无线连接、电子邮件发送、RSS新闻阅读、即时照片分享、全触摸操作等功能的数码相框。
三、实训环境1. 硬件平台:Blackfin处理器、数码相框外壳、显示屏、WiFi模块、传感器等。
2. 软件平台:uClinux操作系统、嵌入式开发工具(如Eclipse、Keil等)、编程语言(如C/C++)等。
四、实训原理1. Blackfin处理器:Blackfin处理器是一款高性能、低功耗的嵌入式处理器,具有强大的多媒体处理能力,适用于数码相框等应用。
2. uClinux操作系统:uClinux是一种轻量级的嵌入式操作系统,适用于资源受限的嵌入式设备。
3. WiFi模块:WiFi模块用于实现数码相框的无线连接功能,可以方便地实现照片分享、新闻阅读等应用。
4. 传感器:传感器用于采集环境信息,如温度、光线等,可以用于调整相框显示效果。
五、实训过程1. 硬件设计:根据数码相框的功能需求,设计硬件电路,包括Blackfin处理器、显示屏、WiFi模块、传感器等。
2. 软件设计:编写嵌入式应用程序,实现数码相框的各项功能,如照片展示、新闻阅读、WiFi连接等。
3. 系统集成:将硬件和软件进行集成,调试系统,确保系统稳定运行。
4. 功能测试:对数码相框的各项功能进行测试,确保功能正常。
六、实训结果1. 硬件设计:成功设计并搭建了数码相框的硬件电路,包括Blackfin处理器、显示屏、WiFi模块、传感器等。
第35卷第3期应用科技Vol .35,№.32008年3月App lied Science and Technol ogyMar .2008文章编号:1009-671X (2008)03-0030-04基于μC /G U I 图形系统在数码相框中的应用温泽宇,刁 鸣,张 浩(哈尔滨工程大学信息与通信工程学院,黑龙江哈尔滨150001)摘 要:介绍了自主研发的数码相框硬件平台及其软件图形系统μC /G U I 的应用,详细设计了μC /G U I 在该平台上的移植过程和中文显示方法,同时对此移植过程中所需要的注意事项进行了说明.经测试,该应用是成功的.关键词:μC /G U I ;数码相框;图形系统;移植中图分类号:TP316 文献标识码:AAppli cati on of μC /GUI graphi c syste m in di git al framesW EN Ze 2yu,D I A O M ing,ZHANG Hao(College of I nf or mati on and Communicati on Engineering,Harbin Engineering University,Harbin 150001,China )Abstract:I n this article,we p r opose a ne w digital fra me hard ware p latf or m as well as the app licati on of its μC /G U I graphic syste m.Moreover,the porting p r ocess of μC /G U I in the p latf or m and the dis p lay of Chinese characters are de monstrated in detail,al ong with a note f or any latent risks .The p ractical tests p r ove the effectiveness of this meth 2od .Keywords:μC /G U I ;digital fra me;graphical syste m;porting收稿日期:2007209221.作者简介:温泽宇(19812),男,硕士研究生,主要研究方向:通信与信息系统,E 2mail:wenzeyu@hubeu .edu .cn .μC /G U I 是美国M icriu m 公司出品的一款针对嵌入式系统的优秀图形软件.它可以在μC /OS 2II 上运行,也可以独立运行;它还具有代码公开、可移植性好、可裁减和可靠性高等特点.采用μC /G U I 可以在液晶显示器(LCD )上清晰地显示文本、图片,更可以添加窗口对象,如按键、滚动条等,实现类似W in 2dows 的操作.文中通过移植μC /G U I 到AT056T N52液晶显示器的过程,说明了使用μC /G U I 作为图形界面移植到数码相框系统上的原理和方法.1 数码相框硬件平台结构采用的硬件系统是自主研发的硬件平台.该平台采用的主芯片是著名的LSI Logic 公司生产的ZE V I O 1020芯片.该芯片是专门针对嵌入式系统设计开发的.它是一个双核结构,由AR M 核“AR M926EJ ”和DSP 核“ZSP400”构成.AR M 核用来进行图形显示、音频解码等功能的运算,而DSP 核则作为协处理器在视频解码时辅助运算.硬件平台的整体设计是围绕ZEV I O 1020芯片来完成的.在外围,图形显示使用5.6寸液晶显示器AT056T N52,程序存储则选用32M 的Flash 和数据缓存设备512M 的S DRAM ,它们构成了该平台的核心结构,实现了数码相框的基本功能.为了扩展网络下载、存储扩展和输入控制等功能,还添加了S D 扩展槽、以太网卡以及键盘等相关设备.图1为该硬件平台的截图.2 LCD 的驱动2.1 设置LCD 时序不同的LCD 对应着不同的驱动程序,驱动LCD 最重要的是定制好时序,AT056T N52液晶显示器具有2种时序模式[1](DE 模式和HV 模式).这里采用的是HV 模式.图2为HV 模式的时序图.即在lcddriver .h 中加入如下定义:SetSignalPolarrity (0x06);//设置信号极性Set H sync1(0x86,0x10);//设置水平同步前后边沿Set H sync2(0x0b );//设置水平同步脉宽Set V sync1(0x0b,0x20);//设置垂直同步前后边沿Set V sync2(0x01);//设置垂直同步脉宽图1 硬件平台截图图2 HV 模式时序图2.2 设置显示屏ZEV I O 1020芯片集成了一个独立处理显示的模块DP U,它由2D 图形控制器、LCD 控制器和NT 2SC /P AL 编码器3部分构成.因此对LCD 的初始化还应该添加对DP U 模块的初始化,对LCD 的读写控制也即转化为对DP U 模块的控制.2D 图形控制器将LCD 屏又分成6个层,这6个层分别是4个8×8族像素点的2D 屏,一个16位RG B 色的3D 屏和一个具有YCbCr 格式的视频输出屏,需处理每个屏的显示.图3为LCD 屏的层次结构[2].(其中3D 屏的位置可放在其他5个屏中间应用,也可放在最上层应用).核心设置如下:Set D is p lay Mode (TFT_MODE );//设置为TFT 显示模式Set D is p laySize (480,640);//设置显示区域Set2Screen Mode (0x0);//设置2D 屏幕的模式Set M ask I nterrup t (0x0);//设置屏蔽中断Set RowHeight (0x2);//设置行高度Set V ideoFetchLength (0x0b );//设置视频窗口的数据预取长度Set V ideoContr ol (ScreenOff _2D,Screen Off _2D ,Screen I nFr ont O fSCR1_3D,Out put RG BMode,ScreenOff _2D,ScreenOff_2D ,A l pha B lendingoff,Scr On,Scr Off,Scr Off,Scr Off,Scr Off,Scr Off )//设置6个屏的控制字以上设置指定了3D 屏的位置,取消了A l 2pha B lending 显示,同时将SRC1、SRC2、SRC3屏幕关闭,使用最上层的SRC4屏作为2D 显示屏.图3 LCD 屏的层次结构需要注意的是,一些与LCD 相关的硬件管脚的配置也是个重要环节,与LCD 相关的管脚有17个,定制这些与LCD 相关的管脚为输出模式:SetGp i o2D irecti on1(0xff );SetGp i o2D irecti on2(0xff );SetGp i o2D irecti on3(0x1)(ff 代表8个管脚).3 μC /G U I 的移植μC /G U I 是个分层结构,可分为3层:底层是LCD 驱动层,中间层是基本图形绘制层,顶层是窗・13・第3期温泽宇,等:基于μC /G U I 图形系统在数码相框中的应用口管理层.移植μC/G U I实际上就是对底层软硬件接口进行配置.具体的接口函数如表1所示.这些接口函数定义主要集中在LCD.H和LCDConfig.h2个头文件中,而函数实现则是在LCDD river目录下的具体驱动函数中.这里以LCDDummy.c文件为基础进行修改,编写针对AT056T N52液晶显示器的驱动文件,实现对μC/G U I的移植.3.1 与LCD移植相关的函数定义LCDConfig.h文件是LCD的基本配置文件,定义了LCD的尺寸、控制器、色深、总线配置和寄存器配置等.G U I Config.h文件是上层G U I的基本配置文件,定义了包括触摸屏、字体、窗口、抗锯齿等在内的μC/G U I整体配置信息,与底层LCD驱动息息相关.LCDDu mmy.c文件是LCDD river目录下的驱动参考文件,包含了具体的LCD与G U I接口函数的实现,包括画点、画线、区域填充、b mp位图显示等操作[3].表1 接口函数表函数名称功 能LC D_L0_I nit()初始化LC D函数LC D_On()开显示LC D_Off()关显示LC D_L0_SetPixel I ndex()以指定颜色画点LC D_L0_D ra w HL ine()以指定颜色画水平线LC D_L0_D ra w VL ine()以指定颜色画垂线LC D_L0_Xor Pixel()翻转指定点颜色LC D_L0Fill Rect()矩形填充LC D_L0_D ra w B it m ap()画位图3.2 修改驱动函数修改G U I Config.h文件,在这里由于数码相框暂时不需要类windows对话框窗口和触摸屏支持,故将他们先屏蔽掉,定义值为0.修改LCDConfig.h文件.将LCD尺寸定义为640×480.将LCD_READ_ME M(Off)初始值修改为(0x0700000+(((U32)(Off))<<1))),因为开辟的显示内存区是从0x0700000开始,故将原初始地址0x0c00000更改为0x0700000.同理将LCD_WR I TE_ME M(Off,data)修改为(0x0700000+ (((U32)(Off))<<1)))=data.修改LCDDummy.c文件.修改该文件其实就是对画点函数的修改,因为画点操作是最基本的绘制操作,其他所有绘制操作,如画线、区域填充等都是由画点操作完成的,所以核心接口函数的配置主要就是对画点操作的配置,在LCD_L0_SetPixelI ndex 中添加如下代码:void LCD_L0_SetPixelI ndex(int x,int y,int Pix2 elI ndex){U323LcdBase Address;//定义基地址变量U323Real A ddress;//定义物理地址变量Lcd Base Address=0x00700000;//设置基地址初值Real A ddress=Lcd Base Address+((LCD_XSI ZE 3(yPhys21)+xPhys)<<1);//读取内存信息3Real A ddress=(U16)PixelI ndex;//象素点传递}通过上述修改即可将线性内存中的数据以像素点的形式显示在LCD上,实现软硬件的交互[4].除了LCD_L0_SetPixelI ndex()函数外,关于画点操作还有LCD_L0_GetPixelI ndex()和LCD_L0_ XorPixel()函数.LCD_L0_GetPixelI ndex()函数的功能是返回像素点的信息,LCD_L0_XorPixel()的功能则是将像素点的颜色取反,实现“反白”的效果.因为本数码相框没有设计用户输入模式,只是将μC/G U I作为图形显示基础,所以不必修改这2个函数.3.3 实现汉字化μC/G U I支持包括ASC II、I S O8859-1、Unicode 在内的多种字符集和编码.它的字体显示方式采用的是点阵的形式,具有8×8,6×8,16×8,16×16等各种点阵形式,这里运用的是16×16点阵,即用16×16点阵来显示处理汉字,将汉字点阵封装成一个C库文件,并将其与μC/G U I整体编译在一起.因为μC/G U I源代码中没有提供这个中文的字库源码HZK.C,所以需要利用汉字库生成,然后将生成的HZK16.C字库文件添加到μC/G U I的f ont路径下,进行整体编译[5].・23・应 用 科 技 第35卷首先需在G U I.h中加入汉字字库的声明:extern G U I_CONST_ST ORAGE G U I_F ONT G U I_ Font HZ_FangSong_16;然后在G U I_Config.h中更改默认字体:#define G U I_DEF AULT&G U I_Font HZ_Fang Song_16;需要注意的是,每个控件都有自己的默认字体,所以在调用按键、滚动条、FREAM等控件前,也必须更改其默认字体,如在调用Fra me时可定义: FRAME W I N_Set D efaultFont(&G U I_Font HZ_Song_ 16).3.4 μC/G U I的编译为了与其他模块设计者的编译结果相配合,文中没有在传统的I A R或ADS编译器下进行编译.而是利用L I N UX下的GCC编译器进行编译,直接生成能在AR M9内核下运行的二进制代码.这里安装的是Fedora Core5操作系统,该操作系统下的GCC 版本为4.1V isi on.在L I N UX环境下进行编译,必须首先创建Makefile文件,Makefile文件的创建相对简单.这里采用的方法是:首先在Makefile文件中将所有的C 文件和汇编文件交叉编译成针对AR M9平台所需的3.o目标文件,再通过静态库链接命令生成lib2 gui.a静态库文件,最后将顶层的函数与该静态库文件整体交叉编译生成可执行文件.该编译的关键点在于如何生成libucgui.a文件和如何调用该静态库文件生成可执行的main.out 文件.前者可利用AR命令ar ruv libgui.a3.o将所有的目标文件链接成libgui.a静态库文件,并通过ranlib命令创建索引列表实现;后者则可通过GCC 命令gcc main.c2L.–lgui2o main实现.通过上述编译过程就轻松实现了整个μC/G U I的移植.4 结束语在该数码相框的设计中没有添加用户输入模式,故不需要在移植μC/G U I的时候添加鼠标驱动,但针对键盘驱动是必要的,一些基本操作是由键盘来完成的,而且在扩展数码相框功能的时候,还加入了MP3播放器、视频播放器和一些小游戏.因此添加了一个16键的键盘,定义了开关钮、快进钮、暂停钮、滚动条等一些按键事件,并将这些按键事件封装为一个函数,添加到G U I_OnKey.c文件中,实现驱动.由于该操作相对简单,这里就不再赘述了.通过测试,已将μC/G U I成功地应用到了数码相框中,并使其作为基本的图形系统而加载了音频和视频功能,表明该G U I具有完备的图形环境、良好的可移植特性、占用资源少等优点,非常适合嵌入式系统开发应用.参考文献:[1]I nnolux D is p lay Cor porati on.AT056T N52module s pecifica2ti on[Z].Tai pei:I nnolux D is p lay Cor porati on,2007.[2]ZE V I O_1020Technol ogies M annual[Z].Santafe:LSI LogicConfidential,2006.[3]M icriu m Technol ogies Cor porati on.μC/G U I visi on3.90mannual[Z].Sandego:M icriu m Technol ogies Cor porati on, 2006.[4]刘 滨,王 琦,刘丽丽.uC/G U I在M SG19264液晶上的移植[J].电子技术应用,2004,8:427.[5]孙晓辉,陈 晓.基于ucG U I的图形系统在机顶盒中的应用[J].中国有线电视,2007,9/10:9092913.[责任编辑:张晓京]・33・第3期温泽宇,等:基于μC/G U I图形系统在数码相框中的应用。
内蒙古工业大学信信工程 0 嵌入式系统综合设计说明书 题 目: 基于嵌入式的数码相框设计 ****:*** 组 别: 学 院: 信息工程学院 班 级: 计08-3班 指导教师: 刘志强 王晓强 庄旭菲 张迪 高晓松
2011年9 月 20 日
学校代码: 10128 学 号:**********xx 内蒙古工业大学信信工程
1 摘要 .................................................................................................................................................. 2 ABSTRACT ...................................................................................................................................... 2 一、设计任务与要求 ....................................................................................................................... 3 1、任务: ................................................................................................................................. 3 2、要求: ................................................................................................................................. 3 二、设计方案 ................................................................................................................................... 3 1、总体设计功能 ..................................................................................................................... 3 2、设计思路: ......................................................................................................................... 4 3、显示图片: ......................................................................................................................... 4 4、鼠标控制: ......................................................................................................................... 4 5、网路检测更新图片下载: ................................................................................................. 4 三、软件设计 ................................................................................................................................... 4 1、主要模块流程图 ................................................................................................................. 4 2、部分程序清单及注释 ......................................................................................................... 6 2.1、客户端主程序: ...................................................................................................... 6 2.2、三种图片更换效果 .................................................................................................. 8 3、服务器端程序流程图 ....................................................................................................... 13 4、服务器端主程序: ........................................................................................................... 14 四、调试过程 ................................................................................................................................. 17 1、实验步骤 ........................................................................................................................... 17 1.1、进入linux环境,启动两个终端,一个用于服务器程序,一个用于客户端程序。 ................................................................................................................................. 17 1.2、解压freetype_2.3.11.tar.bz2文件,进入其目录下,输入make命令进行编译连接。 ......................................................................................................................... 17 1.3、在命令行执行source ./dpf.sh shell文件。 ............................................... 17 1.4、在命令行 sudo chmod 777 /dev/fb0 sudo chmod 777 /dev/input/mice 命令,输入密码即可。 ..................................................................................................... 17 1.5、启动服务器终端,在命令行使用make命令,输入./server运行程序。 .. 17 1.6、启动客户终端,在命令行使用make命令,输入./client运行程序。 ........ 17 2、出现的问题 ....................................................................................................................... 17 2.1、每当鼠标滑过都会有痕迹留下,看上去很像画笔。 ....................................... 17 2.2、程序编译时出现段错误。 ................................................................................... 17 2.3、下载文件时出现阻塞现象。 ............................................................................... 17 3、解决方法 ........................................................................................................................... 17 3.1、在鼠标绘制前保留一下上一时刻鼠标锁在位置的像素值,鼠标过后在还原,问题解决。 ..................................................................................................................... 17 3.2、出现段错误的地方很多,原因也很多一般是越界了,把内存地址中的其他值给冲掉了,用gdb调试即可找到问题所在。 ............................................................. 18 3.3、下载文件时出现阻塞现象的可能原因是套接字read与write不同步,还有可能是文件读完了,获得不到中断信号,退不出循环体,这是只要获得文件的大小即可(获取文件大小用lseek函数)。 ........................................................................... 18 五、总结......................................................................................................................................... 18 六、参考文献 ................................................................................................................................. 19