欢迎来到天天文库
浏览记录
ID:19551730
大小:228.00 KB
页数:29页
时间:2018-10-03
《linux课程设计之bootloader的移植》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、嵌入式Linux课程设计报告课题:嵌入式Linux下的bootloader之u-boot的移植姓名:胡欢专业班级:电信三班学号:080102031122指导老师:刘小洋时间:2011-10-12一概述:(1)BootLoader是什么?系统上电之后,需要一段程序来进行初始化:关闭WATCHDOG、改变系统时钟、初始化存储控制器、将更多的代码复制到内存中等。如果它能将操作系统内核复制到内存中运行,无论从本地,比如Flash;还是从远端,比如网络,就称这段程序为Bootloader。简单地说,BootLoader就是在操作系统内
2、核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。Bootloader是可以添加功能的,比如网络功能。通过串口或网络从PC下载烧写文件、将存储在Flash上压缩的文件解压后再运行等,这样的Bootloader是比较强大的,也称为Monitor。实际上,在最终产品中用户并不需要使用这些功能,
3、它们只是为了方便开发。Bootloader的实现非常依赖于具体硬件,在嵌入式系统中硬件配置千差万别,即使是相同的CPU,它的外设也可能不同,比如Flash不同,所以不可能有一个Bootloader支持所有的CPU、所有的电路板。即使是支持CPU架构比较多的U-Boot,也不是一拿来就可以使用的,需要进行一些移植。(2)为什么需要BootLoader?引导加载程序是系统加电后运行的第一段软件代码。PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OSBootLoader(比如,LILO和GRUB等)
4、一起组成。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的RAM中,然后将控制权交给OSBootLoader。BootLoader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,也即开始启动操作系统。而在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMIcore的嵌入式系统中,系统在上电或复位时通常都从地址0x00000
5、000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。二:系统总体设计和模块结构知识:(一)嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分:(1)引导加载程序:其中包括内部ROM中的固化启动代码和BootLoader两部分。而这个内部固化RO
6、M是厂家在芯片生产时候固化的,作用基本上是引导BootLoader。有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方式:USB、UART或以太网等等。而S3C24x0则很简单,只有Norboot和Nandboot。(2)Linuxkernel和drivers。(3)文件系统。包括根文件系统和建立于Flash内存设备之上的文件系统(EXT4、UBI、CRAMFS等等)。它是提供管理系统的各种配置文件以及系统执行用户应用程序的良好运行环境的载体。(4)应用程序。用户自定义的应用程序,存放于文件系统之中
7、。在Flash存储器中,他们的一般分布如下:(二)U-Boot主要目录结构-board目标板相关文件,主要包含SDRAM、FLASH驱动;-common独立于处理器体系结构的通用代码,如内存大小探测与故障检测;-cpu与处理器相关的文件。如mpc8xx子目录下含串口、网口、LCD驱动及中断初始化等文件;-driver通用设备驱动,如CFIFLASH驱动(目前对INTELFLASH支持较好)-docU-Boot的说明文档;-examples可在U-Boot下运行的示例程序;如hello_world.c,timer.c;-inc
8、ludeU-Boot头文件;尤其configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;-lib_xxx处理器体系相关的文件,如lib_ppc,lib_arm目录分别包含与PowerPC、ARM体系结构相关的文件;-net与网络功能相关的文件目录,如bootp,nfs,
此文档下载收益归作者所有