版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 .60/60 .毕业论文题目基于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月3LUPA. Linux软件工程师实用教程.:科学,2011年11月修订版4成洁,卢紫毅.Linux窗口程序设计.:清华大学,2008年11月5粤嵌技术中心.GEC2440开发板说明文
7、档,GEC开发板实验指导手册.6 :.trolltech. qt开发白皮书,qt帮助文档7Daniel Solin著,袁鹏飞译.24小时学通Qt编程.:人民邮电2000年10月8百度文库,中国IT实验室,ChinaUnix摘 要嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可以配置,通常对功能、可靠性、成本、体积、功耗有严格约束的一种专用计算机系统。当前先进的嵌入式系统,通常由嵌入式微处理器、外围硬件设备、嵌入式操作系统以与嵌入式应用程序四个部分组成,实计算机基于ARM Linux和Qt/Embedded的嵌入式数码相框系统的研究和实现应用系统,称为嵌入式系统、实时系统或者嵌入式实时系统
8、。根据目前国外对嵌入式的研究和开发,结合实际的实验条件,本项目使用硬件平台省嵌入式软件公共技术中心开发的GEC2440开发板作为目标机,使用安装Windows XP的PC机作为宿主机,并在宿主机Windows平台上安装了一个虚拟机软件,虚拟机里安装的是Red Hat EnterpriseLinux 5作为开发环境。主要实现工作包括:在宿主机上安装交叉编译工具,建立交叉编译环境,配置tftp、DNW(或超级终端)以建立嵌入式软件平台。进行一个可以浏览与管理图片功能,且能进行幻灯片播放的课程设计。针对项目需现对驱动程序的完善和移植,制作适合此开发板的根文件系统,最后将基于qt设计的应用程序程植到开
9、发板上,实现个人图片的掌上管理。关键词:嵌入式系统;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 have strict constraints of a kind of special com
10、puter 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 digital photo frame system research and implementa
11、tion 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 platform embedded software public technology c
12、enter 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, the Red Hat EnterpriseLinux 5 as a developme
13、nt 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 management function, and can play a course des
14、ign 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 personal pictures !Keywords: embedded system;G
15、EC2440 development board;virtual machine environment;the transplant.目 录 TOC o 1-3 h z u HYPERLINK l _Toc321738224摘要 PAGEREF _Toc321738224 h 5HYPERLINK l _Toc321738225Abstract PAGEREF _Toc321738225 h 6HYPERLINK l _Toc321738226目录 PAGEREF _Toc321738226 h 7HYPERLINK l _Toc321738227第一章绪论 PAGEREF _Toc3217
16、38227 h 9HYPERLINK l _Toc321738228第二章所需环境与设备 PAGEREF _Toc321738228 h 10HYPERLINK l _Toc3217382292.1硬件部分: PAGEREF _Toc321738229 h 10HYPERLINK l _Toc3217382302.1.1 GEC2440开发板介绍 PAGEREF _Toc321738230 h 10HYPERLINK l _Toc3217382312.2软件部分 PAGEREF _Toc321738231 h 11HYPERLINK l _Toc3217382322.2.1 Linux系统平台
17、介绍: PAGEREF _Toc321738232 h 11HYPERLINK l _Toc3217382332.2.2 QT/Embeded界面介绍: PAGEREF _Toc321738233 h 11HYPERLINK l _Toc3217382342.3实现思路 PAGEREF _Toc321738234 h 11HYPERLINK l _Toc321738235第三章嵌入式开发环境的搭建 PAGEREF _Toc321738235 h 12HYPERLINK l _Toc3217382363.1嵌入式交叉环境的概述 PAGEREF _Toc321738236 h 12HYPERLIN
18、K l _Toc3217382373.2 交叉编译环境的搭建 PAGEREF _Toc321738237 h 12HYPERLINK l _Toc3217382383.3交叉调试环境的搭建 PAGEREF _Toc321738238 h 13HYPERLINK l _Toc3217382393.4交叉服务器的搭建 PAGEREF _Toc321738239 h 13HYPERLINK l _Toc3217382403.5关于交叉调试 PAGEREF _Toc321738240 h 13HYPERLINK l _Toc3217382413.6关于网络挂载的配置 PAGEREF _Toc32173
19、8241 h 14HYPERLINK l _Toc321738242第四章 U-boot的移植 PAGEREF _Toc321738242 h 17HYPERLINK l _Toc3217382434.1建立工作目录 PAGEREF _Toc321738243 h 17HYPERLINK l _Toc3217382444.2设置环境 PAGEREF _Toc321738244 h 17HYPERLINK l _Toc3217382454.2.1stage1阶段硬件初始化 PAGEREF _Toc321738245 h 17HYPERLINK l _Toc3217382464.2.2修改时钟 P
20、AGEREF _Toc321738246 h 17HYPERLINK l _Toc3217382474.2.3重定位u-boot代码 PAGEREF _Toc321738247 h 19HYPERLINK l _Toc3217382484.3进入目录配置编译 PAGEREF _Toc321738248 h 22HYPERLINK l _Toc3217382494.4 bootloader的烧写 PAGEREF _Toc321738249 h 22HYPERLINK l _Toc321738250第五章 Linux核的移植 PAGEREF _Toc321738250 h 24HYPERLINK
21、l _Toc3217382515.1 准备工作 PAGEREF _Toc321738251 h 24HYPERLINK l _Toc3217382525.2 修改核源码顶层 PAGEREF _Toc321738252 h 24HYPERLINK l _Toc3217382535.3 修改机器码 PAGEREF _Toc321738253 h 24HYPERLINK l _Toc3217382545.4 设置 flash 分区 PAGEREF _Toc321738254 h 25HYPERLINK l _Toc3217382555.5 配置编译核 PAGEREF _Toc321738255 h
22、26HYPERLINK l _Toc3217382565.6 Linux核编译 PAGEREF _Toc321738256 h 30HYPERLINK l _Toc3217382575.7 使用minicon远程访问目标板 PAGEREF _Toc321738257 h 30HYPERLINK l _Toc3217382585.8下载到开发板中测试 PAGEREF _Toc321738258 h 31HYPERLINK l _Toc321738259第六章驱动的移植 PAGEREF _Toc321738259 h 32HYPERLINK l _Toc3217382606.1关于USB驱动移植
23、PAGEREF _Toc321738260 h 32HYPERLINK l _Toc3217382616.2 关于LCD驱动移植 PAGEREF _Toc321738261 h 33HYPERLINK l _Toc3217382626.3关于触摸板驱动移植 PAGEREF _Toc321738262 h 35HYPERLINK l _Toc321738263第七章制作根文件系统 PAGEREF _Toc321738263 h 38HYPERLINK l _Toc3217382647.1工作目录 PAGEREF _Toc321738264 h 38HYPERLINK l _Toc32173826
24、57.2创建节点 PAGEREF _Toc321738265 h 38HYPERLINK l _Toc3217382667.3拷贝动态库 PAGEREF _Toc321738266 h 38HYPERLINK l _Toc3217382677.4交叉编译busybox PAGEREF _Toc321738267 h 39HYPERLINK l _Toc3217382687.5交叉编译bash(交互程序) PAGEREF _Toc321738268 h 39HYPERLINK l _Toc3217382697.6建立系统配置文件 PAGEREF _Toc321738269 h 40HYPERLI
25、NK l _Toc3217382707.7添加一个用户程序 PAGEREF _Toc321738270 h 41HYPERLINK l _Toc3217382717.8带QTE库的根文件系统制作 PAGEREF _Toc321738271 h 42HYPERLINK l _Toc3217382727.9手动校准 PAGEREF _Toc321738272 h 43HYPERLINK l _Toc3217382737.10根文件系统烧入 PAGEREF _Toc321738273 h 44HYPERLINK l _Toc321738274第八章基于qt3平台的应用程序 PAGEREF _Toc3
26、21738274 h 45HYPERLINK l _Toc3217382758.1新建一个数码相框工程 PAGEREF _Toc321738275 h 45HYPERLINK l _Toc3217382768.2函数主要源代码 PAGEREF _Toc321738276 h 46HYPERLINK l _Toc3217382778.3在主机上运行 PAGEREF _Toc321738277 h 57HYPERLINK l _Toc3217382788.4交叉编译生成目标文件 PAGEREF _Toc321738278 h 57HYPERLINK l _Toc3217382798.5在目标板上运
27、行 PAGEREF _Toc321738279 h 57HYPERLINK l _Toc321738280第九章结束语 PAGEREF _Toc321738280 h 59HYPERLINK l _Toc321738281致 PAGEREF _Toc321738281 h 60HYPERLINK l _Toc321738282参考文献 PAGEREF _Toc321738282 h 61HYPERLINK l _Toc321738283附录 PAGEREF _Toc321738283 h 62绪论根据实际应用的特点对产品进行完整的需求分析,形成比较完善的总体设计方案。同时,达到能具备Linux
28、操作系统下简单的设备驱动程序开发、图形用户接口设计的能力。此外,掌握基本的系统功能与性能测试技术,从而具备比较全面的嵌入式应用系统开发能力。另外,作为一个消费类电子产品,数码相框的设计必须考虑以下因素:1、用户接口友好、操作方便。2、系统兼容性强。数码相框应能识别和处理当前数码相机主要的图像格式,能访问主流的外部半导体存储卡。3、稳定可靠。随着PC时代数码技术的发展,数码相机以其低廉的价格,方便的操作成为摄影器材未来的发展方向。目前,很多家庭都持有数码相机,一次拍摄下来的照片往往会有上百,使用PC机来查看拍摄下来的图片,操作繁琐,而且依赖于PC机。作为数码相机的一种附属产品,数码相框不仅具有传
29、统相框的特点,而且可以直接从数码相机中选择心仪的照片,定时更新照片。数字相框可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。数码相框是展示数码照片而非纸质照片的相框。众多的数码摄影产生的相片保存起来后,查看过程繁琐不方便,大量打印出来又非常浪费,如果用数码相框直接插上相机的存储卡展示照片,就非常酷了,数码摄影必然推动数码相框的发展,因为据调查全世界打印的数码相片不到35%。第二章 所需环境与设备2.1硬件部分:以GEC2440开发板作为目标机,使用安装了Windows XP 的PC机作为宿主机,并在宿主机上安装虚拟机软件,虚拟机里安装的是Red Hat EnterpriseLinux5作
30、为开发环境。GEC2440模仿三星smdk2440,以ARM920T为核,控制辅助设备。基本端口包括以太网接口,USB接口,还有两个RS232的串口。A/D和D/A模块主要用于现场数据的采集与控制信号的输出。DC/DC模块主要负责整个系统的供电。系统的主要硬件包括嵌入式开发平台GECC2440、LCD屏、人机交互界面、外部存储介质接口电路。大致可以分为三块:(1)LCD屏用来展示图片、输出信息。(2)人机交互界面设定各个模式的播放形式、输入信息。(3)外部存储介质接口电路用来提供外部的存储介质的接口.2.1.1 GEC2440开发板介绍使用硬件平台省嵌入式软件公共技术中心开发的GEC2440开
31、发板作为硬件平台,GEC2440是模仿广为流行的三星smdk2440开发板而设计的低价位开发板,下面对GEC2440做一些简单介绍。GEC2440的设计以ARM920T为核的三星SC32440是控制核心,负责控制所有辅助设备。存储器采用SDRAM和FLASH两种类型,能满足系统运行和调试的需要。基本端口包括以太网接口,USB接口,还有两个RS232的串口。A/D和D/A模块主要用于现场数据的采集与控制信号的输出。DC/DC模块主要负责整个系统的供电。扩展接口考虑了系统的可扩展性。开发板外观布局如图2.1图2.1GEC2440开发板外观图2.2软件部分2.2.1 Linux系统平台介绍:Linu
32、x是一种类UNIX操作系统。兼容POSIX 1003.1标准,并包含了UNIX System V和BSD 4.3的大部分特征。它充分体现了操作系统的方展趋势,即开放、稳定、标准。Linux具有如下的特征:(1)真正的多用户、多任务操作系统。(2)符合POSIX(可移植操作系统接口)标准。(3)采用页式存储管理。(4)支持动态库。(5)提供具有置安全措施的分层文件系统。(6)提供Shell命令解释程序和编程语言。(7)提供强大的管理功能,包括远程管理功能。(8)提供核编程接口。(9)具备图形用户接口。(10)具备大量的实用程序和通信、联网工具。(11)大量高级程序设计语言已经被移植到Linux系
33、统上,因此它是理想的应用程序开发平台。2.2.2 QT/Embeded界面介绍:当前嵌入式Linux在手机、PDA等手持信息设备领域的应用十分广泛。各种手持设备是否拥有图形用户界(GUI)己经成为其人机交互技术的关键体现,所以一个十分友好的图形用户界面(GUI)是必不可少的。嵌入式GUI是嵌入式系统广泛应用的人机交互接口。嵌入式系统有限的硬件资源要求嵌入式GUI必须简单、直观、可靠、占用资源小且反应快速。由于嵌入式系统硬件本身的多样性,嵌入式GUI应具备高度可移植性与可裁减性。2.3实现思路首先在本地计算机上编写程序;然后通过在本地进行交叉编译生成目标平台上可以运行的二进制代码格式;最后再下载
34、到目标平台上的特定位置上运行。(1)交叉环境的搭建:用GNU工具链作为交叉编译调试器。(2)终端使用的是DNW和secure CRT。第三章 嵌入式开发环境的搭建3.1嵌入式交叉环境的概述嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。所以需要一个交叉环境来实现:首先在通用计算机上编写程序;然后通本地编译或者交叉编译生成目标浃台上可以运行的二进制代码格式;最后再下载到目标平台上的特定的位置上去运行。3.2 交叉编译环境的搭建在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序,在PC平台(X86CPU)上编译出能在arm平台上
35、的程序,编译后的程序在X86上是不能运行的,必须放到arm上才能运行,用来编译这种程序的编译器叫做交做编译器。我们用到的是arm-linux-gcc。嵌入式软件开发需要交叉开发环境,这是其开发的一显著特点,交叉编译器只是交叉开发环境的一部分,我们说的交叉开发环境是指编译、和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,常采用宿主机目标机模式。关于交叉工具链:它是交叉编译环境所需工具的集合体,是所需软件(binuntials、gcc与glibc等)的安装载体,主要包括:交叉编译器(arm-linux-gcc)、交叉汇编器(arm-linux-as)、交叉器(arm-linux-
36、ld)、各种操作所依赖的库与用于处理可执行程序和库的一些基本工具(如arm-linux-strip)。交叉环境如图所示:图3.2 SEQ 图3.2 * ARABIC1安装编译器(交叉工具链)软件: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= /usr/local/arm/4.1.2/bin:$PATH使配置生效:#source /etc/bashrc3.3交叉调
37、试环境的搭建源码包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/此步遇到的问题是:./configuretarget =arm-linux没有那个文件或目录,是因为configure的
38、权限问题,在运行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 (3)编译 #make CC=/usr/local/arm/4.1.2/bin/arm-linux-gcc (完了在当
39、前目录生成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)下载到目标板(将整个代码目录)#mkdir arm_debug #cd arm_debug /将目标程序放进arm_debug(5)启动调试服务器(目标板上进
40、行) 成功后便开始侦听本地调试端口,可以看到如下信息: bash-4.0# gdbserver 22:1234 debug Process try created; pid = 992 Listening on port 1234 (22是目标板的IP)(6)启动交叉调试器(在宿主机上进行) #/root/test (一定要进去代码目录下) #arm-linux-gdb debug #target remote 22:1234 成功后打印如下:(gdb) target remote 23:1234Remote debugging using 23:1234Remote communicatio
41、n error: Connection reset by peer然后进行调试。3.6关于网络挂载的配置使用NFS服务,将宿主机的一个目录通过网络可以挂载到其他计算机上,并作为它的一个目录,在嵌入式开发过NFS可以很方便的将修改的文件通过NFS传输到开发板中去,不用以复的烧写镜像文件。图3.6 SEQ 图3.6 * ARABIC1修改配置文件:#vim /etc/exports配置容为/root/rootfs 192.168.1.* ()rw.sync,no_root_squash)共享的目录主机名或IP参数1 参数2 共享的目录IP1(参数1,参数2)IP2(参数3,参数4)rw 对共享文件
42、夹可读可写。sync 所有数据在请求时写入共享。no_root_squash 使远程用户具备本地root用户所具有的读写权限。/root/rootfs:是宿主机上共享的文件夹。192.168.1.*:是所支持的目标板的IP地址,用的*表示该网段的地址都可以访问。备注:NFS的使有分服务器端和客户端:服务器端提供要共享的文件,客户端通挂载(mount)实现对共享文件平的访问,例如:mount :/home/nfs/tmp/test本地NFS服务器端通过读取配置文件/etc/exprots决定对外所共享的文件目录,在客户端的终端过NFS方式挂载宿主机目录,例如:mount -o nolock :/
43、home/nfs/tmp/test客户端卸载所挂载的NFS文件系统,umount命令不能在挂载目录执行,需要离开执行。umount /tmp/test宿主机#ifconfig eth0 32ping (ping网关)#service nfs restart#showmount e localhost(查看当前对外共享目录)#mount 32:/root/rootfs/ /tmp(本地测试)客户端ifconfig eth0 32.xxx(与服务器在同一网段):ping 32 c 5(与服务器联网通连测试)mount -o nolock 32:/root/rootfs /tmp第四章 U-boot
44、的移植4.1建立工作目录下载源码Uboot的源码:u-boot-2009.11.tar.bz2#mkdir /root/build_uboot#cd /root/build_uboot把下载的源码拷贝到该目录,解压;并把解压后目录更名为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/并修改目录下的Make
45、file将COBJS:=smdk2410.o.flash.o修改为COBJS:=GEC2440.o.flash.o复制include/configs/smdk2410.h为include/configs/gec2440.h#cp include/configs/smdk2410.h include/configs/gec2440.h修改顶层Makefile:创建目标板信息,在smdk2410_config:unconfig$(MKCONFIG)$(:_config=)arm arm920t smdk2410 NULL s3c24x0后面添加gec2440_config:unconfig$(MK
46、CONFIG)$(:_config=)amr amr920t gec2440 samsung s3c24x0修改Makefile规则,将_LIBS:=$(subst$(obj),$(LIBS)$(subst$(obj),$(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
47、的时钟与Nand ,SDRAM等配置不同,故需要修改相关配置:(1)修改cpu/arm920t/start.S#if defined(CONFIG_S3C2400)|defined(CONFIG_S3C2410)|defined (CONFIG_S3C2440)#if defined(CONFIG_S3C2440) /添加中断禁止部分1dr r1, =0 x7fff1dr r0,=INTSUBMSKstr r1,r0#endif#if defined (CONFIG_S3C2440)/添加时钟部分#defined MLLCON 0 x4C000004/系统主频配置寄存器基地址#defined
48、UPLLCON 0 x4C000008/USB时钟频率配置寄存器基地址1dr r0, =CLKDIVN/设置分频系数mov r1 ,#5str r1,r01dr r0,=MPLLCON1dr r1,=0 x7F021str r1,r01dr r0 ,=UPLLCON/设置USB时钟频率为48MHz1dr r1,=0 x38022str r1,r0#else(2)修改board/samsung/gec2440/gec2440.c,设置主频和USB时钟频率参数与start.S中的一致#define FCLK_SPEED 2/设置默认等于2,即下面代码有效#elif FCLK_SPEED = 2#d
49、efine M_MDIV 0 x7F#define M_PDIV 0 x2#define M_SDIV 0 x1#define USB_CLOCK 2 /设置默认等于2,即下面代码有效#elif USB_CLOCK = 2#define U_M_MDIV 0 x38 #define U_M_PDIV 0 x2#define U_M_SDIV0 x2(3)修改cpu/arm920t/s3c24x0/speed.cstatic ulong get_PLLCLK(int pllreg)S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CL
50、OCK_POWER();ulong r, m, p, s;if (pllreg = MPLL)r = clk_power-MPLLCON;else if (pllreg = UPLL)r = clk_power-UPLLCON;elsehang();m = (r & 0 xFF000) 12) + 8;p = (r & 0 x003F0) 4) + 2;s = r & 0 x3;#if defined(CONFIG_S3C2440)if(pllreg = MPLL) /参考S3C2440 芯片手册上的公式:PLL=(2 * m * Fin)/(p * 2s)return(CONFIG_SYS_
51、CLK_FREQ * m * 2) / (p s);#endifreturn(CONFIG_SYS_CLK_FREQ * m) / (p CLKDIVN & 0 x2) ? get_FCLK()/2 : get_FCLK();4.2.3重定位u-boot代码(1)在include/configs/gec2440.h 头文件中定义Nand 要用到的宏和寄存器,在文件末尾加入以下Nand Flash 相关定义(在最后一句#endif /* _CONFIG_H */之前):/* Nand flash register and envionment variables*/#define CONFIG_
52、S3C2440_NAND_BOOT 1#define NAND_CTL_BASE 0 x4E000000#define STACK_BASE 0 x33F00000#define STACK_SIZE 0 x8000#define oNFCONF 0 x00#define oNFCONT 0 x04#define oNFADDR 0 x0c#define oNFDATA 0 x10#define oNFCMD 0 x08#define oNFSTAT 0 x20#define oNFECC 0 x2c(2)修改cpu/arm920t/start.S#if 0#ifndef CONFIG_SKI
53、P_RELOCATE_UBOOTrelocate: adr r0, _start ldr r1, _TEXT_BASE cmp r0, r1 beq stack_setupldr r2, _armboot_startldr r3, _bss_startsub r2, 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_B
54、ASE /复位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, =(0 x6) /RnB Clearstr r2, r1, #oNFSTATldr r2, r1, #oNFSTATmov r2, #0 xff /复位commandstrb r2, r1, #oNF
55、CMDmov r3, #0 /等待nand1:add r3, r3, #0 x1cmp r3, #0 xablt nand1nand2:ldr r2, r1, #oNFSTAT /等待就绪tst r2, #0 x4beq nand2ldr r2, r1, #oNFCONTorr r2, r2, #0 x2 /取消片选str r2, r1, #oNFCONT/get read to call C functions (for nand_read()ldr sp, DW_STACK_START /为C 代码准备堆栈,DW_STACK_START 定义在下面mov fp, #0 / no previ
56、ous frame, so fp=0 R11 帧指针寄存器/copy U-Boot to RAMldr r0, =TEXT_BASE/传递给C 代码的第一个参数:u-boot 在RAM 中的起始地址mov r1, #0 x0 /传递给C 代码的第二个参数:Nand Flash 的起始地址mov r2, #0 x30000 /传递给C 代码的第三个参数:u-boot 的长度大小(128k)bl nand_read_ll/调用启动函数tst r0, #0 x0beq ok_nand_readbad_nand_read:loop2: b loop2 /infinite loopok_nand_rea
57、d:/检查搬移后的数据,如果前4k 完全一样,表示搬移成功mov r0, #0ldr r1, =TEXT_BASEmov r2, #0 x400go_next:ldr r3, r0, #4ldr r4, r1, #4teq r3, r4bne notmatchsubs r2, r2, #4beq stack_setupbne go_nextnotmatch:loop3: b loop3#endif /CONFIG_S3C2440_NAND_BOOT_start_armboot: .word start_armboot /在这一句的下面加上DW_STACK_START 的定义。.align 2D
58、W_STACK_START: .word STACK_BASE+STACK_SIZE-4(3)在board/samsung/gec2440/目录下新建一个nand_read.c 文件。在该文件中来实现上面汇编中要调用的nand_read_ll 函数,代码如下:#include #define NF_BASE 0 x4E000000#define _REGb(x) (*(volatile unsigned char *)(x)#define _REGi(x) (*(volatile unsigned int *)(x)#define NFCONF _REGi(NF_BASE + 0 x0 ) /
59、通过偏移量还是得到配置寄存器基地址#define NFCONT _REGi(NF_BASE + 0 x4 ) /通过偏移量得到控制寄存器基地址#define NFCMD _REGb(NF_BASE + 0 x8 ) /通过偏移量得到指令寄存器基地址#define NFADDR _REGb(NF_BASE + 0 xC ) /通过偏移量得到地址寄存器基地址#define NFDATA _REGb(NF_BASE + 0 x10) /通过偏移量得到数据寄存器基地址#define NFSTAT _REGb(NF_BASE + 0 x20) /通过偏移量得到状态寄存器基地址#define NAND_C
60、HIP_ENABLE (NFCONT &= (11) /Nand 片选使能#define NAND_CHIP_DISABLE (NFCONT |= (11) /取消Nand 片选#define NAND_CLEAR_RB (NFSTAT |= (12)#define NAND_DETECT_RB while(! (NFSTAT&(12) ); /判断是否就绪#define NAND_SECTOR_SIZE 512#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1)/* low level nand read function */int nand_rea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年个人二手车交易车辆改装及加装服务合同2篇
- 二零二四年度幼儿园教师团队建设与合作服务协议3篇
- 2025个人果园土地承包合同书制定与执行细则4篇
- 二零二五年度网络安全风险评估与治理合同规范2篇
- 二零二五年度办公家具安装与空间规划承包协议4篇
- 2025年度电商物流仓储一体化服务合同8篇
- 二零二四年啤酒企业定制化销售合同3篇
- 2025版星巴克加盟店食品安全管理合同3篇
- 2025版离婚小孩户口迁移抚养协议及财产分配协议3篇
- 2025年度大型储藏室资产租赁合同4篇
- 小学生作文方格纸A4纸直接打印版
- 幼儿阿拉伯数字描红(0-100)打印版
- 社会组织等级评估报告模板
- GB/T 12173-2008矿用一般型电气设备
- 2023年1月浙江高考英语听力试题及答案(含MP3+录音原文)
- 【课件】第三课 蒙娜丽莎 课件高中美术湘美版美术鉴赏
- 新媒体研究方法教学ppt课件(完整版)
- 2020新版个人征信报告模板
- 东芝空调维修故障代码汇总
- 工艺管道仪表流程图(共68页).ppt
- 五项管理行动日志excel表格
评论
0/150
提交评论