数码相框嵌入式课程设计正文
- 格式:doc
- 大小:507.00 KB
- 文档页数:11
基于ARM的嵌入式电子相框系统..华南师范大学嵌入式系统课程设计报告设计题目:基于ARM的嵌入式的电子相框系统专业班级电路与系统学院物理与电信工程学院指导教师熊爱民姓名学号XXXX年12 月25日基于ARM的嵌入式电子相框系统摘要:本设计采用搭载飞思卡尔的MCIMX28x 芯片的Esayarm-基于ARM的嵌入式的电子相框系统专业班级电路与系统学院物理与电信工程学院指导教师熊爱民姓名学号XXXX年12 月25日基于ARM的嵌入式电子相框系统摘要:本设计采用搭载飞思卡尔的MCIMX28x 芯片的Esayarm:用户通过对界面的操作就可对数码相框中图片的浏览与管理,以及进行幻灯片播放功能,实现个人图片的掌上管理。
关键词:linux嵌入式系统;周立功开发板;虚拟机环境;移植。
目录1. 61设计内容71.1 设计目的71.2 设计意义71.3电子相框的设计任务和要求82. 周立功开发板的介绍92.1Esayarm-linux嵌入式系统;周立功开发板;虚拟机环境;移植。
目录1. 61设计内容71.1 设计目的71.2 设计意义71.3电子相框的设计任务和要求82. 周立功开发板的介绍92.1Esayarm:support for frame buffer devices (4)编译5.2 关于触摸屏驱动的配置对于触摸屏驱动的设计,本文采用的是基于Linux本身自带的输入子系统方式设计的,由于设计的代码比较繁杂,所以本文列出其主要的设计方法,主要的设计方法如下:(1)设置输入结果input_dev: (A)通过设置struct input_dev 的evdev数组表示能产生key和ABS类事件。
(B)设置产生key和ABS类事件里面的触摸按键事件,X/Y绝对位移,绝对位移压力事件。
(2)硬件操作:(A)ioremap寄存器(B)设置AD分频系数和ADCDLY (C)注册INT_TS和AD中断6电子相框的效果演示及功能测试6.1 电子相框性能分析方法简述本设计是一个能够读取指定位置照片的电子相框,选择自动浏览模式时能够自动播放该目录下的所有照片,选择手动模式能读取操作者在触摸屏上发出的指令,是否能够流畅显示照片,是否能显示主页面和子页面,便可判断该电子相框的性能。
关于数码相框嵌入式实训报告范文实训报告范文标题:数码相框嵌入式实训报告一、实训目的和意义数码相框是一种利用液晶显示屏显示数字图像的装置,具有相册展示、广告宣传等功能。
通过本次实训,旨在掌握数码相框的嵌入式系统设计与开发技术,提升学生对嵌入式系统的理解和应用能力。
二、实训内容和方法1. 实训内容本次实训主要包括以下内容:(1)数码相框的硬件结构和工作原理学习;(2)数码相框的软件设计和程序开发;(3)数码相框的测试和优化。
2. 实训方法(1)理论学习通过课堂教学和自主学习,学习数码相框的相关理论知识,包括硬件结构、主要功能和工作原理。
(2)实践训练通过实际操纵数码相框的硬件组装和软件编程,完成数码相框嵌入式系统的开发和测试。
三、实训过程和结果1. 实训过程(1)准备工作了解数码相框的硬件结构和工作原理,查阅相关资料,熟悉嵌入式系统设计与开发的基本知识。
(2)硬件组装根据指导书和教师指导,完成数码相框的硬件组装,包括液晶显示屏、电路板、电源等的连接和安装。
(3)软件开发根据实训要求,使用相应的开发工具,编写嵌入式系统的软件程序。
包括图像显示、自定义菜单、画面切换等功能。
(4)测试和优化对嵌入式系统进行测试,检查是否能正常显示图像、实现菜单操作等功能。
对软件进行优化,提高系统的稳定性和响应速度。
2. 实训结果经过实训的努力,成功完成了数码相框的嵌入式系统设计和开发。
实现了图像的显示、菜单的操作、画面的切换等功能,并且系统性能稳定,响应速度较快。
四、实训体会和收获本次实训使我深入了解了数码相框的嵌入式系统,掌握了相关的设计和开发技术。
通过实践操作,我对嵌入式系统的工作原理和应用有了更深的理解,提高了解决问题的能力和实际操作能力。
在实训过程中,我还学到了团队合作的重要性。
与同学们一起学习、讨论和解决问题,相互支持和协作,达到了良好的实训效果。
同时,也加深了我对计算机科学和技术的兴趣和热情,为我今后的学习和职业发展奠定了坚实的基础。
粤嵌开发板电子相册嵌入式课程设计课程设计说明书题目:电子相册课程名称:嵌入式系统学院:专业:学号:姓名:指导教师:完成日期: 6月10日目录1. 设计的工程背景 .................................................... 错误!未定义书签。
1.1 任务阐述 ...................................................... 错误!未定义书签。
1.2 任务分析 ....................................................... 错误!未定义书签。
1.3 课题项目管理计划进度表 ............................ 错误!未定义书签。
2.工程设计方案......................................................... 错误!未定义书签。
2.1 系统方案设计................................................ 错误!未定义书签。
2.2 硬件电路设计................................................ 错误!未定义书签。
2.3 软件程序设计................................................ 错误!未定义书签。
3. 方案实施................................................................ 错误!未定义书签。
3.1软件程序调试过程........................................ 错误!未定义书签。
4. 结果与结论............................................................ 错误!未定义书签。
嵌入式课程设计基于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、要求:1、在Linux 环境下搭建系统平台。
2、实现多张图片的动态显示。
3、通过修改代码获得不同的图片显示效果。
4、搭建虚拟机,安装linux 系统。
指导教师签名:年月日二、指导教师评语:指导教师签名:年月日三、成绩评定:指导教师签名:年月日四、系部意见:系部盖章:年月日嵌入式电子相框一、设计目的1、熟悉Linux 开发环境。
2、掌握用C语言编写图片动态显示模块代码。
3、掌握linux环境下,图像显示的基本原理,硬件显示的驱动和内存的关系。
4、学会在linux 下的常用命令。
5、熟悉Linux开发流程。
二、设计思路1、搭建linux 环境,利用Vmware 工具,在Window 操作系统下安装虚拟机,在虚拟机下新建linux Ubuntu 系统环境。
2、在Linux环境下,编写图像显示的可执行代码,已用Linux 本身环境下自带的驱动和内存可执行程序,编写可执行代码,将图像像素点写入Linux显示的缓存及内存,使其显示。
3、程序模块中,实现将图像数据做成一个个像素点,写入显示内存。
三、设计过程3.1、系统方案论证先将图片写入编写的可执行文件jpeg-8中,将内存显示路径指向文件jpeg-8文件包中,显示时,先调用用缓存framebuffer ,进而调用文件jpeg-8获得图像显示。
3.2、模块电路设计利用framebuffer 文件将图像像素点写入:Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer 这个设备来供用户态进程实现直接写屏。
Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。
中北大学毕业论文开题报告学生姓名:陈飞学号:0905014222学院、系:信息与通信工程学院、光电工程系专业:电子信息科学与技术论文题目:基于嵌入式linux的数码相框的设计指导教师:程耀瑜2013年3月14日ﻬ毕业论文开题报告1.结合毕业论文情况,根据所查阅的文献资料,撰写2000字左右的文献综述:[9]孙琼.嵌入式Linux 应用程序开发详解[M]. 人民邮电出版社, 2006.[10]YagbmourK,秦云川. 构建嵌入式Linux系统[M].中国电力出版社,2011.[11] 周立功, 陈明计,陈渝. ARM 嵌入式Linux系统构建与驱动开发范例[M]. 北京航空航天大学出版社, 2006.[12]孙纪坤, 张小全.嵌入式Linux 系统开发技术详解: 基于ARM[M]. 人民邮电出版社,2006.[13] Yaghmour K,Masters J, Ben-Yossef G,etal.Building embedded Linux systems[M]. O'Reilly Media,Incorporated, 2008.[14] SallyG.Pro Linux EmbeddedSystems[M].Apress, 2009.[15] Williams JA, Bergmann N W. EmbeddedLinux as a platform for dynamically self-reconfiguring systems-on-chip[C]//The InternationalConferenceon Engineering ofReconfigurable Systemsand Algorithms. CSREA Press, 2004: 163-169.ﻬ毕业论文开题报告2.本课题要研究或解决的问题和拟采用的研究手段(途径):一、本课题主要解决的问题1.熟悉AR M9微处理器的使用方法、b ootl oader 移植、Li nux 内核以及文件系统移植的操作方法。
千里之行,始于足下。
关于数码相框嵌入式实训报告范文数码相框嵌入式实训报告一、实训目的本次实训的目的是为了让我们学会使用嵌入式系统中的硬件和软件来实现一个数码相框的功能。
通过这次实训,我们可以掌握嵌入式系统的基本原理和开发流程,提升我们的实际操作能力和问题解决能力。
二、实训内容1. 硬件部分在实训开始前,我们首先学习了数码相框的基本原理和硬件组成。
数码相框主要由显示屏、控制器和存储器组成,其中显示屏用来显示图片、控制器用来控制显示屏的工作状态、存储器用来存储图片等数据。
在实训中,我们需要完成以下硬件部分的实际操作:- 拆解和重新组装数码相框,熟悉数码相框的内部结构和各个组件的连接方式。
- 使用示波器测量和分析显示屏的信号波形,了解显示屏的工作原理。
- 使用逻辑分析仪分析控制器和存储器之间的数据传输过程,研究控制器的工作原理。
- 使用烙铁和焊锡线对数码相框的电路板进行维修和改装,提升我们的实际操作能力。
2. 软件部分在硬件部分的实训完成后,我们开始进行数码相框的软件开发。
数码相框的软件部分主要包括界面设计、数据处理和控制逻辑实现。
第1页/共3页锲而不舍,金石可镂。
在实训中,我们需要完成以下软件部分的实际操作:- 学习和掌握数码相框的软件开发流程,包括需求分析、系统设计、编码和测试等。
- 使用嵌入式开发平台进行软件开发,学习掌握C语言和嵌入式系统的编程技术。
- 实现数码相框的界面设计,包括菜单、图片浏览和设置等功能。
- 实现数码相框的数据处理功能,包括图片压缩和解压缩、图片格式转换等。
- 实现数码相框的控制逻辑,包括按键和触摸屏的事件处理、定时任务的调度等。
三、实训收获通过这次实训,我学到了很多关于嵌入式系统和数码相框的知识和技术。
在硬件部分,我学会了如何拆解和组装数码相框,熟悉了数码相框的内部结构和各个组件的连接方式。
我还学会了如何使用示波器和逻辑分析仪来分析和研究数码相框的工作原理。
在软件部分,我学会了使用嵌入式开发平台进行软件开发,掌握了C语言和嵌入式系统的编程技术。
qt数码相框课程设计一、课程目标知识目标:1. 学生能理解并掌握Qt编程基础,包括信号与槽机制、基本界面组件的使用;2. 学生能够了解数码相框的工作原理,掌握图像显示、文件读取等基本功能;3. 学生了解嵌入式设备的基本概念及其在生活中的应用。
技能目标:1. 学生能够运用Qt Creator开发环境设计并实现一个简单的数码相框程序;2. 学生通过实践操作,培养解决实际问题的能力,例如图片的读取、展示和切换;3. 学生能够通过小组合作,提高沟通与协作能力,共同完成项目任务。
情感态度价值观目标:1. 学生通过动手实践,培养对信息技术的兴趣,激发创新意识和探索精神;2. 学生在项目实施过程中,学会尊重他人意见,培养团队精神和责任感;3. 学生能够认识到编程在生活中的应用,增强学习信息技术的自信心和自觉性。
课程性质:本课程属于信息技术学科,结合实践操作,培养学生的编程技能和实际应用能力。
学生特点:考虑到学生所在年级,已具备一定的信息技术基础和逻辑思维能力,对新鲜事物充满好奇。
教学要求:注重理论与实践相结合,引导学生主动探究,鼓励小组合作,培养实际操作能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. Qt编程基础:- 界面组件的使用(教材第3章)- 信号与槽机制(教材第4章)- 文件读写操作(教材第5章)2. 数码相框工作原理:- 嵌入式设备基本概念(教材第6章)- 图像显示原理(教材第7章)- 图片读取与切换(教材第8章)3. 项目实践:- 设计并实现简单数码相框程序(结合第3-8章内容)- 小组合作完成项目任务,实现相框功能(讨论、实践)教学安排与进度:1. 第1-2课时:Qt编程基础,介绍界面组件使用、信号与槽机制;2. 第3-4课时:文件读写操作,讲解图片读取方法;3. 第5-6课时:数码相框工作原理,介绍嵌入式设备基本概念、图像显示原理;4. 第7-8课时:项目实践,分组讨论、设计并实现数码相框程序;5. 第9-10课时:项目完善与展示,小组合作完成相框功能,分享成果。
数码相框说明书数码相框说明书篇一:数码相框唐山学院嵌入式软件设计课程设计题目基于Linux数码相框的设计系(部) 计算机科学与技术系班级******** 姓名*** 学号********指导教师*****2012年7 月 2 日至7 月13 日共 2 周课程设计任务书课程设计成绩评定表1 引言基于linux的数码相框是可以在电脑上观赏的区别于CD/VCD的静止图片的特殊文档,其内容不仅可以是摄影照片,也可以是各种艺术创作图片。
数码相框比传统相册优越的地方在于:图、文、声、像并茂的表现方法。
随意设计功能,快速检索,增加功能,以廉价复制分发的优越手段。
更符合个性化需求。
最突出的个性化表现在图像播放特效可以自行设计,可以根据每张图片的内容而设计相应播放效果。
可以摆脱ppt播放效果的固定性。
制作数码相框首先要获得数字化的图片,即图片文件。
用数字相机拍摄,可以直接得到数码照片。
也可以使用普通相机拍摄,通过扫描仪得到图片文件。
将图片信息提取出,图片打印时,先把图片信息存储到framebuffer中,打印函数从framebuffer中读取图片信息。
2 FrameBuffer简介FrameBuffer 是出现在2.2.xx 内核当中的一种驱动程序接口。
通过定义结构体赋值初始化FrameBuffer。
Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。
Framebuffer 机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。
用户可以将显示缓冲区Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。
这种操作是抽象的,统一的。
用户不必关心物理显存的位置、换页机制等等具体细节,这些都是由Framebuffer设备驱动来完成的。
嵌入式数码相框设计摘要嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可以配置,通常对功能、可靠性、成本、体积、功耗有严格约束的一种专用计算机系统。
当前先进的嵌入式系统,通常由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及嵌入式应用程序四个部分组成,实计算机基于ARM Linux和Qt/Embedded的嵌入式数码相框系统的研究和实现应用系统,称为嵌入式系统、实时系统或者嵌入式实时系统。
根据目前国内外对嵌入式的研究和开发,结合实际的实验条件,本项目使用硬件平台广东省嵌入式软件公共技术中心开发的GEC2440开发板作为目标机,使用安装Windows XP的PC机作为宿主机,并在宿主机Windows平台上安装了一个虚拟机软件,虚拟机里安装的是Red Hat EnterpriseLinux 5作为开发环境。
主要实现工作包括:在宿主机上安装交叉编译工具,建立交叉编译环境,配置tftp、DNW(或超级终端)以建立嵌入式软件平台。
进行一个可以浏览与管理图片功能,且能进行幻灯片播放的课程设计。
针对项目需求实现对驱动程序的完善和移植,制作适合此开发板的根文件系统,最后将基于qt设计的应用程序程植到开发板上,实现个人图片的掌上管理。
关键词:嵌入式系统;GEC2440开发板;虚拟机环境;移植。
目录摘要 (2)Abstract (3)目录 (4)第一章概要 (5)第二章所需环境及设备 (6)2.1硬件部分: (6)2.1.1 GEC2440开发板介绍 (6)2.2软件部分 (7)2.2.1 Linux系统平台介绍: (7)2.2.2 QT/Embeded界面介绍: (7)第三章嵌入式开发环境的搭建 (7)3.1嵌入式交叉环境的概述 (8)3.2 交叉编译环境的搭建 (8)3.3交叉调试环境的搭建 (9)3.4交叉服务器的搭建 (10)3.5关于交叉调试 (10)第四章U-boot的移植 (10)4.1建立工作目录 (10)4.2设置环境 (11)4.3进入目录配置编译 (16)4.4 bootloader的烧写 (16)第五章 Linux内核的移植 (17)5.1 准备工作 (17)5.2 修改内核源码顶层 (17)5.3 修改机器码 (17)5.4 设置 flash 分区 (17)5.5 配置编译内核 (18)5.6 Linux内核编译 (22)5.7下载到开发板中测试 (22)第六章基于qt3平台的应用程序 (22)6.1新建一个数码相框工程 (23)6. 2函数源代码 (23)6.3在主机上运行 (35)6.4交叉编译生成目标文件 (36)6.5在目标板上运行 (36)第七章结束语 (37)2第一章概要1.1背景随着PC时代数码技术的发展,数码相机以其低廉的价格,方便的操作成为摄影器材未来的发展方向。
简易电子相框的设计摘要:嵌入式系统是在传统单片机等技术的基础上发展起来的一项结合硬件和软件应用广泛功能强大的系统。
嵌入式系统通过在软件平台编译控制程序并在硬件上运行,嵌入式软件的开发已经在工业各个方面都有很多应用,学习好嵌入式系统开发已成为现在从事电子研发人员必不可少的技能。
本次课程设计是基于嵌入式硬件平台,完成了有操作系统的嵌入式系统软件设计,通过在虚拟机平台上使用Linux操作系统实现在该操作系统下多任务程序开发,通过编译下载能够在超级终端显示信息,从而达到课程设计要求。
关键字:嵌入式系统;虚拟机;Linux操作系统;超级终端目录1.设计目的 (1)2.设计内容和要求 (1)2.1设计的内容 (1)2.2 要求 (1)3.设计步骤 (1)主要步骤和方法 (1)3.1数字相框软硬件平台的选择 (2)3.2数字相框的软件总体设计 (2)3.2.功能模块组织架构图 (2)4. 环境搭建 (3)5. 运行结果及调试 (6)6. 课程设计总结与体会 (8)参考论文: (9)正文1.设计目的开设本课程设计的目的是,通过本课程设计,提高学生的分析问题、解决问题的能力,巩固嵌入式系统的基本理论知识,进一步了解和掌握课程中所讲授的概念,方法。
同时通过本课程设计,全面综合应用所学过的基础知识,建立一个完整的嵌入式系统的开发过程的概念,并掌握其中的主要原理和方法本课程设计的目的是通过开发一个消费类电子产品——数字相框,了解嵌入式产品开发的主要步骤,包括需求分析、系统结构设计、图形界面设计、驱动程序、功能优化、系统测试等,从而培养学生独立完成比较复杂的实际系统设计的能力。
2.设计内容和要求2.1设计的内容作为一个消费类电子产品,数码相框整个系统要完成的基本功能大致如下:1、用户界面友好,操作简便。
由于该产品的使用者大多是非专业人士,用户界面是否清晰明了、操作是否简捷方便成为用户是否能迅速接受此产品的重要因素。
2、数字相框的功能应包括以下方面:(1)在LCD屏上全屏循环显示多幅图像文件;(2)根据设定的时间间隔更新图像;2.2 要求本课程设计要求学生根据实际应用的特点对产品进行完整的需求分析,形成比较完善的总体设计方案。
同时,要求学生具备Linux操作系统下简单的设备驱动程序开发、图形用户接口设计的能力。
此外,还要求读者掌握基本的系统功能及性能测试技术,从而具备比较全面的嵌入式应用系统开发能力。
3.设计步骤主要步骤和方法根据数字相框的主要特点和设计功能那个要求,我们将课设分为以下几个步骤:3.1、数字相框软硬件平台的选择性能方面,由于数字图像的解码算法比较复杂,而且大量图片需要从外部Flash存储器中读取,所以对嵌入式微处理器的性能要求比较高。
外部接口方面,该芯片最好能在外围直接支持CF卡的Compact Flash接口,还应提供按钮、LCD显示屏、触摸屏、声音输出通道等。
在本课程设计中,采用了Intel的PXA270作为微处理器,完全能满足上述硬件平台的要求。
数字相框属于消费类电子产品,对价格比较敏感,而嵌入式Linux操作系统上有比较丰富的软件资源、驱动程序和开发工具,因此本课程设计采用嵌入式Linux作为软件开发平台。
在Linux操作系统平台上有多种嵌入式图形界面开发工具可供使用,主要包括MicroWindows、MuniGUI、TinyX和Qt/Embedded等几种。
本课程设计将集中讨论在Qt/Embedded系统上数字相框的实现技术,当然也可以通过其他图形开发界面工具实现数字相框功能。
3.2、数字相框的软件总体设计数字相框软件系统功能可以划分为三个模块:1)图片浏览模块。
2)播放模块,对浏览界面选定的图片进行循环播放。
3.2功能模块组织架构图4.环境搭建将Linux和开发板的系统搭建好之后,拔掉计算机主机箱网线后,用网线将主机箱和开发板连接,并将串口连接,将开发板电源连接上,启动开发板。
然后配置Internet协议,让开发板连接到电脑。
配置Internet属性如图所示:在SHARE共享文件中新建文件夹,将要编辑的图片和音乐和编辑文件放入其中,如图所示:虚拟机上编译结果:ARM执行结果如下:循环8张图片的同时播放音乐。
核心代码如下:f ( pid == 0 ){ /* 子进程*/printf("child_pid= %d\n",getpid());for(;;){system("./Audio_player RedStream.wav");pause();}if(i>12){kill(child_pid,SIGINT); //结束子进程kill(getpid(),SIGINT); //结束父进程}}exit(0);}5.运行结果及调试在虚拟机侧挂载目录内建立一个目录,将经过交叉编译的音频播放程序Audio_player、图像显示程序LCD_img、选定的音频文件和12个320X240的.bmp格式图像文件以及下面的E_Album.c程序放在新建的目录中。
然后对E_Album.c程序进行交叉编译,将编译后的E_Album程序在开发板侧执行,即可看到程序的执行效果。
#include <stdio.h>#include <stdlib.h>#include <signal.h>#include <unistd.h>static void sig_usr(int signo);static void sig_alarm(int signo);int i=1;pid_t child_pid;int main(){pid_t pid;if (signal(SIGALRM, sig_alarm) < 0) perror("signal SIGALRM error:");if (signal(SIGUSR2, sig_usr) < 0) perror("signal SIGUSR2 error:");pid=fork();if ( pid == 0 ){ /* 子进程*/printf("child_pid= %d\n",getpid());for(;;){system("./Audio_player RedStream.wav");pause();}exit(0);}else{ /* 父进程*/child_pid=pid;for(;;){alarm(1);pause();}}return 0;}static void sig_usr(int signo){int ret;printf("SIGUSR2 comming..... \n");if((ret=kill(child_pid,SIGCONT))<0) perror("kill error:");}static void sig_alarm(int signo){char *str0,*str1,Display_img[50];str0 ="./LCD_img b_fly";str1 =".bmp";sprintf(Display_img, "%s%d%s", str0, i, str1);printf("Display_img= %s\n",Display_img);i++;kill(child_pid,SIGUSR2); //向子进程发信号system(Display_img);if(i>8){kill(child_pid,SIGINT); //结束子进程kill(getpid(),SIGINT); //结束父进程}}执行操作后,连续循环显示8张图片,音乐播放52秒,效果图如下:6.课程设计总结与体会设计中我们遇到很多的难题,很多东西都是第一次接触,很多用到的技术网上根本没有资料,完全凭借自己去摸索尝试。
其中的困难可想而知。
然而坚持就是胜利,牙一咬眼一闭坚持做下去,而通过本次课设,我感觉收获还是蛮多的。
可能我对于嵌入式的知识学塔里木大学课程论文习的还是不太多,但是这之外的东西收获颇丰。
它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓“一份耕耘,一份收获。
”没有付出,何谈回报呢?再者,通过本次课设,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。
当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。
当然,在这其中,我也发现自己的许多不足之处,由于学期开始我没有好好学习,才落到如此地步,这也可以说是一个教训吧!我相信在以后的学习工作中,我一定会端正自己的学习态度,一丝不苟的去对待每一件事。
只有做好足够的准备,才能事半功倍!参考论文:[1] 邱仲潘.RedHat9从入门到精通[M].北京:电子工业出版社,2003.10[2] 李光华.赵洪亮.基于S3C4510B的应用系统开发详解[M].北京:清华大学出版社,2003[3] 韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2005[4] 赵刚.32位ARM嵌入式系统开发技术[M].北京:电子工业出版社,2008[5] 田泽.嵌入式系统开发与应用实验教程(第二版)[M].北京:北京航空航天大学出版社,2005[6] 赵刚.嵌入式系统中BootLoader的编译与移植[M]. 北京:四川大学出版社,2007第9 页共8 页。