数码相框毕业设计论文.doc

上传人:李主任 文档编号:3277576 上传时间:2019-08-07 格式:DOC 页数:61 大小:2.36MB
返回 下载 相关 举报
数码相框毕业设计论文.doc_第1页
第1页 / 共61页
数码相框毕业设计论文.doc_第2页
第2页 / 共61页
数码相框毕业设计论文.doc_第3页
第3页 / 共61页
数码相框毕业设计论文.doc_第4页
第4页 / 共61页
数码相框毕业设计论文.doc_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《数码相框毕业设计论文.doc》由会员分享,可在线阅读,更多相关《数码相框毕业设计论文.doc(61页珍藏版)》请在三一文库上搜索。

1、毕业论文题目 基于ARM和Linux的嵌入式数码相框系统设计 一、背景随着PC时代数码技术的发展,数码相机以其低廉的价格,方便的操作成为摄影器材未来的发展方向。目前,很多家庭都持有数码相机,一次拍摄下来的照片往往会有上百张,使用PC机来查看拍摄下来的图片,操作繁琐,而且依赖于PC机。作为数码相机的一种附属产品,数码相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪的照片,定时更新照片。数字相框可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。数码相框是展示数码照片而非纸质照片的相框。众多的数码摄影产生的相片保存起来后,查看过程繁琐不方便,大量打印出来又非常浪费,如果用数码相框直接

2、插上相机的存储卡展示照片,就非常酷了。数码摄影必然推动数码相框的发展,因为据调查全世界打印的数码相片不到35%。二、系统开发目标根据实际应用的特点对产品进行完整的需求分析,形成比较完善的总体设计方案。同时,达到能具备Linux操作系统下简单的设备驱动程序开发、图形用户接口设计的能力。此外,掌握基本的系统功能及性能测试技术,从而具备比较全面的嵌入式应用系统开发能力。另外,作为一个消费类电子产品,数码相框的设计必须考虑以下因素:(1)用户接口友好、操作方便。由于该产品的使用者大多是非专业人士,用户接口是否清晰明了、操作是否简捷方便成为用户是否能迅速的接受此产品的重要因素。(2)系统兼容性强。数码相

3、框应能识别和处理当前数码相机主要的图像格式,能访问主流的外部半导体存储卡。(3)稳定可靠。作为消费类电子产品。必须通过比较严格的功能测试,以保证用户在使用过程中,不会因为程序错误而丧失对产品的信心。三、所需环境及设备(1)以GEC2440开发板作为目标机,使用安装了Windows XP 的PC机作为宿主机,并在宿主机上安装虚拟机软件,虚拟机里安装的是Red Hat EnterpriseLinux5作为开发环境。(2)硬件部分:GEC2440模仿三星smdk2440,以ARM920T为内核,控制辅助设备。基本端口包括以太网接口,USB接口,还有两个RS232的串口。A/D和D/A模块主要用于现场

4、数据的采集与控制信号的输出。DC/DC模块主要负责整个系统的供电。四、系统概要设计硬件部分:系统的主要硬件包括嵌入式开发平台GECC2440、LCD屏、人机交互界面、外部存储介质接口电路。大致可以分为三块:(1)LCD屏用来展示图片、输出信息。(2)人机交互界面设定各个模式的播放形式、输入信息。(3)外部存储介质接口电路用来提供外部的存储介质的接口。软件部分:(1)交叉环境的搭建:用GNU工具链作为交叉编译器。(2)超级终端。五、系统详细设计(1)嵌入式Linux开发环境的建立具体步骤过程:交叉环境的具体建立;Qt应用界面代码的编写;环境的调试、仿真运行、NFS的配置等。(2)系统软硬件的的连

5、接工作:bootloader的移植、linux内核配置移植、驱动移植、根文件系统制作、带库的根文件系统的制作及各阶段的调试、QT界面的设计。(3)运用QT 及网络编程实现系统设计界面的可视化,及网络的连接问题。(4)对预期的目标功能,编写代码,调试仿真、运行。(5)对应用程序开发的代码编写与调试运行。六、调试分析及分工对开发过程中遇到的问题,时时记录,分析解决,保证阶段任务能够顺完成。张军委完成环境的搭建、bootloader的烧写,usb驱动的移植及调试。肖奇超完成内核的裁剪与移植、Qt应用程序的设计。测试记录要细致。七、时间安排及所用到的参考资料第一二周前期资料调查整理,准备开发板及有关环

6、境的搭建与测试。第三周系统概要设计,对硬件和软件部分的分析,主要是对设计的目标功能的预计需求,作好交叉编译环境的建立与运行等。第五六周完成详细系统设计。包括具体的代码的编写,内核驱动和网络驱动的完成,以及应用程序的开发等。第七周完成应用程序代码的编译运行仿真,测试等参考资料: 【1】张勇.ARM原理与C程序设计.西安:西安电子科技大学出版社, 2009年4月【2】韦东山.嵌入式Linux应用软件开发完全手册.北京:人民邮电出版社,2008年8月【3】LUPA. Linux软件工程师实用教程.北京:科学出版社,2011年11月修订版【4】成洁,卢紫毅.Linux窗口程序设计.北京:清华大学出版社

7、,2008年11月【5】粤嵌技术中心.GEC2440开发板说明文档,GEC开发板实验指导手册.【6】http:. qt开发白皮书,qt帮助文档【7】Daniel Solin著,袁鹏飞译.24小时学通Qt编程.北京:人民邮电出版社2000年10月【8】百度文库,中国IT实验室网站,ChinaUnix网站摘 要嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可以配置,通常对功能、可靠性、成本、体积、功耗有严格约束的一种专用计算机系统。当前先进的嵌入式系统,通常由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及嵌入式应用程序四个部分组成,实计算机基于ARM Linux和Qt/Embedded的嵌

8、入式数码相框系统的研究和实现应用系统,称为嵌入式系统、实时系统或者嵌入式实时系统。根据目前国内外对嵌入式的研究和开发,结合实际的实验条件,本项目使用硬件平台广东省嵌入式软件公共技术中心开发的GEC2440开发板作为目标机,使用安装Windows XP的PC机作为宿主机,并在宿主机Windows平台上安装了一个虚拟机软件,虚拟机里安装的是Red Hat EnterpriseLinux 5作为开发环境。主要实现工作包括:在宿主机上安装交叉编译工具,建立交叉编译环境,配置tftp、DNW(或超级终端)以建立嵌入式软件平台。进行一个可以浏览与管理图片功能,且能进行幻灯片播放的课程设计。针对项目需求实现

9、对驱动程序的完善和移植,制作适合此开发板的根文件系统,最后将基于qt设计的应用程序程植到开发板上,实现个人图片的掌上管理。关键词:嵌入式系统;GEC2440开发板;虚拟机环境;移植。AbstractEmbedded system is used as the center, take the computer technology as the foundation, software and hardware can be configured, usually to the function, reliability, cost, volume, power consumption hav

10、e strict constraints of a kind of special computer system. The current advanced Embedded system, usually by Embedded microcontroller processor,peripheral hardware equipment, Embedded operating system and Embedded application four parts, real computer based on ARM Linux and Qt/Embedded Embedded digit

11、al photo frame system research and implementation application system, called the Embedded system, real-time systems or Embedded real-time system.According to the current domestic and foreign research and development of embedded, combining with the condition of experiment, this project use hardware p

12、latform embedded software public technology center of guangdong province the development of GEC2440 development board as the target machine, use Windows XP install the PC as the host machine, and in the host machine Windows platform installed a virtual machine software, virtual machine is installed,

13、 the Red Hat EnterpriseLinux 5 as a development environment. Main realization work include: in the host machine installation cross-compiling tools, set up cross-compiling environment, the configuration TFTP, DNW (or super terminal) to establish embedded software platform. A can browse pictures and m

14、anagement function, and can play a course design slides. For the project requirements to achieve the perfect for drivers and transplantation, making for the development of the board root filesystem, finally will be based on qt application ChengZhi designed to development board, realize the palm of p

15、ersonal pictures !Keywords: embedded system;GEC2440 development board;virtual machine environment;the transplant.61目 录摘 要5Abstract6目 录7第一章绪论9第二章 所需环境及设备102.1硬件部分:102.1.1 GEC2440开发板介绍102.2软件部分112.2.1 Linux系统平台介绍:112.2.2 QT/Embeded界面介绍:112.3实现思路11第三章 嵌入式开发环境的搭建123.1嵌入式交叉环境的概述123.2 交叉编译环境的搭建123.3交叉调试环境

16、的搭建133.4交叉服务器的搭建133.5关于交叉调试133.6关于网络挂载的配置14第四章 U-boot的移植174.1建立工作目录174.2设置环境174.2.1stage1阶段硬件初始化174.2.2修改时钟174.2.3重定位u-boot代码194.3进入目录配置编译224.4 bootloader的烧写22第五章 Linux内核的移植245.1 准备工作245.2 修改内核源码顶层245.3 修改机器码245.4 设置 flash 分区255.5 配置编译内核265.6 Linux内核编译305.7 使用minicon远程访问目标板305.8下载到开发板中测试31第六章 驱动的移植3

17、26.1关于USB驱动移植326.2 关于LCD驱动移植336.3关于触摸板驱动移植35第七章 制作根文件系统387.1工作目录387.2创建节点387.3拷贝动态链接库387.4交叉编译busybox397.5交叉编译bash(交互程序)397.6建立系统配置文件407.7添加一个用户程序417.8带QTE库的根文件系统制作427.9手动校准437.10根文件系统烧入44第八章 基于qt3平台的应用程序458.1新建一个数码相框工程458.2函数主要源代码468.3在主机上运行578.4交叉编译生成目标文件578.5在目标板上运行57第九章 结束语59致谢60参考文献61附录62第一章 绪论

18、根据实际应用的特点对产品进行完整的需求分析,形成比较完善的总体设计方案。同时,达到能具备Linux操作系统下简单的设备驱动程序开发、图形用户接口设计的能力。此外,掌握基本的系统功能及性能测试技术,从而具备比较全面的嵌入式应用系统开发能力。另外,作为一个消费类电子产品,数码相框的设计必须考虑以下因素:1、用户接口友好、操作方便。2、系统兼容性强。数码相框应能识别和处理当前数码相机主要的图像格式,能访问主流的外部半导体存储卡。3、稳定可靠。随着PC时代数码技术的发展,数码相机以其低廉的价格,方便的操作成为摄影器材未来的发展方向。目前,很多家庭都持有数码相机,一次拍摄下来的照片往往会有上百张,使用P

19、C机来查看拍摄下来的图片,操作繁琐,而且依赖于PC机。作为数码相机的一种附属产品,数码相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪的照片,定时更新照片。数字相框可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。数码相框是展示数码照片而非纸质照片的相框。众多的数码摄影产生的相片保存起来后,查看过程繁琐不方便,大量打印出来又非常浪费,如果用数码相框直接插上相机的存储卡展示照片,就非常酷了,数码摄影必然推动数码相框的发展,因为据调查全世界打印的数码相片不到35%。第二章 所需环境及设备2.1硬件部分:以GEC2440开发板作为目标机,使用安装了Windows XP 的PC机作为宿

20、主机,并在宿主机上安装虚拟机软件,虚拟机里安装的是Red Hat EnterpriseLinux5作为开发环境。GEC2440模仿三星smdk2440,以ARM920T为内核,控制辅助设备。基本端口包括以太网接口,USB接口,还有两个RS232的串口。A/D和D/A模块主要用于现场数据的采集与控制信号的输出。DC/DC模块主要负责整个系统的供电。系统的主要硬件包括嵌入式开发平台GECC2440、LCD屏、人机交互界面、外部存储介质接口电路。大致可以分为三块:(1)LCD屏用来展示图片、输出信息。(2)人机交互界面设定各个模式的播放形式、输入信息。(3)外部存储介质接口电路用来提供外部的存储介质

21、的接口.2.1.1 GEC2440开发板介绍使用硬件平台广东省嵌入式软件公共技术中心开发的GEC2440开发板作为硬件平台,GEC2440是模仿广为流行的三星smdk2440开发板而设计的低价位开发板,下面对GEC2440做一些简单介绍。GEC2440的设计以ARM920T为内核的三星SC32440是控制核心,负责控制所有辅助设备。存储器采用SDRAM和FLASH两种类型,能满足系统运行和调试的需要。基本端口包括以太网接口,USB接口,还有两个RS232的串口。A/D和D/A模块主要用于现场数据的采集与控制信号的输出。DC/DC模块主要负责整个系统的供电。扩展接口考虑了系统的可扩展性。开发板外

22、观布局如图2.1图2.1GEC2440开发板外观图2.2软件部分2.2.1 Linux系统平台介绍:Linux是一种类UNIX操作系统。兼容POSIX 1003.1标准,并包含了UNIX System V和BSD 4.3的大部分特征。它充分体现了操作系统的方展趋势,即开放、稳定、标准。Linux具有如下的特征:(1)真正的多用户、多任务操作系统。(2)符合POSIX(可移植操作系统接口)标准。(3)采用页式存储管理。(4)支持动态链接库。(5)提供具有内置安全措施的分层文件系统。(6)提供Shell命令解释程序和编程语言。(7)提供强大的管理功能,包括远程管理功能。(8)提供内核编程接口。(9

23、)具备图形用户接口。(10)具备大量的实用程序和通信、联网工具。(11)大量高级程序设计语言已经被移植到Linux系统上,因此它是理想的应用程序开发平台。2.2.2 QT/Embeded界面介绍:当前嵌入式Linux在手机、PDA等手持信息设备领域的应用十分广泛。各种手持设备是否拥有图形用户界(GUI)己经成为其人机交互技术的关键体现,所以一个十分友好的图形用户界面(GUI)是必不可少的。嵌入式GUI是嵌入式系统广泛应用的人机交互接口。嵌入式系统有限的硬件资源要求嵌入式GUI必须简单、直观、可靠、占用资源小且反应快速。由于嵌入式系统硬件本身的多样性,嵌入式GUI应具备高度可移植性与可裁减性。2

24、.3实现思路首先在本地计算机上编写程序;然后通过在本地进行交叉编译生成目标平台上可以运行的二进制代码格式;最后再下载到目标平台上的特定位置上运行。(1)交叉环境的搭建:用GNU工具链作为交叉编译调试器。(2)终端使用的是DNW和secure CRT。第三章 嵌入式开发环境的搭建3.1嵌入式交叉环境的概述嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。所以需要一个交叉环境来实现:(1) 首先在通用计算机上编写程序;(2) 然后通本地编译或者交叉编译生成目标浃台上可以运行的二进制代码格式;(3) 最后再下载到目标平台上的特定的位置上去运行

25、。3.2 交叉编译环境的搭建在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序,在PC平台(X86CPU)上编译出能在arm平台上的程序,编译后的程序在X86上是不能运行的,必须放到arm上才能运行,用来编译这种程序的编译器叫做交做编译器。我们用到的是arm-linux-gcc。嵌入式软件开发需要交叉开发环境,这是其开发的一显著特点,交叉编译器只是交叉开发环境的一部分,我们说的交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,常采用宿主机-目标机模式。关于交叉工具链:它是交叉编译环境所需工具的集合体,是所需软件(binuntials、gcc与

26、glibc等)的安装载体,主要包括:交叉编译器(arm-linux-gcc)、交叉汇编器(arm-linux-as)、交叉链接器(arm-linux-ld)、各种操作所依赖的库及用于处理可执行程序和库的一些基本工具(如arm-linux-strip)。交叉环境如图所示:图3.2 1安装编译器(交叉工具链)软件:eabi-4.1.2.tar.bz2安装准备 #mkdir /usr/local/arm#cp eabi-4.1.2.tar.bz2 -C /usr/local/arm#mv eabi 4.1.2添加环境变量:#vi /etc/bashrc在文件结尾添加 export PATH= /us

27、r/local/arm/4.1.2/bin:$PATH使配置生效:#source /etc/bashrc3.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 #tar jxf gdb-6.5.tar.bz2c(3)配置 #cd gdb-6.5 #./configure -target=arm-linux -prefix=/usr/local/arm/4.1.2/此

28、步遇到的问题是:./configuretarget =arm-linux没有那个文件或目录,是因为configure的权限问题,在运行configure前chmod 755 configure)(4)编译 #make(5)安装 #make install (在/usr/local/arm/4.1.2/bin/目录下已生成arm-linux-gdb工具)。3.4交叉服务器的搭建源码包:gdb-6.5/gdb/gdbserver(1)进入 #cd gdb-6.5/gdb/gdbserver(2)配置 #chmod u+x configure #./configure -host=arm-linux

29、 (3)编译 #make CC=/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)编辑文件 #vim debug.c(3)交叉编译 #arm-linux-gcc -g debug.c -o debug (加上-g选项)(4)下载到目标板(将整个代码目录)#mkd

30、ir arm_debug #cd arm_debug /将目标程序放进arm_debug(5)启动调试服务器(目标板上进行) 成功后便开始侦听本地调试端口,可以看到如下信息: bash-4.0# gdbserver 172.22.60.222:1234 debug Process try created; pid = 992 Listening on port 1234 (172.22.60.222是目标板的IP)(6)启动交叉调试器(在宿主机上进行) #/root/test (一定要进去代码目录下) #arm-linux-gdb debug #target remote 172.22.60.

31、222:1234 成功后打印如下:(gdb) target remote 172.22.60.223:1234Remote debugging using 172.22.60.223:1234Remote communication error: Connection reset by peer然后进行调试。3.6关于网络挂载的配置使用NFS服务,将宿主机的一个目录通过网络可以挂载到其他计算机上,并作为它的一个目录,在嵌入式开发中通过NFS可以很方便的将修改的文件通过NFS传输到开发板中去,不用以复的烧写镜像文件。图3.6 1修改配置文件:#vim /etc/exports 配置内容为 /ro

32、ot/rootfs 192.168.1.* ()rw.sync,no_root_squash)共享的目录主机名或IP参数1 参数2 共享的目录IP1(参数1,参数2)IP2(参数3,参数4)rw 对共享文件夹可读可写。sync 所有数据在请求时写入共享。no_root_squash 使远程用户具备本地root用户所具有的读写权限。/root/rootfs:是宿主机上共享的文件夹。192.168.1.*:是所支持的目标板的IP地址,用的*表示该网段的地址都可以访问。备注:NFS的使有分服务器端和客户端:服务器端提供要共享的文件,客户端通挂载(mount)实现对共享文件平的访问,例如:mount

33、192.168.1.1:/home/nfs/tmp/test本地NFS服务器端通过读取配置文件/etc/exprots决定对外所共享的文件目录,在客户端的终端中通过NFS方式挂载宿主机目录,例如:mount -o nolock 192.168.1.1:/home/nfs/tmp/test客户端卸载所挂载的NFS文件系统,umount命令不能在挂载目录执行,需要离开执行。umount /tmp/test宿主机#ifconfig eth0 192.168.1.132ping 192.168.1.1(ping网关)#service nfs restart#showmount e localhost(

34、查看当前对外共享目录)#mount 192.168.1.132:/root/rootfs/ /tmp(本地测试)客户端ifconfig eth0 192.168.1.132.xxx(与服务器在同一网段):ping 192.168.1.132 c 5(与服务器联网通连测试)mount -o nolock 192.168.1.132:/root/rootfs /tmp第四章 U-boot的移植4.1建立工作目录下载源码Uboot的源码:u-boot-2009.11.tar.bz2#mkdir /root/build_uboot#cd /root/build_uboot把下载的源码拷贝到该目录,解压

35、;并把解压后目录更名为u-boot。#tar jxvf u-boot-2009.11.tar.bz2#mv u-boot-2009.11 u-boot创建主代码 复制board/samsung/smdk2410目录为board/sansung/gec2440#cp arf board/samsung/smdk2410 board/samsung/gec2440/并修改目录下的Makefile将COBJS:=smdk2410.o.flash.o修改为COBJS:=GEC2440.o.flash.o复制include/configs/smdk2410.h为include/configs/gec24

36、40.h#cp include/configs/smdk2410.h include/configs/gec2440.h修改顶层Makefile:创建目标板信息,在smdk2410_config:unconfig$(MKCONFIG)$(:_config=)arm arm920t smdk2410 NULL s3c24x0后面添加gec2440_config:unconfig$(MKCONFIG)$(:_config=)amr amr920t gec2440 samsung s3c24x0修改Makefile规则,将_LIBS:=$(subst$(obj),$(LIBS)$(subst$(ob

37、j),$(LIBBOARD)改为:_LIBS:=$(subst$(obj),$(LIBBOARD)$(subst$(obj),$(LIBS)4.2设置环境4.2.1stage1阶段硬件初始化在include/configs/gec2440.h头文件中添加CONFIG_S3C2440宏。#define CONFIG_S3C2440 14.2.2修改时钟由于s3c2410与s3c2440的时钟及Nand ,SDRAM等配置不同,故需要修改相关配置:(1)修改cpu/arm920t/start.S#if defined(CONFIG_S3C2400)|defined(CONFIG_S3C2410)|

38、defined (CONFIG_S3C2440)#if defined(CONFIG_S3C2440) /添加中断禁止部分1dr r1, =0x7fff1dr r0,=INTSUBMSKstr r1,r0#endif#if defined (CONFIG_S3C2440)/添加时钟部分#defined MLLCON 0x4C000004/系统主频配置寄存器基地址#defined UPLLCON 0x4C000008/USB时钟频率配置寄存器基地址1dr r0, =CLKDIVN/设置分频系数mov r1 ,#5str r1,r01dr r0,=MPLLCON1dr r1,=0x7F021str

39、 r1,r01dr r0 ,=UPLLCON/设置USB时钟频率为48MHz1dr r1,=0x38022str r1,r0#else(2)修改board/samsung/gec2440/gec2440.c,设置主频和USB时钟频率参数与start.S中的一致#define FCLK_SPEED 2/设置默认等于2,即下面代码有效#elif FCLK_SPEED = 2#define M_MDIV 0x7F#define M_PDIV 0x2#define M_SDIV 0x1#define USB_CLOCK 2 /设置默认等于2,即下面代码有效#elif USB_CLOCK = 2#def

40、ine U_M_MDIV 0x38 #define U_M_PDIV 0x2#define U_M_SDIV0x2(3)修改cpu/arm920t/s3c24x0/speed.cstatic ulong get_PLLCLK(int pllreg)S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();ulong r, m, p, s;if (pllreg = MPLL)r = clk_power-MPLLCON;else if (pllreg = UPLL)r = clk_power-UPLLCON;else

41、hang();m = (r & 0xFF000) 12) + 8;p = (r & 0x003F0) 4) + 2;s = r & 0x3;#if defined(CONFIG_S3C2440)if(pllreg = MPLL) /参考S3C2440 芯片手册上的公式:PLL=(2 * m * Fin)/(p * 2s)return(CONFIG_SYS_CLK_FREQ * m * 2) / (p s);#endifreturn(CONFIG_SYS_CLK_FREQ * m) / (p CLKDIVN & 0x2) ? get_FCLK()/2 : get_FCLK();4.2.3重定位u

42、-boot代码(1)在include/configs/gec2440.h 头文件中定义Nand 要用到的宏和寄存器,在文件末尾加入以下Nand Flash 相关定义(在最后一句#endif /* _CONFIG_H */之前):/* Nand flash register and envionment variables*/#define CONFIG_S3C2440_NAND_BOOT 1#define NAND_CTL_BASE 0x4E000000#define STACK_BASE 0x33F00000#define STACK_SIZE 0x8000#define oNFCONF 0

43、x00#define oNFCONT 0x04#define oNFADDR 0x0c#define oNFDATA 0x10#define oNFCMD 0x08#define oNFSTAT 0x20#define oNFECC 0x2c(2)修改cpu/arm920t/start.S#if 0#ifndef CONFIG_SKIP_RELOCATE_UBOOTrelocate: adr r0, _start ldr r1, _TEXT_BASE cmp r0, r1 beq stack_setupldr r2, _armboot_startldr r3, _bss_startsub r2

44、, r3, r2add r2, r0, r2 ldmia r0!, r3-r10 stmia r1!, r3-r10 cmp r0, r2 ble copy_loop#endif #endif添加u-boot从Nand Flash 启动#ifdef CONFIG_S3C2440_NAND_BOOTmov r1, #NAND_CTL_BASE /复位Nand Flashldr r2, =( (712)|(78)|(74)|(00) )str r2, r1, #oNFCONF /设置配置寄存器的初始值,参考s3c2440 手册ldr r2, r1, #oNFCONFldr r2, =( (14)|(01)|(10) )str r2, r1, #oNFCONT /设置控制寄存器ldr r2, r1, #oNFCONTldr r2, =(0x6) /RnB Clearstr r2, r1, #oNFSTATldr r2, r1, #oNFSTATmov r2, #0xff /复位commandstrb r2, r1, #oNFCMDmov r3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1