入式数码相框的设计与实现-毕设论文.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《入式数码相框的设计与实现-毕设论文.doc》由会员分享,可在线阅读,更多相关《入式数码相框的设计与实现-毕设论文.doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、广州大学华软软件学院本科毕业论文论文题目 嵌入式数码相框的设计与实现 专 业 电子信息工程 班 级 11级嵌入式应用软件开发1班 姓 名 许家淇 学 号 1140907104 指导教师 徐礼国 广州大学华软软件学院电子系2015年 4 月摘要 本设计采用搭载s3c2440芯片的TQ2440开发板作为硬件平台,并在该硬件平台上移植了u-boot,linux内核,根文件系统,构成一个嵌入式linux操作系统,该系统的最大特点就是,可以根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求,主要用途就是对软硬件资源的调度与分配。 在搭载了linux嵌入式系统的TQ2440开发板上
2、,本文设计了一个界面应用程序,该应用程序主要功能为:用户通过对界面的操作就可对数码相框中图片的浏览与管理,以及进行幻灯片播放功能。关键词: TQ2440;嵌入式系统;数码相框;2ABSTRACT This curriculum designt uses the TQ2440 development board with the S3C2440 chip as the hardware platform and transplant u-boot, the hardware platform in the Linux kernel, root file system, constitute an
3、 embedded Linux operating system, the biggest feature of the system is that can be tailored to meet the hardware and software according to the demand of application, function, reliability, cost, volume requirements of application system, the main purpose is to soft hardware resource allocation and s
4、cheduling. When equipped with a TQ2440 development board Linux embedded system, this paper designed an interface application program, the main function of the application program so that the user can browse and management of the image in the digital photo frame through the interface, and a slideshow
5、 feature.KEY WORDS: TQ2440; Embedded System; Digital Photo Frame目 录1.前 言11.1背景与研究意义11.2本论文的主要研究内容12. 数码相框总体设计与论证22.1数码相框总体设计方案22.2.器件选型:32.3论证33. 嵌入式linux系统构建43.1 u-boot的移植43.2 Linux内核的移植53.2.1 准备工作63.2.2 修改内核源码顶层63.2.3 设置 flash 分区63.2.4 修改机器码63.2.5 配置编译内核73.2.6 Linux内核编译与烧写103.3制作根文件系统113.4.驱动的设计11
6、3.4.1关于USB驱动设计113.4.2 关于LCD驱动设计123.4.3关于触摸屏驱动设计134. 界面应用程序144.1程序作用简介:144.2界面功能总框架:144.3程序主流程介绍164.4程序模块介绍174.4.1程序模块实现概述:174.4.2页面规划模块:184.4.3调试模块:184.4.4图片解析模块:184.4.5字体解码模块:194.4.6输入模式模块:194.4.7显示模块:205.系统分析和测试215.1系统分析方法简述215.2测试215.2.1 bmp图标显示测试215.2.2 jpeg图片解析测试215.2.3 u盘挂载测试235.3测试结论246. 总结25
7、参考文献26附 录27致 谢28III1.前 言1.1背景与研究意义 随着PC时代数码技术的发展,数码相机以其低廉的价格,方便的操作成为摄影器材的发展方向。目前,很多家庭都持有数码相机,一次拍摄下来的照片往往会有上百张,使用PC机来查看拍摄下来的图片,过于依赖PC机。 并且众多的数码摄影产生的相片保存起来后,查看过程繁琐不方便,要想再把这些相片都冲印出来回味、欣赏,即浪费又不环保。数码相框将彻底解放那些积压下来的数码相片,让你人生中值得记忆的每一个瞬间从此不再被埋没在硬盘里面。数码相框可以不但可以节约了照片冲印的纸张,而且还可用来美化家居,构造精致生活享受。分享快乐、展示成功;带给父母,缓解思
8、念。作为数码相机的一种附属产品,数码相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪的照片,随时更新照片。数码相框还可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。1.2本论文的主要研究内容 本设计是以TQ2440为硬件平台并搭载嵌入式Linux操作系统为基础,完成图片可轮播、查看的数码相框系统设计。主要研究内容包括以下几个方面:(1)分析数码相框系统需求,对所用硬件器件选型,嵌入式系统的选择,以及确定界面程序实现方式。(2)在基于ARM9微处理器的TQ2440平台上搭建嵌入式系统开发环境。(3)在嵌入式Linux操作系统平台上完成实现了uboot、内核的移植和构建根文件系统
9、等工作。(4)对数码相框的界面进行研究,通过界面程序实现了友好的人机交互UI界面。272. 数码相框总体设计与论证2.1数码相框总体设计方案本文设计的数码相框系统,完成了实现图片的查看、轮播功能的系统设计方案设计。该数码相框系统依靠ARM微处理器和嵌入式Linux操作系统作为平台,同时结合界面应用程序,通过对触摸屏的操作,在LCD屏幕上显示图片,实现数码相框系统与外界的信息交互,从而能在TQ2440上实现数码相框的基本功能。如图2.1所示图2-1 数码相框系统2.2.器件选型: 本文选择以搭载ARM处理器的三星s3c2440芯片为核心,搭建硬件平台,主要原因是ARM处理器具有以下特点:(1)体
10、积小、低功耗、低成本、高性能。(2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位 器件。(3)大量使用寄存器,指令执行速度更快。(4)大多数数据操作都在寄存器中完成。(5)寻址方式灵活简单,执行效率高。(6)指令长度固定。2.3论证 本课程设计采用的是linux系统,属于嵌入式系统的一种。对比开发常见的嵌入式操作系统WinCE、uCOS-II、VxWorks等。嵌入式linux操作系统用途更为广泛,并且是开源系统软件,其主要功能是分配、调度工作,控制协调并分发软、硬件资源;该系统是功能模块化的,即一个功能对应一个模块,添加一个功能只需要增加一个对应模块就可以。嵌
11、入式linux操作系统突出的特点是系统实时的高效性、移植性好、,众多的系统软件开源等。嵌入式操作系统与普通的计算机操作系统相比,除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等,还有系统功能可裁剪、系统工具开源里面以及与嵌入式ARM微处理器兼容性好等特点。3. 嵌入式linux系统构建3.1 u-boot的移植 TQ2440的启动需要Bootloader,Bootloader是硬件启动的引导程序,是启动操作系统的根本,是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的
12、状态,以便为最终调用准备好环境。本课程设计采用的u-boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。简单的说,u-boot就是开源的且通用的Bootloader。由于u-boot源代码十分庞大,本文无法一一列出代码,而且,移植u-boot到TQ2440开发板的过程十分的复杂与繁琐,所以,本文只对移植u-boot关键部分作出说明:(1) 获取u-boot源码: 登录官网下载u-boot-源码 ,然后解压:# tar xzf u-boot-2010.03.tar.bz2 此时我们就得到了u-boot 2010.03版本的源码。(2) 根据系统的处理器平台
13、选择对应的目标编译项:(A)在uboot-2010.03的根目录下面的Makefile中为TQ2440建立编译, 以sbc2410x为模板例子。在Makefile中加上对TQ2440板子的支持,将这个编译项命名为TQ2440:TQ2440_config : unconfig$(MKCONFIG) $(:_config=) arm arm920t TQ2440 NULL s3c24x0 各项的意思如下:arm:CPU的架构为arm架构。arm920t:CPU的类型为arm920t。TQ2440:开发板的型号为TQ2440。NULL:开发者/或经销商(vender),NULL表示没有。s3c24x
14、0:片上系统为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从NAND
15、 Flash启动或者从Nor flash启动。(4) 根据TQ2440上的NAND Flash芯片手册,增加NAND Flash读写函数,实现NAND Flash的读写操作,实现加载Uboot、内核和文件系统硬件到NAND Flash功能。(5) 修改u-boot代码中对分区表的设置,使得分区表与内核设置的一致。(6) 进入目录配置编译,生成相应平台的uboot映像: 配置#make TQ2440_config #make 编译结果生成u-boot.bin烧入开发板(7) 把编译生成的u-boot.bin使用OPENJTAG烧写工具,安装驱动程序后,把它烧写到开发板nor flash上就可以了
16、。3.2 Linux内核的移植 Linux是一种开源电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统,是一个一体化内核(monolithic kernel)系统。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统,还需要有配套的文件系统和硬件平台才能构成一个完整的嵌入式系统。基于Linux内核的完整操作系统叫作Linux操作系统,其设备驱动程序可以完全访问硬件,且设备驱动程序可以方便地以模块化的形式设置,即使在系统运行期间也可直接装载或卸载。 linux-2.4.3 内核已经支持 S3C2440 处理器的多
17、种硬件开发板,由于 S3C2410 跟 S3C2440 同属于 ARM920T 系列芯片,且寄存器等硬件电路基本一致,所以本文,参考 SMDK2410 参考板来移植linux-2.4.3 内核到TQ 2440 开发板上。3.2.1 准备工作 在linux系统中,建立工作目录,下载内核源码:linux-2.6.30.4.tar.bz2。步骤如下:#tar jxvf linux-2.6.30.4.tar.gz解压后会在当前目录下生成一个 linux-2.6.30.4 的内核源码目录3.2.2 修改内核源码顶层修改内核目录树根下的的 Makefile,指明体系结构是 arm,交叉编译工具是 arm-
18、linux-gcc。找到 ARCH 和 CROSS_COMPILE,修改ARCH ?= armCROSS_COMPILE ?= /usr/local/arm/4.1.2/bin/arm-linux-3.2.3 设置 flash 分区(1)修改内核分区信息(本示例分设四个分区),让内核知道 NAND Flash 的分区信息,设置成跟u-boot一致, (2)修改时钟 将archarmmach-s3c24xxmach-smdk2440.c中的s3c24xx_init_clocks(16934400);修改为:s3c24xx_init_clocks(12000000); (3)修改 NAND Fla
19、sh 的校验方式,去掉 ECC 校验,否则上电启动会提示 ECC 错误或 者 I/O 读取错误。在drivers/mtd/nand/s3c2410.c 中将 chip-ecc.mode = NAND_ECC_SOFT,改为 chip-ecc.mode = NAND_ECC_NONE;3.2.4 修改机器码在 u-boot-2009.11 的/board/samsun/TQ2440/TQ2440.c 中定义了机器码为 193,需要使得u-boot 和 linux 内核的同样类型的机器码都为 193,那么我们就修改 kernel 的 MACH_TYPE 代码引用部分,确定 kernel 的 MAC
20、H_TYPE。 如下:在 arch/arm/mach-s3c2440/mach-smdk2440.c 中: MACHINE_START(S3C2440, SMDK2440)修改为:MACHINE_START(SMDK2410, SMDK2440)在 arch/arm/kernel/head.S中的ENTRY(stext)下添加如下代码ENTRY(stext)movr0, #0movr1, #0xc1/ MACH_TYPE_SMDK2410值193换成十六进制就是 0xc13.2.5 配置编译内核#make s3c2410_defconfig #make menuconfig /进入设置界面,配
21、置内核make menuconfig命令运行后进入内核配置主菜单,如图3-1,这时根据自己的硬件需求对内核进行配置,即在菜单中选择合适的选项,对内核的裁剪,就是使用make menuconfig命令来调出配置菜单,通过在菜单上选择所需的选项,去掉不需要的选项的方式来裁剪。(选项前按“y”则显示“*”表示需要此项;按n则空,不要此项)。图3.1 配置主菜单根据开发板情况,在配置中主要考虑的有:(1)CPU类型的选择图3-2 cpu类型选择(2)引导设置图3-3 引导设置Boot options - Default kernel command string: noinitrd root=/dev
22、/mtdblock2 init=/linuxrc console=ttySAC0,115200 rootfstype=jffs2说明:mtdblock2 代表第 3 个 flash 分区,它是预设的 rootfs 分区,console=ttySAC0,115200 使 kernel 启动期间的信息全部输出到串口 0 上。(3)系统调用方式设置如下图3-4图3-4 系统调用方式设置Kernel Features-* Use the ARM EABI to compile the kernel/防止出现内核恐慌,内核指针跑飞。主菜单中选最后一项“Save an Alternate Configur
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数码 设计 实现 论文
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内