BootLoader 内核 文件系统.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BootLoader 内核 文件系统

内 核 文 件 系 统 学院计算机与通信工程学院 班级 嵌入式软件11-01 学号 541113430142 姓名 杨战强 BootLoader: 一个嵌入式系统从软件角度来看分为三个层次: 引导加载程序 包括固化在固件(firmware)中的boot程序(可选),和BootLoader两大部分。 Linux内核 特定于嵌入式平台的定制内核。 文件系统 包括了系统命令和应用程序。 在嵌入式系统中,通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。比如在一个基于ARM7TDMI core的嵌入式系统中,系统在上电或复位时都从地址0始执行。而在这个地址处安排的通常就是系统的BootLoader程序。 定义:简单地说,BootLoader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备。 安装:系统加电或复位后,所有的CPU通常都从CPU制造商预先安排地址开始执行。比如,S3C2410在复位后从地址0开始执行。而嵌入式系统则将固态存储设备(比如:FLASH)安排在这个地址上,而BootLoader程序又安排在固态存储器的最前端,这样就能保证在系统加电后,CPU首先执行BootLoader程序。 为什么要进行BootLoader移植? 每种不同的CPU体系结构都有不同的BootLoader。除了依赖于CPU的体系结构外,BootLoader还依赖于具体的嵌入式板级设备的配置,比如板卡的硬件地址分配,外设芯片的类型等。这就是说,对于两块不同的开发板而言,即使他们是基于同一种CPU而构建的,但如果他们的硬件资源或配置不一致的话,要想在一块开发板上运行的BootLoader程序也能在另一块板子上运行,还是需要作修改。 BootLoader的stage1通常包括以下步骤: 硬件设备初始化 为加载BootLoader的stage2准备RAM空间 拷贝BootLoader的stage2到RAM空间中 设置好堆栈 跳转到stage2的C入口点 BootLoader的stage2通常包括以下步骤: 初始化本阶段要使用到的硬件设备 将内核映像和根文件系统映像从flash上读到RAM中 调用内核 Bootloader需要具备以下几个功能: 1:初始化RAM Bootloader必须能够初始化RAM,因为将来系统要通过它来保存一些Volatile数据 2:初始化串口 Bootloader应该要初始化以及使能至少一个串口,通过它与控制台通信 3:启动内核镜像 根据内核镜像保存的介质不同,可从FLASH以及RAM启动,下面系统状态必须得到满足 CPU寄存器设置 R0=0; R1=机器类型 R2=启动参数标记列表在RAM中的起始地址 这3个寄存器的设置是在最后启动内核时通过启动参数传递完成的 CPU模式 关闭中断,属于SVC(管理模式) Bootloader中没有必要支持中断的实现,这属于内核机制以及设备驱动管理的管理范畴;SVC模式是系统的一种保护模式,这样就可以进行一些只能在SVC模式下的操作(比如一些特定寄存器的访问操作) Cache和MMU的设置 MMU必须关闭 数据cache必须关闭 指令cache可以关闭也可以启动 Bootloader中所有对地址的操作都是物理地址,不存在虚拟地址,因此MMU必须关闭,Bootloader主要是装载内核镜像,镜像数据必须真实写回SDRAM中,所以数据cache必须关闭,而对于指令cache,不存在强制性的规定,但在一般情况下,推荐关闭cache Bootloader启动流程: 一:stage1 1》:完成基本硬件初始化 软件运行离不开硬件,BOOT必须要对硬件进行初始化.硬件的初始化通过配置特殊控制寄存器来完成,包括下面几个部分: (1) 关Watchdog Timer (2) 屏蔽所有的中断 为中断提供服务通常是 OS 设备驱动程序的责任. 因此Boot的执行全过程中可以不必响应任何中断。中断屏蔽可以通过写 CPU 的中断屏蔽寄存器及状态寄存器(ARM的 CPSR 寄存器)来完成 (3) 初始化PLL(锁相环)和时钟(设置CPU的速度) PLL的输出频率要就是处理器的工作主频. (4)初始化RAM 使用一组专用的特殊功能寄存器来控制外部存储器的读/写操作,通过对该组特殊功能寄存器编程,可以设定外部数据总线宽度,访问周期,定时的控制信号(例如RAS和CAS)等参数.这些主要要通过设置13 个从0x1C80000(BWSCON)开始的寄存(MEMORYCONTROLLER SPECIAL REGISGE

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档