Linux_bootloader

上传人:biao****biao 文档编号:243142309 上传时间:2024-09-16 格式:PPT 页数:31 大小:424KB
返回 下载 相关 举报
Linux_bootloader_第1页
第1页 / 共31页
Linux_bootloader_第2页
第2页 / 共31页
Linux_bootloader_第3页
第3页 / 共31页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text stylesgood1,Second levelgood2,Third levelgood3,Fourth levelgood4,Fifth levelgood5,博创科技 嵌入互动, 200,7,博,创科技,Click to edit Master title style,Click to edit Master text stylesgood1,Second levelgood2,Third levelgood3,Fourth levelgood4,Fifth levelgood5,博创科技 嵌入互动, 200,7,博,创科技,嵌入式,Linux,的构建及应用开发,博创兴业公司, 200,7,博创科技,北 京 博 创 兴 业 科 技 有 限 公 司,BEIJNG UNIVERSAL PIONEERING TECHNOLOGY Co . , LTD,博创科技 嵌入互动,教学大纲,构建嵌入式,Linux,系统,嵌入式,BootLoader,技术,ARM-Linux 内核原理与移植初步,嵌入式,GUI,嵌入式数据库,第,2,讲 嵌入式,BootLoader,技术,1,3,2,4,Bootloader,的概念,Boot Loader,的操作模式,主要任务与典型结构框架,Linux的Bootloader,(vivi,),5,BLOB,简介,2.1,Bootloader,的概念,Boot Loader,就是在操作系统内核运行之前运行的一段小程序。通过它,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。,通常,,Boot Loader,是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的,Boot Loader,几乎是不可能的。尽管如此,我们仍然可以对,Boot Loader,归纳出一些通用的概念来,以指导用户特定的,Boot Loader,设计与实现。,Boot Loader,所支持的,CPU,和嵌入式板,通常,每种,CPU,体系结构都有不同的,BootLoader,。有些,Boot Loader,也支持多种体系结构的,CPU,,比如,U-Boot,就同时支持,ARM,体系结构和,MIPS,体系结构。,移植的工作,,Bootloader,的板级移植,Boot Loader,的安装媒介,系统加电或复位后,所有的处理器通常都从某个预先安排的地址上取指令。比如,,ARM,在复位时从地址,0x0,取指。,嵌入式系统中通常都有某种类型的固态存储设备(比如:,ROM,、,EEPROM,或,FLASH,等)被映射到这个预先安排的地址上。因此在系统加电后,处理器将首先执行,Boot Loader,程序,Bootloader,是最先被系统执行的程序,固态存储设备的典型空间分配结构,Boot Loader,的控制方式,主机和目标机之间一般通过串口建立连接,,Boot Loader,软件在执行时通常会通过串口来进行通讯,比如:输出打印信息到串口,从串口读取用户控制字符,也可以通过,JTAG,等其他接口通讯,2.2 Boot Loader,的操作模式,大多数,Boot Loader,都包含两种不同的操作模式:,启动加载模式,下载模式,最终用户的角度看,,Boot Loader,的作用就是用来加载操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别,启动加载模式,启动加载模式,称为,“,自主,”,(,Autonomous,)模式,Boot Loader,从目标机上的某个固态存储设备上将操作系统加载到,RAM,中运行,整个过程并没有用户的介入。这种模式是,Boot Loader,的正常工作模式,因此在嵌入式产品发布的时侯,,Boot Loader,显然必须工作在这种模式下。,下载模式,在下载模式下,目标机上的,Boot Loader,将通过串口连接或网络连接等通信手段从主机下载文件,如:下载内核映像和根文件系统映像等,从主机下载的文件通常首先被,Boot Loader,保存到目标机的,RAM,中,然后再被,Boot Loader,写到目标机上的,FLASH,类固态存储设备中。,这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用,Boot Loader,的这种工作模式。,工作于这种模式下的,Boot Loader,通常都会向它的终端用户提供一个简单的命令行接口。,BootLoader,与主机通信,串口传输,传输协议通常是,xmodem,ymodem,zmodem,。程序简单,传输的速度比较慢,,115200bps,通过以太网传输是个好方法。,TFTP,协议是最常见的方式,2.3 BL,的主要任务与典型结构框架,大多数,Boot Loader,都分为,stage1,和,stage2,两大部分。,依赖于处理器体系结构和板级初始化的代码,通常都放在,stage1,中,用汇编言实现,而,stage2,则通常用,C,语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。,Boot Loader,的,stage1,通常包括以下步骤,(,以执行的先后顺序,),:,硬件设备初始化。,为加载,Boot Loader,的,stage2,准备,RAM,空间。,拷贝,Boot Loader,的,stage2,到,RAM,空间中。,设置好堆栈。,跳转到,stage2,的,C,入口点。,Boot Loader,的,stage2,(,1/2,),通常包括以下步骤,(,以执行的先后顺序,),:,初始化本阶段要使用到的硬件设备。,检测系统内存映射,(memory map),。,将,kernel,映像和根文件系统映像从,flash,上读到,RAM,空间中。,为内核设置启动参数。,调用内核。,Boot Loader,的,stage2,确 (,2/2,),stage2,的代码通常用,C,语言来实现,以便于实现更复杂的功能和取得更好的代码可读性和可移植性。,与普通,C,语言应用程序不同的是,在编译和链接,boot loader,这样的程序时,我们不能使用,glibc,库中的任何支持函数。,2.4 Linux,的,Bootloader,系统配置、中断接管、引导,装载内核、根文件系统、参数传递、内核调试、内核和根文件系统的下载等等,常见的,uClinux(Linux,),的,Bootloader,:,Redboot,Blob,Vivi,Uboot,armBoot,vivi,(,1/2,),UP-NETARM2410-S,平台的引导程序,结构简单,基本功能:,xmodem,,,Flash,(,Nand,、,Nor,)坏块管理,保存参数,vivi,(,2/2,),支持,Linux,内核引导,可以传递内核参数,支持分区(,bon,),命令行,引导装载程序的详细设计,第,1,阶段代码设计,第,2,阶段入口代码设计,FLASH,的驱动设计,串口驱动设计,XMODEM,协议的设计,存储器空间分布设计,编译、连接脚本设计,网络接口(可选),阅读,Linux,源码的工具,在,windows,平台下,SourceInsight,(读,C,代码),UltraEdit,(读汇编),vivi,的启动过程,vivi,从,vivi,/,arch,/,s3c2410,/head.S,开始,配置,PLL,、,SDRAM,、,IO,、中断等,查看连接文件,vivi/arch/vivi.lds,程序定位在,0x33f00000,ARM,指令的特点,跳转到第二阶段,on_the_ram,vivi,的第二阶段流程,设置复位模式,板上其他外设初始化,内存映射,,MMU,初始化,系统堆(,heap,)空间初始化,MTD,设备(分区)初始化,初始化,vivi,命令,进入命令行或者引导系统,vivi,的内存映射,vivi,的命令,命令处理在,lib/,command.c,文件中,add_command,find_cmd,execcmd,command_help,在跳到内核时要满足的条件,1,CPU,寄存器的设置:,R0,0,;,R1,机器类型,ID,;关于,Machine Type Number,,可以参见,linux,/arch/arm/tools/mach-types,。,R2,启动参数标记列表在,RAM,中起始基地址;,2,CPU,模式:,必须禁止中断(,IRQs,和,FIQs,);,CPU,必须为,Supervisor,的,保护模式;,3,Cache,和,MMU,的设置:,MMU,必须关闭;,指令,Cache,可以打开也可以关闭;,数据,Cache,必须关闭;,各种模式下的可见寄存器,linux,内核的引导,lib/,boot_kernel.c,中的,boot_kernel,函数,传递启动参数,退出,vivi,,处理,cache,void,call_linux(long,a0, long a1, long a2),函数负责启动,谢谢各位,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!