收藏 分销(赏)

本科毕业论文---基于arm平台的lniux系统移植论文正文.doc

上传人:胜**** 文档编号:2431096 上传时间:2024-05-30 格式:DOC 页数:63 大小:1.14MB
下载 相关 举报
本科毕业论文---基于arm平台的lniux系统移植论文正文.doc_第1页
第1页 / 共63页
本科毕业论文---基于arm平台的lniux系统移植论文正文.doc_第2页
第2页 / 共63页
本科毕业论文---基于arm平台的lniux系统移植论文正文.doc_第3页
第3页 / 共63页
本科毕业论文---基于arm平台的lniux系统移植论文正文.doc_第4页
第4页 / 共63页
本科毕业论文---基于arm平台的lniux系统移植论文正文.doc_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、 毕业设计(论文)专用纸 基于ARM平台的Linux系统移植系 部计算机与电子电气工程系 专 业电子信息科学与技术 年 级2011 学生姓名周跃伟 学 号201116022105 指导教师王瑞 职称院内副教授 The Linux system based on ARM platform transplantationDepartment Department of Computer &EEE Subject Electronic Information Science And TechnologyGrade 2011 Name Zhou Yuewei Student ID 2011160221

2、05 Teacher Wang Rui 津桥学院毕业(设计)论文诚信承诺书为确保毕业(设计)论文写作质量和答辩工作的顺利开展,达到按期圆满毕业的目标。本人郑重承诺:1.本人所呈交的毕业设计(论文),是在指导教师的指导下,严格按照学院、系部有关规定完成的。2.本人在毕业设计(论文)中引用他人的观点和参考资料均加以注释和说明。3.本人承诺在毕业设计(论文)选题和研究内容过程中没有抄袭他人研究成果和伪造相关数据等行为。4.在毕业设计(论文)(设计)中对侵犯任何方面知识产权的行为,由本人承担相应的法律责任。 毕业设计(论文)作者签名: 年 月 日55目录摘要IAbstractII前言1第一章 嵌入式技

3、术概况21.1背景介绍21.2研究意义31.3嵌入式系统现状及发展趋势4第二章 系统需求分析72.1 开发平台介绍72.2 ARM微处理器简介72.3 UP-TECH硬件平台72.3.1 硬件介绍72.3.2 S3C2410 ARM MPU8第三章 嵌入式linux 移植的实现103.1 移植环境搭建103.1.1 Tftp服务搭建113.2 bootloader概念123.2.1 Bootloader的安装媒介133.2.2 Bootloader的工作模式133.3 u-boot 简介133.3.1 u-boot目录结构133.3.2 u-boot 移植143.3.3 u-boot支持dm9

4、000网卡163.3.4 编译u-boot193.4 内核概念193.4.1 Linux内核源代码目录结构193.4.2 内核移植20第四章 根文件移植244.1 Linux文件系统简介244.2 Linux根文件系统介绍244.3 Busybox生成工具集254.4 yaffs文件系统简介254.5 根文件系统移植25第五章 设备驱动315.1 设备驱动的概念315.2 网络驱动程序移植325.2.1 DM9000 网卡驱动移植335.2.2 LCD 设备驱动移植35结论38参考文献40附录42附录1 42附录2 47致谢53总结与体会54基于ARM平台的Linux系统移植摘要随着计算机技术

5、和通讯技术的迅速发展以及Internet的不断扩展,嵌入式系统得到了越来越广泛的应用。由于嵌入式系统的复杂性的不断增加,嵌入式操作系统已经成为嵌入式系统中最重要的组成部分。在各种嵌入式系统中,Linux凭借其在结构清晰、源代码开放性等方面的优势,成为了基于监控系统、手持设备等嵌入式系统领域应用中的技术热点。嵌入式处理器种类繁多,要是嵌入式Linux系统在各个领域得到广泛应用,就必须把嵌入式系统移植到各种处理器平台上。ARM平台是目前应用十分广泛的处理器体系结构,自然也是嵌入式Linux系统移植的一个重点。本论文主要是设计与实现了Bootloader和Linux在S3C2410平台上的移植。主要

6、完成的工作包括在开发板上完成创建交叉编译环境、Uboot移植、Linux内核移植和文件系统移植。通过以上步骤,成功实现了Linux在硬件平台在S3C2410开发板上的运行。同时运行简单程序,用来测试系统,包括声卡,视频,LCD,网卡等。关键词 :嵌入式系统 ,Linux,ARM ,bootloader ,系统移植The Linux system based on ARM platform transplantationAbstractWith the development of the computer technology, communication technology and the

7、 in-depth application of the Intemet, more and more embedded systems are running around USAnd because of the increasing complexity of the embedded systems,the embedded operating system has become the most important part of the embedded systemIn all kinds of embedded operating systems,Linux has the a

8、dvantages of clear structure and open source,SO it has been widely used in the embedded system based on monitoring system and PDABecause there are many kinds of processor, porting Linux to a processor is the first step of using Linux in embedded area extensivelyAmong the main embedded processors,ARM

9、 is the main stream which used broadlyThis thesis is the design and implementation of the Bootloader and Linux porting on S3C2410 platform. Main work includes the completion of the development board to create a cross -compiler environment , Uboot transplant , Linux kernel porting and file system mig

10、ration . Through the above steps , the success achieved in the hardware platform running Linux S3C2410 development board. While running a simple program to test systems, including audio, video, LCD, network cards.Keywords : Embedded system, Linux, ARM, Bootloader, System transplantation前言随着科技与信息技术的快

11、速发展,基于嵌入式设备的操作系统有了长足的发展,并且广泛地应用于工业控制,安防监控,环境检测,医疗,航天航空,军事等领域。目前,主要应用于嵌入式的有以下几种操作系统。Windows CE是微软为了争夺嵌入式市场而推出的一款嵌入式操作系统,虽然windows应用程序很容易就能移植到该系统上,但是该系统不开源,存在安全问题而且系统升级比较慢(在windows电脑升级的时候大家都感受过吧);Vxworks操作系统该系统偏向于实时性,仅支持四种文件系统,而且该系统还是收费的,所以不适合搭载通用计算机上的应用程序;嵌入式linux系统是一种开放源代码的系统,不存在黑箱技术,由全球的从多的linux的爱好

12、者和linux开发者提供支持和维护,支持多种硬件平台,而且性能稳定,裁剪性好,开放使用都很容易。本课题中考虑到嵌入式系统的安全性以及幵放的难易程度,选择嵌入式linux操作系统,初步实现操作系统的一般功能和简单程序运行,应用程序的幵发功能,至于完善操作系统的特殊功能将在以后的学习或工作中进行更深入的研究。该论文第一章简单介绍背景和发展;第二章介绍系统分析;第三章介绍了linux 系统移植;第三章嵌入式系统移植的实现,包括内核;第四章根文件移植;第五章设备驱动的移植。第一章 嵌入式技术概况所谓嵌入式系统是指以应用为中心、以计算机技术为基础、软硬件可裁减、适应应用系统对功能、可靠性、成本、体积、功

13、耗严格要求的专用计算机系。这一类系统里面运行的程序能够自动控制和管理设备,有的甚至具有自适应能力,有着高度的智能,因而这种技术具有极其广泛的应用价值。我们日常生活中的MP3音乐播放器,PDA,当下领导手机市场的安卓智能手机,酒店点菜系统,KTV点歌系统,车载GPS系统,探测火星的机器人等等都可称作嵌入式系统产品。可以说,嵌入式系统具有无限优越的应用前景。1.1背景介绍随着嵌入式计算技术的飞速发展,嵌入式系统已经应用到人类社会和日常生活的各个领域。从冰箱、洗衣机到航天飞机、神州系列飞船,处处都存在着嵌入式计算机系统的应用。嵌入式系统的研究与开发己经成为现代电子设计的一大领域和方向。据统计,在现在

14、所使用的操作系统中,95以上都是嵌入式计算机系统,而并非通用的桌面计算机系统。嵌入式系统的最大特点是其所具有的目的性或针对性,即一套嵌入式系统的开发设计都有其特殊的应用场合和特定功能,这就是嵌入式系统与通用的计算机系统的主要区别。另外,嵌入式技术与实时性有着天然的联系:由于嵌入式系统是为特定的目的而设计的,且常常受到空间、成本、存储、带宽等条件的限制,因此它必须最大限度地在硬件上和软件上“量身定做以提高效率,这样的结果最终导致来实时性的增强。目前,使用最多的嵌入式操作系统产品主要有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、HopenOS、DeltaOS等。但这些专用的

15、、商业化的嵌入式操作系统,价格昂贵,对于中、下规模的软件开发公司无力支付操作系统的使用费用。而且,具有商业版权的操作系统,其源代码的封闭性也大大限制了应用软件开发者的积极性。对于广泛的嵌入式系统软件开发人员来说,精简的、界面友好的、性能可靠的、开源的、易开发、多任务且价格低廉的嵌入式操作系统,才是理想的嵌入式软件开发环境。ARM是Advanced RISC Machines的缩写,由英国Advanced RISC Machines (ARM) Limited公司设计。ARM 32位体系结构目前被公认为是业界领先的32位嵌入式RISC微处理器结构,所有ARM处理器共享这一体系结构,可确保当开发者

16、转向更高性能的ARM处理器时,在软件开发上可获得最大的回报。ARM芯片具有RISC系统的一般特点,如:具有大量的寄存器,绝大多数操作数都在寄存器中进行,通过LoadStore的体系结构在内存和寄存器之间传递数据,寻址方式简单;采用固定长度的指令格式等等。根据内核的不同,ARM处理器分为ARM7,ARM9,ARM9E,ARMl0,SecurCore,Intel的Xscal,Intel的StrongARM等。这些处理器最高主频达到了800MIPS,功耗数量级为MwMHz。对于支持同样ARM体系版本的处理器,其软件是兼容的。现在这些处理器广泛应用于开发应用平台、实时嵌入式应用以及安全系统等应用1.2

17、研究意义Linus Torvalds倡导下的Linux操作系统在整个计算机操作系统领域引发了强烈的反应,他不仅为广大的计算机用户提供了一个可选的优秀操作系统平台,同时也为诸多的操作系统的研究人员、开发人员提供了一个很好的研究与开发基础,使得这个领域的研究更加开放和活跃。Linux的如下特点是十分引人注目的。(1)Linux开放源代码,这使得学习、修改、裁剪Linux成为可能,嵌入式系统的设计者可以对嵌入式Linux进行二次开发,去掉操作系统的附加功能,只保留必须的操作系统功能。(2)成本低,Linux是开放源代码的自由软件,遵循GPL协议,其源代码可以自由获得使用。这使得Linux开发嵌入式应

18、用中用于购买嵌入式操作系统的费用可以忽略不计。而商业操作系统其操作系统的每个拷贝售价在几百美元到几万美元不等,如果需要操作系统的源代码,则还需要另外购买。此外,Linux的开发工具也可以免费获得。这使得开发成本大大降低。(3)强大的网络支持功能。Linux诞生于因特网时代并具有Unix的特性,保证了它支持所有标准因特网协议,并且可以利用Linux的网络协议栈将其开发成为嵌入式的TCPIP网络协议栈。此外,Linux还支持ext2、fatl6、fat32等文件系统,为开发嵌入式系统应用打下了很好的基础。(4)优秀的开发工具,开发嵌入式系统的关键是需要有一套完善的开发和调试工具。在线仿真器的价格非

19、常昂贵,而且只适合做非常底层的调试。如果使用的Linux,一旦软硬件能够支持正常的串口功能时,即使不用在线仿真器也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境, 可以跨越嵌入式系统开发中仿真工具的障碍。此外,Linux也符合IEEE POSIX1标准,使应用程序具有较好的可移植性。(5)广泛的硬件支持。Linux支持的硬件平台很多,包括x86、ARM、MIPS、ALPHA、PowerPC等多种体系结构,目前已经成功移植到数十种硬件平台,几乎能够运行在所有流行的CPU上,支持各种主流硬件设备和最新的硬件技术

20、。因此Linux的移植是嵌入式开发中的热点。(6)大量的技术支持。Linux源代码开放性,使基于Linux的开发人员非常多,而且Linux的各种开发文档和基于Linux的开放源代码应用程序很容易从网络上获得。实时化后的Linux除了保持原有的特性,例如,开放性(遵循开放系统互连0SI国际标准),多用户,多任务,良好的用户界面,设备独立性,良好的移植性,同时使其具备更良好的进程调度算法,加上Linux丰富的免费资源,Linux必将在嵌入式实时领域有较广的应用前景。1.3嵌入式系统现状及发展趋势嵌入式系技术具有非常广阔的应用前景,其应用领域可以包括:(1)工业控制基于嵌入式芯片的工业自动他设备具有

21、很大的发展空间,目前已经有大量的8、16、32位嵌入式微控制器应用在工业过程控制、数控机床、电力系统、电网安全、电网设备监测、石油化工系统等领域。(2)交通管理在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块、GSM模块的移动定位终端已经在各种运输行业成功使用。(3)信息家电这将成为嵌入式系绕最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使不在家里,也耐以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。(4)家庭智能管理系统水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌入的专用控

22、制芯片将代替传统的人工检查,并实现更高、更准确和更安全的性能。(5)环境监测环境监测包括水文资料实时监测,防洪体系及水土质量监测,堤坝安全,地震监测网、实时气象信息网、水源和空气污染监测等。在很多环境恶劣、地况复杂的地形,嵌入式系统将实现无人监测。(6)机器人嵌入式芯片的发展将使机器人在微型化、智能化方面的优势更加明照,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。发展趋势有:(1)为设备网络通信提供标准接口为适应嵌入式分布处理结构和应用上网需求,面向2l世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必须配备Ethernet网口,相应

23、需要TCPIP协议簇软件支持;由于家用电器互相关联(如防盗报警,灯光能源控制,影视设备等)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEEl394,USB,CAN或IrDA通信接口,同时也需要提供相应的组网协议软件和物理层驱动软件。(2)支持小型电子设备实现小尺寸,徽功耗和低成本为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片,这就相应提高了对嵌入式软件设计技术要求(如选用最佳的编程模式和不断改进算法),因此既要软件人员有丰富经验,更需要发展先进嵌入式软件技术如WEB和WAP等。(3)提供精巧的多媒体人机界面之所以亿万用户乐于按受嵌入式设备,

24、重要因素之一是嵌入式设备与用户之间的亲和力, 自然和人机交互界面。人们与信息终端交互要求GUI屏幕为中心的多媒体界面。手写文字输入,语音拨号上网,收发电子自B件以及彩色图形图像已获得很大成功,先进的PDA早已在显示屏幕上已实现汉字写入,短信息,语音发布。(4)嵌入式网络除了以上这些应用领域,嵌入式系统还有其他方面的应用。嵌入式系统已经进入到现代社会中人们生活的方方面面,可是说是“无处不在”,尤其是在控制方而的应用。同样的道理,所有基于剐络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现。所以,开发和探讨嵌入式系统有着十分重要的意第二章 系统需求分析2.1 开

25、发平台介绍本论文研究使用的嵌入式系统硬件平台为UP-TECH,它以三星S3C2410芯片为处理器。UP-TECH不但是一个强大的教学平台,而且还是一个强大的、灵活的开发平台,在这个平台上很容易进行软件开发研究及硬件设计等。S3C2410所采用的核心内核部分是ARM公司的ARM 920T处理器核。下面我们首先介绍ARM微处理器。2.2 ARM微处理器简介ARM(Advanced RISC Machines),可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应稳,本身不直接从事芯片生产,靠

26、转让设计许可由合作公司生产餐具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品进入市场更容易被消费者所接受,提高竞争力。2.3 UP-TECH硬件平台2.3.1 硬件介绍UP-TECH平台由核心板和底板(外设板或称基本板)组成,核心板上集成SamsungS3C2410处理器,64M的FLASH和64M SDRAM,为应用研发提供了足够的空间。S

27、amsung 公司推出的16/32位RISC处理器S3C2410,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。为了降低整个系统的成本,S3C2410提供了以下丰富的内部设备:分开的16KB的指令Cache和16KB数据Cache,MMU虚拟存储器管理,LCD控制器(支持STN&TFT),支持NAND Flash系统引导,系统管理器(片选逻辑和SDRAM控制器),3通道UART,4通道DMA,4通道PWM定时器,I/O端口,RTC,8通道10位ADC和触摸屏接口,IIC-BUS接口,IIC-BUS接口,USB主机,USB设备,SD主卡&MMC卡接口,2通道的SPI

28、以及内部PLL时钟倍频器。S3C2410采用了ARM920T内核,0.18um工艺的CMOS标准宏单元和存储器单元。它的低功耗、 精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。 同样它还采用了一种叫做Advanced Microcontroller Bus Architecture(AMBA)新型总线结构。S3C2410的显著特性是它的CPU核心,是一个由Advanced RISC Machines(ARM)有限公司设计的16/32位ARM920T RISC处理器。ARM920T实现了MMU,AMBA BUS和Harvard高速缓冲体系结构。这一结构具有独立的16KB指令Cache和

29、16KB数据Cache,每个都是由8字长的行(line)构成。通过提供一系列完整的系统外围设备,S3C2410大大减少了整个系统的成本,消除了为系统配置额外器件的需要。本文档将介绍S3C2410中集成的以下片上功能:2.3.2 S3C2410 ARM MPU 图2-1 2410体系结构框图图2-2 内部结构图第三章 嵌入式linux 移植的实现3.1移植环境搭建嵌入式开发传统方式是PC机+虚拟机来实现,但考虑到效率太低,在本次移植中采用直接的硬盘安装linux系统来实现,安装了Ubuntu 14.04版本。所谓的交叉编译简单地说,就是在一个平台上生成另一个平台上的可执行代码我们需要一套编译环境

30、,将在X86上的C代码编译为ARM系统可以识别的目标代码。arm-linux-gcc是基于ARM目标机的交叉编译软件,前面几年安装arm-linux-gcc交叉编译软件对与一个初级嵌入式工程师来说特别棘手,因为它需要安装多个软件包,而且安装过程中不能有半点差错,因为每个软件包都有它的依赖关系【换句话就是说安装某个软件包时,如果它的依赖软件版本太低或者没有安装都将导致该软件包安装失败】,在此使用了别人集成的交叉编译链arm-linux-gcc -4.3.2安装如下# tar zxvf arm-linux-gcc-4.3.2.tgz# vim /etc/profile 添加如下export PAT

31、H=$PATH:/opt/usr/local/arm/4.3.2/binexport PATH=$PATH:/opt/usr/local/arm/4.3.2/arm-none-linux-gnueabi/bin # source /etc/profile 使安装马上生效# arm-linux-gcc v 查看是否生效 结果如下说明可以了gcc version 4.3.2 (Sourcery G+ Lite 2008q3-72)目标机主机主机通讯层打交叉开发工具链 调试工具ARMDISCGCC编译器Arm linuxArm-linux-gccBootloader目标机接口层图3-1交叉编译环境结

32、构图3.1.1 Tftp服务搭建1、安装相关软件包:Ubuntutftp(服务端),tftp(客户端),xinetd#apt-getinstalltftpdtftpxinetd2、建立配置文件在/etc/xinetd.d/下建立一个配置文件tftp#vimtftp在文件中输入以下内容:servicetftpsocket_type=dgramprotocol=udpwait=yesuser=rootserver=/usr/sbin/in.tftpdserver_args=-s/tftpbootdisable=noper_source=11cps=1002flags=IPv4保存退出。3、建立Ub

33、untutftp服务文件目录(上传文件与下载文件的位置),并且更改其权限#mkdir/tftpboot/*在根目录下建立tftpboot文件夹,注意与mkdirtftpboot的区别*/#chmod777/tftpboot-R4、重新启动服务# /etc/init.d/xinetdrestart至此Ubuntutftp服务已经安装完成了,下面可以对其进行一下测试。(在当前目创建1.txt,在tftpboot目录下创建1.txt和2.txt,且tftpboot目录下2.txt权限为修改为777)。执行get命令时,保证tftpboot目录下的文件权限 chomd 777 1.txt,执行put命

34、令时,必须先在tftpboot目录下新建一个和上传文件同名的文件权限 chmod 777 2.txt 。#tftp127.0.0.1tftpget1.cReceived7bytesin0.1secondstftpput2.cSent10bytesin0.0secondstftpquit以上把tftp服务成功搭建好。3.2 bootloader概念引导加载程序是系统加电后运行的第一段代码。我们熟悉的PC中的引导程序一般由BIOS和位于MBR的OS BootLoader(例如LILO或者GRUB)一起组成。然而在嵌入式系统中通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由Boo

35、tLoader来完成。在嵌入式Linux中的引导加载程序即等效为BootLoader。Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对Boot Loader 归纳出一些通用的概念来,以指导用户特定的Boot Loader 设计与实现。BootLoader和

36、内核映象以及文件系统的分区表如图3-2文件系统内核bootloader启动参数 图3-2 关系图对于每一种体系结构,都有一系列开放源码的BootLoader可以选用。而UBoot已经成为ARM平台事实上的标准BootLoader。Bootloader是一段可执行程序,完成的主要功能是将可执行文件(一般是操作系统)搬移到内存中,然后将控制权交给这段可执行文件(操作系统)。3.2.1 Bootloader的安装媒介系统上电时或复位以后,都从芯片厂商预先安排的一个地址处取第一条指令执行(对我们的S3C2410芯片,从0x0处开始)。由于上电或复位需要运行的第一段程序就是Bootloader,故必须把

37、Bootloader放入该地址。将Bootloader写入固态存储设备,永久保存,系统上电后将自动执行Bootloader。3.2.2 Bootloader的工作模式(1)下载模式对研发人员来说,Bootloader一般需要工作在这种模式下,特别是调试内核或者Bootloader本身的时候。通过串口终端与Bootloader进行交互,可以操作系统硬件。比如通过网口或者串口下载内核,烧写Flash等等。(2)启动加载模式嵌入式产品发布的时候,Bootloader必须工作在该模式下。这种情况下,Bootloader必须完成硬件自检、配置,并从Flash中将内核拷贝到SDRAM中,并跳转到内核入口,

38、实现自启动,而不需要人为的干预。3.3 u-boot 简介1999年由德国DENX软件工程中心的Wolfgang Denk发起,全称Universal Bootloader。特点:支持多种硬件构架:包括ARM、x86、PPC、MIPS、m68k、NIOS、Blackfin支持多种操作系统:包括Linux、VxWorks、NETBSD、QNX、RTEMS、ARTOS、LynxOS.支持多达216种以上的开发板,开放源代码,遵循GPL条款,易于移植、调试官方网站:http:/www.denx.de/wiki/U-Boot/WebHome 3.3.1 u-boot目录结构board 目标板相关文件,

39、主要包含硬件初始化、SDRAM初始化common 独立于处理器体系结构的通用代码 cpu 与处理器相关的文件,包含cpu初始化、串口初始化、中断初始化等代码drivers 设备驱动代码,如Flash驱动、网卡驱动、串口驱动等fs U-Boot支持的文件系统的实现,如cramfs、fat、ext2、jffs2等include U-Boot使用的头文件,包括不同硬件构架的头文件lib_xxx 处理器相关文件,如我们要使用的lib_arm,与arm体系结构相关的文件net 网络功能的上层文件,实现各种协议,如nfs、tftp、arp等u-boot 存储映射图见图3-3图3-3 u-boot存储映射图

40、3.3.2 u-boot 移植 (1)首先下载u-boot的源码包,然后解压,进入源码包目录。(2)修改源码让u-boot支持从Nand Flash启动。具体如下:(a)修改“u-boot-2014.10/cpu/arm920t/start.S”文件,执行以下命令:#vim cpu/arm920t/start.S(b)181行和201行前加上/,注释掉181 /#ifdef CONFIG_AT91RM9200201 /#endif(c)#ifndef CONFIG_SKIP_RELOCATE_UBOOT之后加入:#ifdef CONFIG_S3C2410_NAND_BOOTbl copy_my

41、self#else(d)“ble copy_loop”语句之后加入:#endif(e)“_start_armboot: .word start_armboot”语句之后加入copy_loop子程序:/* copy u-boot to ram*/#ifdef CONFIG_S3C2410_NAND_BOOTcopy_myself:mov r10, lr save return address to r10ldr sp, DW_STACK_STARTmov fp, #0bl NF_Initldr r0, =UBOOT_RAM_BASEmov r1, #0x0mov r2, #0x30000bl n

42、and_read_wholetst r0, #0x0beq ok_nand_read1: b 1bok_nand_read:mov r0, #0x00000000ldr r1, =UBOOT_RAM_BASEmov r2, #0x400go_next:ldr r3, r0, #4ldr r4, r1, #4teq r3, r4bne notmatchsubs r2, r2, #4beq done_nand_readbne go_nextnotmatch:1: b 1bdone_nand_read: mov pc, r10#endifDW_STACK_START: .word STACK_BAS

43、E+STACK_SIZE-4(3)新建“u-boot-2014.10/ board/smdk2410/nand.c”文件执行命令:#vim board/smdk2410/nand.c在打开的文件里添加如下内容:(4)修改“u-boot-2014.10/board/smdk2410/Makefile”文件执行命令:#vim board/smdk2410/Makefile将“COBJS:= smdk2410.o flash.o”改为“COBJS:=smdk2410.o flash.o nand.o”(5)修改“u-boot-2014.10/include/configs/smdk2410.h”文件3.3.3 u-boot支持dm9000网卡步骤如下:(1)将dm9000x.h和dm9000x.c两个文件拷贝到drivers/net/下。(2) 修改“u-boot-2014.10/include/configs/smdk2410.h”文件执行命令:#vim include/configs/smdk2410.h(a)将原网卡“CS8900”改为“DM9000”(b)添加网络命令(c)修改IP地址(d)修改命令提示符(e)修改默认下载地址(f)修改环境变

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服