UBOOT基础知识-ppt课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《UBOOT基础知识-ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UBOOT 基础知识 ppt 课件
- 资源描述:
-
1、中中 嵌嵌Teacher Xie 1ppt课件提提 纲纲理论:理论:nBootLoaderBootLoader介绍介绍nUbootUboot介绍介绍nUbootUboot命令命令nUbootUboot工作流程工作流程nUbootUboot移植移植nUbootUboot烧写烧写实验:实验:n移植移植UbootnUboot使用使用2ppt课件第一节第一节BootLoader介绍介绍3ppt课件概念概念什么是什么是BootLoaderBootLoader?4ppt课件软件层次软件层次一个嵌入式系统从软件角度来看分为三个层次:一个嵌入式系统从软件角度来看分为三个层次:1. 1. 引导加载程序引导加载程
2、序 包括固化在固件包括固化在固件( (firmware)firmware)中的中的 boot boot 代码代码( (可选可选) ),和,和 BootLoaderBootLoader 两大部分。两大部分。 2. 2. Linux Linux 内核内核 特定于嵌入式平台的定制内核。特定于嵌入式平台的定制内核。 3. 3. 文件系统文件系统 包括了系统命令和应用程序。包括了系统命令和应用程序。 5ppt课件软件层次软件层次一个同时装有一个同时装有 BootLoaderBootLoader、内核的启动内核的启动参数参数、内核映像内核映像和和根文件系统根文件系统映像的固映像的固态存储设备的典型空间分配
3、结构图:态存储设备的典型空间分配结构图:6ppt课件回忆回忆PCPCPC机中的引导加载程序由机中的引导加载程序由BIOSBIOS(其本质是一段固件程序)其本质是一段固件程序)和位和位于于硬盘硬盘MBRMBR中的引导程序中的引导程序( (GRUBGRUB或或LILO)LILO)一起组成。一起组成。BIOSBIOS在完成硬在完成硬件检测和资源分配后,将硬盘中件检测和资源分配后,将硬盘中的引导程序读到系统内存中然后的引导程序读到系统内存中然后将控制权交给引导程序。引导程将控制权交给引导程序。引导程序的主要任务是序的主要任务是将内核从硬盘上将内核从硬盘上读到内存中读到内存中, ,然后跳转到内核的入然后
4、跳转到内核的入口点去运行,即启动操作系统。口点去运行,即启动操作系统。7ppt课件定义定义在嵌入式系统中,在嵌入式系统中,通常通常没有像没有像BIOSBIOS那样的固那样的固件程序,件程序,因此整个系统的加载启动任务就完因此整个系统的加载启动任务就完全由全由BootLoaderBootLoader来完成来完成。比如在一个基于。比如在一个基于 ARM7TDMIARM7TDMI corecore的嵌入式系统中,系统在上电的嵌入式系统中,系统在上电或复位时都从地址或复位时都从地址 0 0 x00000000 x00000000开始执行。而开始执行。而在这个地址处安排的通常就是系统的在这个地址处安排的
5、通常就是系统的BootLoaderBootLoader程序。程序。8ppt课件定义定义简单地说,简单地说,BootLoaderBootLoader就是在操作系统就是在操作系统运行之前运行的运行之前运行的一段小程序一段小程序。通过这段。通过这段小程序,可以初始化硬件设备,从而将小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备以便为最终调用操作系统做好准备。9ppt课件功能功能BootLoaderBootLoader 的的主要任务主要任务是是初始化硬件初始化硬件(如:串口,内存)(如:串口,内存),然后将内核映
6、,然后将内核映象从象从 Flash Flash 中读到中读到 RAM RAM 中,然后跳中,然后跳转到内核的入口点去运行,也就是转到内核的入口点去运行,也就是启启动操作系统动操作系统。10ppt课件安装安装系统加电或复位后,所有的系统加电或复位后,所有的CPUCPU通通常都从常都从CPUCPU制造商预先安排地址开制造商预先安排地址开始执行始执行。比如,比如,S3C2410S3C2410在复位后在复位后从地址从地址0 0 x00000000 x00000000起开始执行起开始执行。而而嵌入式系统则将固态存储设备(比嵌入式系统则将固态存储设备(比如:如:FLASHFLASH)安排在这个地址上)安排
7、在这个地址上,而而bootloaderbootloader程序又安排在固态存程序又安排在固态存储器的最前端储器的最前端,这样就能保证在系这样就能保证在系统加电后,统加电后,CPUCPU首先执行首先执行BootLoaderBootLoader程序。程序。11ppt课件移植移植Q:Q:什么叫什么叫bootloaderbootloader移植?移植?Q:Q:为什么需要移植?为什么需要移植?12ppt课件移植移植 每种每种不同的不同的CPUCPU体系结构体系结构都有不同的都有不同的BootLoaderBootLoader。除了依赖于除了依赖于CPUCPU的体系结构外,的体系结构外,BootLoader
8、BootLoader 还依还依赖于赖于具体的嵌入式板级设备的配置具体的嵌入式板级设备的配置,比如板卡的,比如板卡的硬件地址分配,外设芯片的类型等。这也就是说,硬件地址分配,外设芯片的类型等。这也就是说,对于两块不同的开发板而言,对于两块不同的开发板而言,即使它们是基于同即使它们是基于同一种一种CPUCPU而构建的,但如果他们的硬件资源或配置而构建的,但如果他们的硬件资源或配置不一致的话,不一致的话,要想在一块开发板上运行的要想在一块开发板上运行的BootLoaderBootLoader程序也能在另一块板子上运行,还是程序也能在另一块板子上运行,还是需要作修改。需要作修改。13ppt课件流程流程
9、BootLoaderBootLoader 的启动过程可分为的启动过程可分为单阶段单阶段(Single-StageSingle-Stage)和和多阶段多阶段(Multi-StageMulti-Stage)两种,通常多阶段的两种,通常多阶段的 BootLoaderBootLoader 具有更复杂具有更复杂的功能,更好的可移植性。从固态存储设备上的功能,更好的可移植性。从固态存储设备上启动的启动的 BootLoaderBootLoader 大多大多采用两阶段采用两阶段,即启动,即启动过程可以分为过程可以分为 stage 1stage 1和和 stage2stage2:stage1stage1完完成初
10、始化硬件,为成初始化硬件,为stage2stage2准备内存空间,并将准备内存空间,并将stage2stage2复制到内存中,设置堆栈,然后跳转到复制到内存中,设置堆栈,然后跳转到stage2stage2。14ppt课件流程流程BootLoaderBootLoader 的的 stage1 stage1 通常包括以下步骤:通常包括以下步骤:硬件设备初始化硬件设备初始化为加载为加载 BootLoaderBootLoader 的的 stage2 stage2 准备准备 RAM RAM 空空间间拷贝拷贝 BootLoaderBootLoader 的的 stage2 stage2 到到 RAM RAM
11、空间中空间中设置好堆栈(设置好堆栈(why?why?)跳转到跳转到 stage2 stage2 的的 C C 入口点入口点15ppt课件流程流程BootLoaderBootLoader 的的 stage2stage2 通常包括以下步骤:通常包括以下步骤:初始化本阶段要使用到的硬件设备初始化本阶段要使用到的硬件设备将内核映像和根文件系统映像从将内核映像和根文件系统映像从 flash flash 上读上读到到 RAM RAM 中中调用内核调用内核16ppt课件内存分布内存分布17ppt课件第二节第二节UBOOTUBOOT介绍介绍18ppt课件作用作用UbootUboot是德国是德国DENXDENX
12、小组开发的用于小组开发的用于多多种嵌入式种嵌入式CPUCPU( MIPS MIPS、x86x86、ARMARM、XScaleXScale等等)的的bootloaderbootloader程序程序, , UBootUBoot不仅支持嵌入式不仅支持嵌入式LinuxLinux系统的系统的引导,还支持引导,还支持VxWorksVxWorks, QNX, QNX等等多种多种嵌入式操作系统嵌入式操作系统。19ppt课件下载下载从下面地址可以下载到从下面地址可以下载到ubootuboot的源代码:的源代码:http:/http:/ 20ppt课件目录树目录树进入到进入到UBOOTUBOOT目录,可以得到如下
13、的目录,可以得到如下的目录结构目录结构:|board|common|cpu|disk|doc|drivers|dtt|examples|fs|include21ppt课件目录树目录树|lib_arm|lib_generic|lib_i386|lib_m68k|lib_microblaze|lib_mips|lib_nios|lib_nios2|lib_ppc|net|post|rtctools22ppt课件目录结构目录结构(展示展示)BoardBoard和开发板有关的文件。每一个开发板都以一个子目录出现和开发板有关的文件。每一个开发板都以一个子目录出现在当前目录中,比如在当前目录中,比如: :
14、SMDK2410,SMDK2410,子目录中存放与开发板相子目录中存放与开发板相关的文件。关的文件。CommonCommon实现实现UbootUboot支持的命令。支持的命令。CpuCpu与特定与特定CPUCPU架构相关的代码,每一款架构相关的代码,每一款UbootUboot下支持的下支持的CPUCPU在该在该目录下对应一个子目录,比如有子目录目录下对应一个子目录,比如有子目录arm920tarm920t等。等。23ppt课件DiskDisk 对磁盘的支持。对磁盘的支持。DocDoc文档目录。文档目录。UbootUboot有非常完善的文档,推荐大家参考阅读。有非常完善的文档,推荐大家参考阅读。
15、 DriversDriversUbootUboot支持的设备驱动程序都放在该目录,比如各种网卡、支持的设备驱动程序都放在该目录,比如各种网卡、支持支持CFICFI的的FlashFlash、串口和串口和USBUSB等。等。目录结构目录结构(展示展示)24ppt课件目录结构目录结构(展示展示)FsFs 文件系统的支持文件系统的支持。IncludeInclude UbootUboot使用的头文件。该目录下使用的头文件。该目录下configsconfigs目录目录有与开发板相关的配置头文件,如有与开发板相关的配置头文件,如smdk2410.hsmdk2410.h。该目录下的该目录下的asmasm目录目
16、录有与有与CPUCPU体系结构相关的头体系结构相关的头文件。文件。25ppt课件目录结构目录结构(展示展示)NetNet与网络协议栈相关的代码,例如:与网络协议栈相关的代码,例如:TFTPTFTP协议、协议、RARPRARP协议的实现。协议的实现。ToolsTools生成生成UbootUboot的工具,如:的工具,如:mkimagemkimage, , crccrc等等等。等。26ppt课件编译编译UbootUboot的的MakefileMakefile从从功能上功能上可以分成两可以分成两个部分:个部分:1 1、执行每种、执行每种boardboard相关的配置相关的配置2 2、编译生成、编译生
17、成ubootuboot.bin.bin文件文件27ppt课件编译编译(演示演示)UbootUboot.bin.bin的生成也分为两步,以的生成也分为两步,以smdk2410smdk2410为例来说明,如下:为例来说明,如下:1.1. 对于对于boardboard进行配置:进行配置:$ $make smdk2410_make smdk2410_configconfig2.2. 进行编译生成进行编译生成u-boot.binu-boot.bin:$make CROSS_COMPILE=arm-$make CROSS_COMPILE=arm-linuxlinux- -28ppt课件 第三节第三节UBO
18、OT命令命令29ppt课件常用命令常用命令(演示演示)尽管尽管UBOOTUBOOT提供了丰富的命令集,但不同的单板所提供了丰富的命令集,但不同的单板所支持的命令并不一定一样(支持的命令并不一定一样(可配置,可配置,How?How?后面章后面章节节),),help help 命令可用于察看当前单板所支持的命命令可用于察看当前单板所支持的命令。令。2410 # 2410 # helphelpautoscr -run script from memorybase -print or set address offsetbdinfo -print Board Info structureboot -b
19、oot default,i.e.,run bootcmdbootm -boot application image from memorybootp -boot image via network using BootP/TFTP protocol30ppt课件环境变量相关环境变量相关(演示演示) PrintenvPrintenv 打印环境变量打印环境变量usagusage:e: printenvprintenv - print values of all environment variables- print values of all environment variablesprint
20、envprintenv name . name . - print value of environment variable name - print value of environment variable nameUbootUboot printenvprintenvbaudratebaudrate=115200=115200ipaddripaddr=192.168.1.1=192.168.1.1ethaddrethaddr=12:34:56:78:9A:BC=12:34:56:78:9A:BCserveripserverip=192.168.1.5=192.168.1.531ppt课
21、件环境变量相关环境变量相关(演示演示)SetenvSetenv 设置新的变量设置新的变量( (修改已有变量修改已有变量) )setenvsetenv name value . name value . - - setset environment variable name to environment variable name to value .value .setenvsetenv name name - - deletedelete environment variable name environment variable nameUbootUboot setenvsetenv m
22、yboardmyboard AT91RM9200DK AT91RM9200DKUbootUboot printenvprintenv ethaddr ethaddr=12:34:56:78:9A:BC=12:34:56:78:9A:BCserveripserverip=192.168.1.5=192.168.1.5myboardmyboard=AT91RM9200DK=AT91RM9200DK32ppt课件环境变量相关环境变量相关(演示演示)SaveenvSaveenv 保存变量保存变量将当前定义的所有变量及其值存入将当前定义的所有变量及其值存入flashflash中。中。33ppt课件文件下
23、载文件下载(演示演示)TftpTftp 通过网络下载文件通过网络下载文件 * *使用使用tftptftp,需要先配置好网络需要先配置好网络UbootUboot setenvsetenv ethaddrethaddr 12:34:56:78:9A:BC 12:34:56:78:9A:BCUbootUboot setenvsetenv ipaddripaddr 192.168.1.1 192.168.1.1UbootUboot setenvsetenv serveripserverip 192.168.1.254 192.168.1.254 (tftptftp服务器的服务器的地址)地址)例:例:U
24、bootUboot tftptftp 32000000 32000000 vmlinuxvmlinux把把serverserver(IP=IP=环境变量中设置的环境变量中设置的serveripserverip)中服务目录中服务目录 下的下的vmlinuxvmlinux通过通过TFTPTFTP读入到读入到0 0 x32000000 x32000000处。处。34ppt课件内存操作命令内存操作命令(演示演示)MdMd 显示内存区的内容。显示内存区的内容。mdmd采用十六进制和采用十六进制和ASCIIASCII码两种形式来显示存储单元的内容。码两种形式来显示存储单元的内容。这条命令还可以采用长度标识
25、符这条命令还可以采用长度标识符 . .l, .wl, .w和和. .b b :mdmd .b, .w, .l address .b, .w, .l addressmdmd.w 100000.w 10000000100000: 2705 1956 5050 4342 6f6f 7420 312e 312e 00100000: 2705 1956 5050 4342 6f6f 7420 312e 312e .VPPCBootVPPCBoot 1.1. 1.1.00100010: 3520 284d 6172 2032 3120 3230 3032 202d 00100010: 3520 284d
展开阅读全文