数码相框课程设计论文0409.docx
《数码相框课程设计论文0409.docx》由会员分享,可在线阅读,更多相关《数码相框课程设计论文0409.docx(68页珍藏版)》请在冰豆网上搜索。
数码相框课程设计论文0409
北方民族大学
毕业论文
2011—2012学年第二学期
题目基于ARM和Linux的嵌入式数码相框系统设计
学生姓名(学号)
指导教师杨雅军职称讲师
评阅教师职称
时间
北方民族大学信息工程学院毕业设计(论文)任务书
指导教师:
杨雅军职称:
讲师学生人数:
1人
学生姓名(学号、专业):
毕业设计题目:
基于ARM9和LINUX的嵌入式数码相框系统(B、Y)
目标:
设计一个基于ARM9和LINUX的嵌入式数码相框系统
任务:
通过开发一个消费类电子产品——数码相框,了解嵌入式开发的主要步骤,其中包括需求分析、系统结构设计、图形界面设计、驱动设计、功能优化、系统集成测试等,从而达到熟练应用所学知识及培养团队合作与交流。
途径:
以2440开发板为目标机,使用安装了WindowsXP的PC机作为宿主机,在宿主机Windows系统里安装虚拟机软件,虚拟机里使用RedHatEnterpriseLinux5作为开发环境。
通过安装建立交叉编译环境,配置NFS、超级终端建立嵌入式软件平台,然后实现系统所需的驱动程序的完善和移植,根文件系统的制作,最终实现应用程序的设计。
成果形式:
具有可视化图形界面的嵌入式系统
应掌握的原始资料(数据):
ARM处理器特点、Linux操作系统知识及内核的裁剪与移植等、Qt应用软件开发的知识
参考资料(文献):
《ARM原理与C程序设计》、《嵌入式Linux应用软件开发》、《Linux软件工程师实用教程》、《Linux设备驱动程序》
设计技术要求:
熟悉嵌入式系统的特点,在资源受限的系统下,通过对Linux系统内核的移植等工作,实现满足开发所需要的系统环境的创建,bootloader的编写应用,以及对驱动程序的编写移植(包括LED驱动、USB接口、网络接口)等底层知识有所了解和应用
注意事项:
开发出来的产品具有良好的可视化界面,对成本的要求合理,具有时实的特点,并且具有二次可开发性
教研室审批意见:
审批人签名:
备注:
(1)来源:
A—教师拟订;B—学生建议;C—企业和社会征集;D—实习单位提供
(2)类型:
X—真实课题;Y—模拟课题;Z—虚拟课题
北方民族大学信息工程学院毕业设计开题报告
课程来源:
B课题类型:
Y
课程名称:
基于ARM和Linux的嵌入式数码相框系统设计
指导老师:
杨雅军成员:
一、背景
随着PC时代数码技术的发展,数码相机以其低廉的价格,方便的操作成为摄影器材未来的发展方向。
目前,很多家庭都持有数码相机,一次拍摄下来的照片往往会有上百张,使用PC机来查看拍摄下来的图片,操作繁琐,而且依赖于PC机。
作为数码相机的一种附属产品,数码相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪的照片,定时更新照片。
数字相框可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。
数码相框是展示数码照片而非纸质照片的相框。
众多的数码摄影产生的相片保存起来后,查看过程繁琐不方便,大量打印出来又非常浪费,如果用数码相框直接插上相机的存储卡展示照片,就非常酷了。
数码摄影必然推动数码相框的发展,因为据调查全世界打印的数码相片不到35%。
二、系统开发目标
根据实际应用的特点对产品进行完整的需求分析,形成比较完善的总体设计方案。
同时,达到能具备Linux操作系统下简单的设备驱动程序开发、图形用户接口设计的能力。
此外,掌握基本的系统功能及性能测试技术,从而具备比较全面的嵌入式应用系统开发能力。
另外,作为一个消费类电子产品,数码相框的设计必须考虑以下因素:
(1)用户接口友好、操作方便。
由于该产品的使用者大多是非专业人士,用户接口是否清晰明了、操作是否简捷方便成为用户是否能迅速的接受此产品的重要因素。
(2)系统兼容性强。
数码相框应能识别和处理当前数码相机主要的图像格式,能访问主流的外部半导体存储卡。
(3)稳定可靠。
作为消费类电子产品。
必须通过比较严格的功能测试,以保证用户在使用过程中,不会因为程序错误而丧失对产品的信心。
三、所需环境及设备
(1)以GEC2440开发板作为目标机,使用安装了WindowsXP的PC机作为宿主机,并在宿主机上安装虚拟机软件,虚拟机里安装的是RedHatEnterpriseLinux5作为开发环境。
(2)硬件部分:
GEC2440模仿三星smdk2440,以ARM920T为内核,控制辅助设备。
基本端口包括以太网接口,USB接口,还有两个RS232的串口。
A/D和D/A模块主要用于现场数据的采集与控制信号的输出。
DC/DC模块主要负责整个系统的供电。
四、系统概要设计
硬件部分:
系统的主要硬件包括嵌入式开发平台GECC2440、LCD屏、人机交互界面、外部存储介质接口电路。
大致可以分为三块:
(1)LCD屏用来展示图片、输出信息。
(2)人机交互界面设定各个模式的播放形式、输入信息。
(3)外部存储介质接口电路用来提供外部的存储介质的接口。
软件部分:
(1)交叉环境的搭建:
用GNU工具链作为交叉编译器。
(2)超级终端。
五、系统详细设计
(1)嵌入式Linux开发环境的建立具体步骤过程:
交叉环境的具体建立;Qt应用界面代码的编写;环境的调试、仿真运行、NFS的配置等。
(2)系统软硬件的的连接工作:
bootloader的移植、linux内核配置移植、驱动移植、根文件系统制作、带库的根文件系统的制作及各阶段的调试、QT界面的设计。
(3)运用QT及网络编程实现系统设计界面的可视化,及网络的连接问题。
(4)对预期的目标功能,编写代码,调试仿真、运行。
(5)对应用程序开发的代码编写与调试运行。
六、调试分析及分工
对开发过程中遇到的问题,时时记录,分析解决,保证阶段任务能够顺完成。
张军委完成环境的搭建、bootloader的烧写,usb驱动的移植及调试。
肖奇超完成内核的裁剪与移植、Qt应用程序的设计。
测试记录要细致。
七、时间安排及所用到的参考资料
第一二周前期资料调查整理,准备开发板及有关环境的搭建与测试。
第三周系统概要设计,对硬件和软件部分的分析,主要是对设计的目标功能的预计需求,作好交叉编译环境的建立与运行等。
第五六周完成详细系统设计。
包括具体的代码的编写,内核驱动和网络驱动的完成,以及应用程序的开发等。
第七周完成应用程序代码的编译运行仿真,测试等
参考资料:
【1】张勇.ARM原理与C程序设计.西安:
西安电子科技大学出版社,2009年4月
【2】韦东山.嵌入式Linux应用软件开发完全手册.北京:
人民邮电出版社,2008年8月
【3】LUPA.Linux软件工程师实用教程.北京:
科学出版社,2011年11月修订版
【4】成洁,卢紫毅.Linux窗口程序设计.北京:
清华大学出版社,2008年11月
【5】粤嵌技术中心.GEC2440开发板说明文档,GEC开发板实验指导手册.
【6】http:
\\.qt开发白皮书,qt帮助文档
【7】DanielSolin著,袁鹏飞译.24小时学通Qt编程.北京:
人民邮电出版社2000年10月
【8】XX文库,中国IT实验室网站,ChinaUnix网站
摘要
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可以配置,通常对功能、可靠性、成本、体积、功耗有严格约束的一种专用计算机系统。
当前先进的嵌入式系统,通常由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及嵌入式应用程序四个部分组成,实计算机基于ARMLinux和Qt/Embedded的嵌入式数码相框系统的研究和实现应用系统,称为嵌入式系统、实时系统或者嵌入式实时系统。
根据目前国内外对嵌入式的研究和开发,结合实际的实验条件,本项目使用硬件平台广东省嵌入式软件公共技术中心开发的GEC2440开发板作为目标机,使用安装WindowsXP的PC机作为宿主机,并在宿主机Windows平台上安装了一个虚拟机软件,虚拟机里安装的是RedHatEnterpriseLinux5作为开发环境。
主要实现工作包括:
在宿主机上安装交叉编译工具,建立交叉编译环境,配置tftp、DNW(或超级终端)以建立嵌入式软件平台。
进行一个可以浏览与管理图片功能,且能进行幻灯片播放的课程设计。
针对项目需求实现对驱动程序的完善和移植,制作适合此开发板的根文件系统,最后将基于qt设计的应用程序程植到开发板上,实现个人图片的掌上管理。
关键词:
嵌入式系统;GEC2440开发板;虚拟机环境;移植。
Abstract
Embeddedsystemisusedasthecenter,takethecomputertechnologyasthefoundation,softwareandhardwarecanbeconfigured,usuallytothefunction,reliability,cost,volume,powerconsumptionhavestrictconstraintsofakindofspecialcomputersystem.ThecurrentadvancedEmbeddedsystem,usuallybyEmbeddedmicrocontrollerprocessor,peripheralhardwareequipment,EmbeddedoperatingsystemandEmbeddedapplicationfourparts,realcomputerbasedonARMLinuxandQt/EmbeddedEmbeddeddigitalphotoframesystemresearchandimplementationapplicationsystem,calledtheEmbeddedsystem,real-timesystemsorEmbeddedreal-timesystem.
Accordingtothecurrentdomesticandforeignresearchanddevelopmentofembedded,combiningwiththeconditionofexperiment,thisprojectusehardwareplatformembeddedsoftwarepublictechnologycenterofguangdongprovincethedevelopmentofGEC2440developmentboardasthetargetmachine,useWindowsXPinstallthePCasthehostmachine,andinthehostmachineWindowsplatforminstalledavirtualmachinesoftware,virtualmachineisinstalled,theRedHatEnterpriseLinux5asadevelopmentenvironment.Mainrealizationworkinclude:
inthehostmachineinstallationcross-compilingtools,setupcross-compilingenvironment,theconfigurationTFTP,DNW(orsuperterminal)toestablishembeddedsoftwareplatform.Acanbrowsepicturesandmanagementfunction,andcanplayacoursedesignslides.Fortheprojectrequirementstoachievetheperfectfordriversandtransplantation,makingforthedevelopmentoftheboardrootfilesystem,finallywillbebasedonqtapplicationChengZhidesignedtodevelopmentboard,realizethepalmofpersonalpictures!
Keywords:
embeddedsystem;GEC2440developmentboard;virtualmachineenvironment;thetransplant.
第一章绪论
根据实际应用的特点对产品进行完整的需求分析,形成比较完善的总体设计方案。
同时,达到能具备Linux操作系统下简单的设备驱动程序开发、图形用户接口设计的能力。
此外,掌握基本的系统功能及性能测试技术,从而具备比较全面的嵌入式应用系统开发能力。
另外,作为一个消费类电子产品,数码相框的设计必须考虑以下因素:
1、用户接口友好、操作方便。
2、系统兼容性强。
数码相框应能识别和处理当前数码相机主要的图像格式,能访问主流的外部半导体存储卡。
3、稳定可靠。
随着PC时代数码技术的发展,数码相机以其低廉的价格,方便的操作成为摄影器材未来的发展方向。
目前,很多家庭都持有数码相机,一次拍摄下来的照片往往会有上百张,使用PC机来查看拍摄下来的图片,操作繁琐,而且依赖于PC机。
作为数码相机的一种附属产品,数码相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪的照片,定时更新照片。
数字相框可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。
数码相框是展示数码照片而非纸质照片的相框。
众多的数码摄影产生的相片保存起来后,查看过程繁琐不方便,大量打印出来又非常浪费,如果用数码相框直接插上相机的存储卡展示照片,就非常酷了,数码摄影必然推动数码相框的发展,因为据调查全世界打印的数码相片不到35%。
第二章所需环境及设备
2.1硬件部分:
以GEC2440开发板作为目标机,使用安装了WindowsXP的PC机作为宿主机,并在宿主机上安装虚拟机软件,虚拟机里安装的是RedHatEnterpriseLinux5作为开发环境。
GEC2440模仿三星smdk2440,以ARM920T为内核,控制辅助设备。
基本端口包括以太网接口,USB接口,还有两个RS232的串口。
A/D和D/A模块主要用于现场数据的采集与控制信号的输出。
DC/DC模块主要负责整个系统的供电。
系统的主要硬件包括嵌入式开发平台GECC2440、LCD屏、人机交互界面、外部存储介质接口电路。
大致可以分为三块:
(1)LCD屏用来展示图片、输出信息。
(2)人机交互界面设定各个模式的播放形式、输入信息。
(3)外部存储介质接口电路用来提供外部的存储介质的接口.
2.1.1GEC2440开发板介绍
使用硬件平台广东省嵌入式软件公共技术中心开发的GEC2440开发板作为硬件平台,GEC2440是模仿广为流行的三星smdk2440开发板而设计的低价位开发板,下面对GEC2440做一些简单介绍。
GEC2440的设计以ARM920T为内核的三星SC32440是控制核心,负责控制所有辅助设备。
存储器采用SDRAM和FLASH两种类型,能满足系统运行和调试的需要。
基本端口包括以太网接口,USB接口,还有两个RS232的串口。
A/D和D/A模块主要用于现场数据的采集与控制信号的输出。
DC/DC模块主要负责整个系统的供电。
扩展接口考虑了系统的可扩展性。
开发板外观布局如图2.1
图2.1GEC2440开发板外观图
2.2软件部分
2.2.1Linux系统平台介绍:
Linux是一种类UNIX操作系统。
兼容POSIX1003.1标准,并包含了UNIXSystemV和BSD4.3的大部分特征。
它充分体现了操作系统的方展趋势,即开放、稳定、标准。
Linux具有如下的特征:
(1)真正的多用户、多任务操作系统。
(2)符合POSIX(可移植操作系统接口)标准。
(3)采用页式存储管理。
(4)支持动态链接库。
(5)提供具有内置安全措施的分层文件系统。
(6)提供Shell命令解释程序和编程语言。
(7)提供强大的管理功能,包括远程管理功能。
(8)提供内核编程接口。
(9)具备图形用户接口。
(10)具备大量的实用程序和通信、联网工具。
(11)大量高级程序设计语言已经被移植到Linux系统上,因此它是理想的应用程序开发平台。
2.2.2QT/Embeded界面介绍:
当前嵌入式Linux在手机、PDA等手持信息设备领域的应用十分广泛。
各种手持设备是否拥有图形用户界(GUI)己经成为其人机交互技术的关键体现,所以一个十分友好的图形用户界面(GUI)是必不可少的。
嵌入式GUI是嵌入式系统广泛应用的人机交互接口。
嵌入式系统有限的硬件资源要求嵌入式GUI必须简单、直观、可靠、占用资源小且反应快速。
由于嵌入式系统硬件本身的多样性,嵌入式GUI应具备高度可移植性与可裁减性。
2.3实现思路
首先在本地计算机上编写程序;然后通过在本地进行交叉编译生成目标平台上可以运行的二进制代码格式;最后再下载到目标平台上的特定位置上运行。
(1)交叉环境的搭建:
用GNU工具链作为交叉编译调试器。
(2)终端使用的是DNW和secureCRT。
第三章嵌入式开发环境的搭建
3.1嵌入式交叉环境的概述
嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。
所以需要一个交叉环境来实现:
(1)首先在通用计算机上编写程序;
(2)然后通本地编译或者交叉编译生成目标浃台上可以运行的二进制代码格式;
(3)最后再下载到目标平台上的特定的位置上去运行。
3.2交叉编译环境的搭建
在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序,在PC平台(X86CPU)上编译出能在arm平台上的程序,编译后的程序在X86上是不能运行的,必须放到arm上才能运行,用来编译这种程序的编译器叫做交做编译器。
我们用到的是arm-linux-gcc。
嵌入式软件开发需要交叉开发环境,这是其开发的一显著特点,交叉编译器只是交叉开发环境的一部分,我们说的交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,常采用宿主机----目标机模式。
关于交叉工具链:
它是交叉编译环境所需工具的集合体,是所需软件(binuntials、gcc与glibc等)的安装载体,主要包括:
交叉编译器(arm-linux-gcc)、交叉汇编器(arm-linux-as)、交叉链接器(arm-linux-ld)、各种操作所依赖的库及用于处理可执行程序和库的一些基本工具(如arm-linux-strip)。
交叉环境如图所示:
图3.21
安装编译器(交叉工具链)软件:
eabi-4.1.2.tar.bz2
安装准备#mkdir/usr/local/arm
#cpeabi-4.1.2.tar.bz2-C/usr/local/arm
#mveabi4.1.2
添加环境变量:
#vi/etc/bashrc
在文件结尾添加exportPATH=/usr/local/arm/4.1.2/bin:
$PATH
使配置生效:
#source/etc/bashrc
3.3交叉调试环境的搭建
源码包gdb-6.5.tar.bz2的安装cd.
(1)新建编译目录
#mkdir/home/build_gdb
#cd/home/build_gdb
将gdb-6.5.tar.bz2拷贝到/home/build_gdb
(2)解压gdb-6.5.tar.bz2
#tarjxfgdb-6.5.tar.bz2c
(3)配置
#cdgdb-6.5
#./configure--target=arm-linux--prefix=/usr/local/arm/4.1.2/
此步遇到的问题是:
./configure—target=arm-linux没有那个文件或目录,是因为configure的权限问题,在运行configure前chmod755configure)
(4)编译
#make
(5)安装
#makeinstall(在/usr/local/arm/4.1.2/bin/目录下已生成arm-linux-gdb工具)。
3.4交叉服务器的搭建
源码包:
gdb-6.5/gdb/gdbserver
(1)进入
#cdgdb-6.5/gdb/gdbserver
(2)配置
#chmodu+xconfigure
#./configure--host=arm-linux
(3)编译
#makeCC=/usr/local/arm/4.1.2/bin/arm-linux-gcc(完了在当前目录生成gdbserver、gdbreplay等)
这里遇到的问题是:
没有使用绝对路径,导致了无法生成
(4)下载安装到目标板(gdbserver)
gdbserver放到目标板的/bin目录下。
3.5关于交叉调试
(1)新建测试目录
#mkdir/root/test
#cd/root/test
(2)编辑文件
#vimdebug.c
(3)交叉编译
#arm-linux-gcc-gdebug.c-odebug(加上-g选项)
(4)下载到目标板(将整个代码目录)
#mkdirarm_debug
#cdarm_debug//将目标程序放进arm_debug
(5)启动调试服务器(目标板上进行)
成功后便开始侦听本地调试端口,可以看到如下信息:
bash-4.0#gdbserver172.22.60.222:
1234debug
Processtrycreated;pid=992
Listeningonport1234
(172.22.60.222是目标板的IP)
(6)启动交叉调试器(在宿主机上进行)
#/root/test(一定要进去代码目录下)
#arm-linux-gdbdebug
#targetremote172.22.60.222:
1234
成功后打印如下:
(gdb)targetremote172.22.60.223:
1234
Remotedebuggingusing172.22.60.223:
1234
Remotecommunicationerror:
Connectionresetbypeer
然后进行调试。
3.6关于网络挂载的配置
使用NFS服务,将宿主机的一个目录通过网络可以挂载到其他计算机上,并作为它的一个目录,在嵌入式开发中通过NFS可以很方便的将修改的文件通过NFS传输到开发板中去,不用以复的烧写镜像文件。
图3.61
修改配置文件:
#vim/etc/exports
配置内容为/root/rootfs192.168.1.*()rw.sync