入式数码相框的设计与实现.docx
《入式数码相框的设计与实现.docx》由会员分享,可在线阅读,更多相关《入式数码相框的设计与实现.docx(24页珍藏版)》请在冰豆网上搜索。
入式数码相框的设计与实现
广州大学华软软件学院
本科毕业论文
论文题目嵌入式数码相框的设计与实现
专业电子信息工程
班级11级嵌入式应用软件开发1班
姓名许家淇
学号1140907104
指导教师徐礼国
广州大学华软软件学院电子系
2015年4月
摘要本设计采用搭载s3c2440芯片的TQ2440开发板作为硬件平台,并在该硬件平台上移植了u-boot,linux内核,根文件系统,构成一个嵌入式linux操作系统,该系统的最大特点就是,可以根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求,主要用途就是对软硬件资源的调度与分配。
在搭载了linux嵌入式系统的TQ2440开发板上,本文设计了一个界面应用程序,该应用程序主要功能为:
用户通过对界面的操作就可对数码相框中图片的浏览与管理,以及进行幻灯片播放功能。
关键词:
TQ2440;嵌入式系统;数码相框;
ABSTRACTThiscurriculumdesigntusestheTQ2440developmentboardwiththeS3C2440chipasthehardwareplatformandtransplantu-boot,thehardwareplatformintheLinuxkernel,rootfilesystem,constituteanembeddedLinuxoperatingsystem,thebiggestfeatureofthesystemisthatcanbetailoredtomeetthehardwareandsoftwareaccordingtothedemandofapplication,function,reliability,cost,volumerequirementsofapplicationsystem,themainpurposeistosofthardwareresourceallocationandscheduling.
WhenequippedwithaTQ2440developmentboardLinuxembeddedsystem,thispaperdesignedaninterfaceapplicationprogram,themainfunctionoftheapplicationprogramsothattheusercanbrowseandmanagementoftheimageinthedigitalphotoframethroughtheinterface,andaslideshowfeature.
KEYWORDS:
TQ2440;EmbeddedSystem;DigitalPhotoFrame
1.前言
1.1背景与研究意义
随着PC时代数码技术的发展,数码相机以其低廉的价格,方便的操作成为摄影器材的发展方向。
目前,很多家庭都持有数码相机,一次拍摄下来的照片往往会有上百张,使用PC机来查看拍摄下来的图片,过于依赖PC机。
并且众多的数码摄影产生的相片保存起来后,查看过程繁琐不方便,要想再把这些相片都冲印出来回味、欣赏,即浪费又不环保。
数码相框将彻底解放那些积压下来的数码相片,让你人生中值得记忆的每一个瞬间从此不再被埋没在硬盘里面。
数码相框可以不但可以节约了照片冲印的纸张,而且还可用来美化家居,构造精致生活享受。
分享快乐、展示成功;带给父母,缓解思念。
作为数码相机的一种附属产品,数码相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪的照片,随时更新照片。
数码相框还可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。
1.2本论文的主要研究内容
本设计是以TQ2440为硬件平台并搭载嵌入式Linux操作系统为基础,完成图片可轮播、查看的数码相框系统设计。
主要研究内容包括以下几个方面:
(1)分析数码相框系统需求,对所用硬件器件选型,嵌入式系统的选择,以及确定界面程序实现方式。
(2)在基于ARM9微处理器的TQ2440平台上搭建嵌入式系统开发环境。
(3)在嵌入式Linux操作系统平台上完成实现了uboot、内核的移植和构建根文件系统等工作。
(4)对数码相框的界面进行研究,通过界面程序实现了友好的人机交互UI界面。
2.数码相框总体设计与论证
2.1数码相框总体设计方案
本文设计的数码相框系统,完成了实现图片的查看、轮播功能的系统设计方案设计。
该数码相框系统依靠ARM微处理器和嵌入式Linux操作系统作为平台,同时结合界面应用程序,通过对触摸屏的操作,在LCD屏幕上显示图片,实现数码相框系统与外界的信息交互,从而能在TQ2440上实现数码相框的基本功能。
如图2.1所示
图2-1数码相框系统
2.2.器件选型:
本文选择以搭载ARM处理器的三星s3c2440芯片为核心,搭建硬件平台,主要原因是ARM处理器具有以下特点:
(1)体积小、低功耗、低成本、高性能。
(2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件。
(3)大量使用寄存器,指令执行速度更快。
(4)大多数数据操作都在寄存器中完成。
(5)寻址方式灵活简单,执行效率高。
(6)指令长度固定。
2.3论证
本课程设计采用的是linux系统,属于嵌入式系统的一种。
对比开发常见的嵌入式操作系统WinCE、uCOS-II、VxWorks等。
嵌入式linux操作系统用途更为广泛,并且是开源系统软件,其主要功能是分配、调度工作,控制协调并分发软、硬件资源;该系统是功能模块化的,即一个功能对应一个模块,添加一个功能只需要增加一个对应模块就可以。
嵌入式linux操作系统突出的特点是系统实时的高效性、移植性好、,众多的系统软件开源等。
嵌入式操作系统与普通的计算机操作系统相比,除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等,还有系统功能可裁剪、系统工具开源里面以及与嵌入式ARM微处理器兼容性好等特点。
3.嵌入式linux系统构建
3.1u-boot的移植
TQ2440的启动需要Bootloader,Bootloader是硬件启动的引导程序,是启动操作系统的根本,是在操作系统内核或用户应用程序运行之前运行的一段小程序。
通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用准备好环境。
本课程设计采用的u-boot,全称UniversalBootLoader,是遵循GPL条款的开放源码项目。
简单的说,u-boot就是开源的且通用的Bootloader。
由于u-boot源代码十分庞大,本文无法一一列出代码,而且,移植u-boot到TQ2440开发板的过程十分的复杂与繁琐,所以,本文只对移植u-boot关键部分作出说明:
(1)获取u-boot源码:
登录官网下载u-boot-源码,然后解压:
#tarxzfu-boot-2010.03.tar.bz2
此时我们就得到了u-boot2010.03版本的源码。
(2)根据系统的处理器平台选择对应的目标编译项:
(A)在uboot-2010.03的根目录下面的Makefile中为TQ2440建立编译,以sbc2410x为模板例子。
在Makefile中加上对TQ2440板子的支持,将这个编译项命名为TQ2440:
TQ2440_config:
unconfig
@$(MKCONFIG)$(@:
_config=)armarm920tTQ2440NULLs3c24x0
各项的意思如下:
arm:
CPU的架构为arm架构。
arm920t:
CPU的类型为arm920t。
TQ2440:
开发板的型号为TQ2440。
NULL:
开发者/或经销商(vender),NULL表示没有。
s3c24x0:
片上系统为s3c24x0。
(B)由于本文使用arm架构处理器,故需要设置交叉编译工具链,修改顶层Makefile的CROSS_COMPILE定义如下:
CROSS_COMPILE=arm-linux-
(C)仿造sbc2410x模板,在/board目录下建立TQ2440文件夹,并在include/configs/中建立开发板的配置头文件,拷贝sbc2410x的文件到TQ2440和include/configs/中,并将sbc2410x命名的文件和定义改为TQ2440。
(3)修改cpu/arm920t/start.S,根据S3C2440A数据手册时钟参数,修改代码使得u-boot从NANDFlash启动或者从Norflash启动。
(4)根据TQ2440上的NANDFlash芯片手册,增加NANDFlash读写函数,实现NANDFlash的读写操作,实现加载Uboot、内核和文件系统硬件到NANDFlash功能。
(5)修改u-boot代码中对分区表的设置,使得分区表与内核设置的一致。
(6)进入目录配置编译,生成相应平台的uboot映像:
配置#makeTQ2440_config
#make
编译结果生成u-boot.bin烧入开发板
(7)把编译生成的u-boot.bin使用OPENJTAG烧写工具,安装驱动程序后,把它烧写到开发板norflash上就可以了。
3.2Linux内核的移植
Linux是一种开源电脑操作系统内核。
它是一个用C语言写成,符合POSIX标准的类Unix操作系统,是一个一体化内核(monolithickernel)系统。
“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。
一个内核不是一套完整的操作系统,还需要有配套的文件系统和硬件平台才能构成一个完整的嵌入式系统。
基于Linux内核的完整操作系统叫作Linux操作系统,其设备驱动程序可以完全访问硬件,且设备驱动程序可以方便地以模块化的形式设置,即使在系统运行期间也可直接装载或卸载。
linux-2.4.3内核已经支持S3C2440处理器的多种硬件开发板,,由于S3C2410跟S3C2440同属于ARM920T系列芯片,且寄存器等硬件电路基本一致,所以本文,参考SMDK2410参考板来移植linux-2.4.3内核到TQ2440开发板上。
3.2.1准备工作
在linux系统中,建立工作目录,下载内核源码:
linux-2.6.30.4.tar.bz2。
步骤如下:
#tarjxvflinux-2.6.30.4.tar.gz
解压后会在当前目录下生成一个linux-2.6.30.4的内核源码目录
3.2.2修改内核源码顶层
修改内核目录树根下的的Makefile,指明体系结构是arm,交叉编译工具是arm-linux-gcc。
找到ARCH和CROSS_COMPILE,修改
ARCH?
=arm
CROSS_COMPILE?
=/usr/local/arm/4.1.2/bin/arm-linux-
3.2.3设置flash分区
(1)修改内核分区信息(本示例分设四个分区),让内核知道NANDFlash的分区信息,设置成跟u-boot一致,
(2)修改时钟
将arch\arm\mach-s3c24xx\mach-smdk2440.c中的
s3c24x