嵌入式u-boot基础二预习报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验二u-boot基础实验的预习报告一实验内容和背景实验背景:BootLoader:在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。在一个基于ARM7TDMIcore的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。[1]对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。对于2块不同的嵌入式板而言,即使它们使用同一种处理器,要想让运行在一块板子上的Bootloader程序也能运行在另一块板子上,一般也都需要修改Bootloader的源程序。反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。例如,U-Boot就同时支持PowerPC、ARM、MIPS和X86等体系结构,支持的板子有上百种。通常,它们都能够自动从存储介质上启动,都能够引导操作系统启动,并且大部分都可以支持串口和以太网接口。在专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次:1、引导加载程序。包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。2、Linux内核。特定于嵌入式板子的定制内核以及内核的启动参数。3、文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用ramdisk来作为rootfs。4、用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可能还会包括一个嵌入式图形用户界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,我们仍然可以对bootloader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。U-Boot:全称UniversalBootLoader,是遵循GPL条款的开放源码项目。U-Boot的作用是系统引导。U-Boot从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是根据相应的Linux内核源程序进行简化而形成的,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。选择U-Boot的理由:①开放源码;②支持多种嵌入式操作系统内核,如Linux、NetBSD,VxWorks,QNX,RTEMS,ARTOS,LynxOS,android;③支持多个处理器系列,如PowerPC、ARM、x86、MIPS;④较高的可靠性和稳定性;⑤高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等;⑥丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;⑦较为丰富的开发调试文档与强大的网络技术支持;本次实验的目的:1.了解BootLoader在嵌入式系统中的作用2.掌握u-boot的基本功能实验内容:设备:1.硬件:CVT-A8系列实验箱,PC电脑(带串口);2.软件:PC机操作系统。二实验涉及的知识点知识点1:BootLoader在嵌入式系统中的作用bootloader会初始化CPU、内存、flash,然后把flash中的部分程序代码复制到内存中,然后就跳转到复制过去的程序起始位置。现在很多CPU总都有一定容量的ROM可以用来储存程序,可是容量没有大到可以储存操作系统这类的程度,所以只能用这种办法,先设计个bootloader来初始化所需要的基本硬件,然后把放置在flash中的大程序复制到内存中,供CPU执行。Bootloader主要的必须作用:把操作系统映像文件拷贝到RAM中去,然后跳转到它的入口处去执行,称之为启动加载模式,该过程没有用户的介入,是它正常工作的模式。步骤如下:Stage2:1.硬件设备初始化。为stage2的执行及随后内核的执行准备好基本的硬件环境2.为加载stage2准备ram空间。为了获得更好的执行速度,通常吧stage2加载到ram中执行3.复制stage2的代码到ram中4.设置好堆栈5.跳转到stage2的c程序入口Stage2:1.初始化本阶段要使用的硬件设备2.检测系统内存映射3.将内核映像和根文件系统映像从flash读到ram中4.为内核设置启动参数5.调用内核知识点2:掌握u-boot的基本功能U-Boot可支持的主要功能列表:1.系统引导支持NFS挂载、RAMDISK(压缩或非压缩)形式的根文件系统;支持NFS挂载、从FLASH中引导压缩或非压缩系统内核;2.基本辅助功能强大的操作系统接口功能;可灵活设置、传递多个关键参数给操作系统,适合系统在不同开发阶段的调试要求与产品发布,尤以Linux支持最为强劲;支持目标板环境参数多种存储方式,如FLASH、NVRAM、EEPROM;3.CRC32校验可校验FLASH中内核、RAMDISK镜像文件是否完好;4.设备驱动串口、SDRAM、FLASH、以太网、LCD、NVRAM、EEPROM、键盘、USB、PCMCIA、PCI、RTC等驱动支持;5.上电自检功能SDRAM、FLASH大小自动检测;SDRAM故障检测;CPU型号;6.特殊功能XIP内核引导;

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功