基于S3C2440的Bootloader研究文档格式.docx
- 文档编号:14078531
- 上传时间:2022-10-18
- 格式:DOCX
- 页数:38
- 大小:303.55KB
基于S3C2440的Bootloader研究文档格式.docx
《基于S3C2440的Bootloader研究文档格式.docx》由会员分享,可在线阅读,更多相关《基于S3C2440的Bootloader研究文档格式.docx(38页珍藏版)》请在冰豆网上搜索。
尹强
导师姓名:
干开峰
完成时间:
2012-05-10
中文摘要
Bootloader是嵌入式系统开发的一个重要环节,它在系统上电时开始执行,完成相关硬件设备初始化,准备好软件运行环境,最后调用操作系统内核。
Bootloader把操作系统和硬件平台衔接起来,对嵌入式系统的后继软件开发十分重要。
本课题深入研究了当前嵌入式系统开发中功能强大、稳定可靠的引导加载程序U-Boot的特征、架构和运行原理,然后以S3C2440微处理器为核心的开发板作为硬件平台,完成了U-Boot移植。
S3C2440是基于ARM920T的32位RISC嵌入式处理器,它是目前市场上应用非常广泛的一款嵌入式处理器,具有通用性。
本课题在移植过程中实现了从SDRAM运行、Flash启动、USB下载、菜单操作界面、下载Yaffs2文件系统和启动Linux内核等功能。
最后利用S3C2440开发板进行实际测试,证实了所移植U-Boot功能的正确性,从而完成了基于U-Boot的系统引导加载程序的构建。
关键词:
嵌入式系统;
S3C2440;
Bootloader;
U-Boot
ResearchofBootloaderbasedonS3C2440
ABSTRACT
Bootloaderisanimportantpartofembeddedsystemdesign.Whenthesystemispoweredon,itwillcompletetherelatedhardwaredeviceinitialization,preparesoftwareenvironment,andfinallycalltheoperatingsystemkernel.Bootloaderlinksuptheoperatingsystemandhardwareplatform,itisveryimporttodevelopethesubsequentsoftwareofembeddedsystem.
Thistopicstudiesin-depththefeature,structureandoperationprincipleofU-Bootwhichisapowerful,stableandreliablebootloaderinembeddedsystemdevelopment,thencompletingthetransplantofU-Bootusingthedevelopmentboardasthehardwareplatform,whosecoreisS3C2440microprocessor.S3C2440isanembeddedprocessorbasedonARM920T'
s32bitsRISC,whichisusedwidlyinthemarketandversatility.
ThefunctionsofSDRAMrunning,Flash-start,USBdownloadandthemenuoperationinterfacearecompleted,thefunctionofdownloadYaffs2filesystem,andboottheLinuxkernelarealsosupported.Finally,theS3C2440developmentboardisusedtotest,confirmingthecorrectnessofU-Boottransplantationfunction,sothebuildthesystembootloaderbasedonU-Bootiscompleted.
KEYWORD:
Embeddedsystem;
U-Boot
目录
第一章前言1
1.1嵌入式系统简介1
1.1.1嵌入式系统定义1
1.1.2嵌入式系统的发展1
1.2Bootloader概述2
1.2.1Bootloader的引入2
1.2.2Bootloader的种类划分2
1.2.3Bootloader研究意义3
1.3本文章节安排3
第二章S3C2440微处理器5
2.1S3C2440主要结构和体系5
2.2S3C2440主要片内资源6
第三章U-Boot移植实现8
3.1U-Boot简介8
3.1.1U-Boot主要特征8
3.1.2U-Boot源码结构8
3.2U-Boot启动模式和工作原理9
3.2.1U-Boot启动模式9
3.2.2U-Boot工作原理10
3.3U-Boot的环境配置15
3.3.1Makefile配置15
3.3.2头文件配置17
3.4支持在SDRAM中运行实现17
3.4.1配置时钟18
3.4.2设置时钟初始化18
3.5Flash启动实现19
3.5.1Flash启动方式判断19
3.5.2NorFlash启动实现21
3.5.3NandFlash启动实现21
3.6USB下载实现24
3.7菜单操作界面实现25
3.7.1U-Boot命令25
3.7.2菜单操作界面实现26
3.8支持烧写Yaffs2文件系统实现27
3.9内核启动实现29
3.9.1U-Boot内核启动方式29
3.9.2添加支持启动内核30
第四章功能测试31
4.1在SDRAM中运行测试31
4.2Flash启动测试31
4.2.1NorFlash启动测试31
4.2.2NandFlash启动测试31
4.3菜单操作界面测试32
4.4启动内核与下载Yaffs2根文件系统测试32
第五章总结33
参考文献错误!
未定义书签。
致谢35
第一章前言
1.1嵌入式系统简介
1.1.1嵌入式系统定义
嵌入式系统是指用于执行独立功能的专用计算机系统。
它由微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,以及嵌入在存储器中的微型操作系统和控制应用软件,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。
嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和通信技术为基础,强调硬件和软件的协同性与整合性,并且软件与硬件可剪裁,以满足系统对功能、成本、体积和功耗等的要求[1]。
1.1.2嵌入式系统的发展
嵌入式技术在20世纪70年代起源于微型机,从此之后,通用计算机与嵌入式计算机就走上了两种不同的道路。
通用计算机系统的技术要求是高速、海量的数值计算;
技术发展方向是总线技术的无限提升,存储容量的无限扩大。
而嵌入式计算机系统的要求则是对象的智能化控制能力;
技术发展方向是与对象系统密切的嵌入性能、控制能力与控制的可靠性。
嵌入式技术的发展日新月异,经历了单片机(SCM),微控制器(MCU),系统级芯片(SoC)3个阶段。
(1)SCM(SingleChipMicrocomputer)
SCM又称单片微型,简称单片机,随着大规模集成电路的发展,计算机的CPU、RAM、ROM、定时器和多种I/O接口集成在一片芯片上,形成芯片级计算机。
这个阶段主要是“寻求”单片形态嵌入式系统的最佳体系结构,也是从这个阶段起,通用计算机与嵌入式计算机就走上了两种不同的道路。
(2)MCU(MicroControllerUnit)
MCU即微控制器阶段的特征是:
“满足”各类嵌入式应用,根据对象系统要求扩展各种外围电路和接口电路,突显其对象的智能控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地电气、电子技术厂家身上。
(3)SoC(Systemonachip)
随着设计与制造技术的发展,集成电路的设计从晶体管的集成发展到逻辑门的集成,现在又发展到IP的集成,即SoC设计技术。
SoC可以有效地降低电子/信息系统的开发成本,缩短开发周期,提高产品的竞争力,是未来工业界将采用的最主要的产品开发方式。
嵌入式软件随着硬件的发展也发生了很大的变化。
在SCM、MCU阶段,嵌入式软件的编写通常由相关行业的电气、电子专家编写,计算机专业队伍并没有真正进入单片机应用领域。
因此,电子技术应用工程师以自己习惯性的电子技术应用模式从事单片机的应用开发。
这种应用模式最重要的特点是:
软、硬件的底层性和随意性;
对象系统的专业技术的密切相关性;
缺少计算机工程设计方法。
随着嵌入式处理器性能的快速提高,网络、通信、多媒体技术得以发展,很多嵌入式设备具备收发邮件、编写文档、试听等功能,计算机专业人士开始进入嵌入式领域。
这形成了明显的技术特点:
基于操作系统、以网络、通信为主的“非嵌入式底层应用”—除了要完成功能比较特殊、性能比较苛刻外,嵌入式应用软件的开发已经和普通软件没有区别。
实际上,很多基于操作系统的嵌入式应用程序就是在PC机上模拟验证,最后才移入嵌入式设备的。
1.2Bootloader概述
1.2.1Bootloader的引入
随着各种微处理器功能越来越强大以及软件上对操作系统的支持,使得整个嵌入式系统拥有了完整构架。
近年来各种嵌入式操作系统也是层出不穷以适应各种不同功能的微处理器,然而如何加载操作系统却成了嵌入式系统遇到的第一个拦路虎。
根据一些处理器的硬件实例可知,系统上电之后,需要一段程序来进行初始化:
关闭WATCHDOG、改变系统时钟、初始化存储控制器、将更多的代码复制到内存中等[2]。
能够完成这些功能的程序称为Bootloader。
简单地说,Bootloader就是这么一小段程序,它在系统上电时开始执行,初始化硬件设备、准备好软件环境,最后调用操作系统内核。
它把嵌入式硬件和嵌入式操作系统衔接起来,对于嵌入式系统后续软件的开发十分重要,在整个开发中也占有相当大的比例[3]。
1.2.2Bootloader的种类划分
嵌入式世界已经有了各种各样的Bootloader,种类划分也有多种方式,除了按照处理器体系结构不同划分以外,还有功能复杂程度的不同。
首先需要区分一下“Bootloader”和“Monitor”的概念。
严格来说,“Bootloader”只是引导设备并且执行主程序的固件;
而“Monitor”还提供了更多的命令行接口,可以进行调试、读写内存、烧写Flash、配置环境变量等。
“Monitor”在嵌入式系统开发过程中可以提供更好的调试功能,开发完成以后,就完全设置成了一个“Bootloader”。
所以习惯上大家把它们统称为Bootloader。
下面在表1中列出了一些Bootloader的种类的描述和所支持的平台。
表1开放源码Linux引导程序
Bootloader
Monitor
描述
X86
ARM
LILO
否
Linux磁盘引导程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 S3C2440 Bootloader 研究