EDN China > 其它文章 > 嵌入式系统 > 参考设计 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 了解嵌入系统的引导技术

Mohit Arora与Varun Jain?? 飞思卡尔半导体公司?? 2011年05月30日 ?? 收藏0

  要运行一个程序,首先必须将程序装入内存。引导过程就解决了这个问题,它通常是一个包含有多个子步骤的复杂的多步骤序列。无论是Windows、Linux或嵌入RTOS(实时操作系统),任何引导过程都开始于为系统加电,然后是去掉系统的复位。在POR(上电复位)期间,如果操作值不同于默认的设置值,则可以重新配置硬件外设。例如,嵌入微控制器通常提供了多种硬件复位配置方法。

  过去几十年来,引导过程已经从一个简单的DOS步骤,发展成为复杂的多操作系统选择,或甚至是基于外设的引导技术。例如,USB(通用串行总线)接口可以从一个外接存储设备引导某个磁盘镜像;这种方案在工业和嵌入系统应用中日趋常见,因为它提供了更多的灵活性。例如,当出现软件崩溃时,系统需要重新载入新的固件,维修工程师可以用USB方法,简单地将新软件复制到一只U盘上,用它引导。于是,服务部门就能节省将设备送给制造商维修的数千美元费用。

  要实现从USB、PCIe(外设部件快速互联)以及SDHC(安全数字大容量)接口以及常规存储设备引导系统的灵活性,需要深层的软硬件能力。开源固件可能也有价值,尤其是广泛应用于嵌入系统平台的U-B

oot(通用引导加载器)工具。基于Linux的引导加载器可以自动引导操作系统;另外,用户也可以手动运行指令来启动操作系统,并且它支持多接口的引导(见附文“U-Boot”)。

  Windows XP系统的引导

  简单的x86引导顺序几乎无须加以说明。Windows XP的步骤差不太多,略微复杂些(图1)。引导序列开始于系统上电;处理器保持在复位状态。当所有电压和电流水平都是可接受时,电源向处理器发出一个电源好(power-good)信号。下一步是POR取消(POR negation),此时有效的电源好信号消除处理器的复位状态,使CPU开始工作。CPU指向ROM引导地址,开始执行BIOS(基本输入输出系统)代码。接下来ROM BIOS完成POST(上电自检),这是一个验证核心硬件基本性能的基础测试。然后,引导过程会通过嘟嘟声来报告此时发现的任何错误,因为视频子系统尚未初始化。

  之后将是视频卡的初始化,在此期间BIOS会搜索视频卡,方法是扫描内存地址C000:0000?C780:0000段,寻找视频ROM。视频测试对发现的任何视频卡做初始化与测试,可能的话还包括其视频内存,并显示配置信息。如果是“冷”启动,则ROM BIOS执行一个完整的POST。如果是“热”启动,则引导过程会跳过POST的内存测试部分。

  现在,BIOS从CMOS中读数。在此步骤中,BIOS定位并读取CMOS中存储的配置信息。主板上一般有一只小型钮扣电池,为CMOS(典型情况下是64字节的小内存)提供维持能量。CMOS内存保存的信息有:日期、时间,以及外设的引导顺序。如果第一可引导磁盘是硬盘,则BIOS会到它的第一个扇区检查有无MBR(主引导记录)。MBR包括如下内容:一个分区表,描述硬盘的布局;一个分区加载码,包括有继续引导步骤的指令。然后,引导加载器或分区加载器在分区表中查找一个活动分区。分区加载器到该分区的第一个扇区上搜索一个引导记录。接下来,引导过程会检查活动分区的引导记录,寻找一个合法的引导标志。如果找到了这个标志,则像一个程序一样执行引导扇区的代码。

  NTLDR(新技术加载器)for Windows是在系统分区根目录下的一个隐藏的系统文件,它控制Windows XP的装载。在NTLDR的初期,它会将处理器从实时模式转换到保护模式,使能32 位的内存寻址,并打开内存分页。然后,NTLDR装入适当的微驱动,这样就能从按Windows XP所支持文件系统格式化的分区(包括FAT-16、FAT-32和NTFS)中,装入文件。

  如果引导初始化文件在根目录下,则NTLDR将其内容读入内存中。如果文件包括一个以上操作系统的入口,则NTLDR挂起引导序列,显示一个选择菜单,等待用户作出选择。然后,NTLDR继续引导过程,定位并装入基于DOS的NT可执行文件,完成硬件的检测。在选择了一种硬件配置后,NTLDR就开始装入Windows XP NT内核文件。在这个过程中清屏,并逐个显示用于表示进度的一串白色方块。现在NTLDR装入标记为引导设备的驱动程序。在此之前,NTLDR交出计算机的控制权。

  此时,系统显示一个图形屏幕,其上有一个状态条,指示装入的状态。在后面的初始化期间,系统不能接受设备的中断。另外,I/O管理器也开始装入NTLDR留下的其余系统驱动。这个初始化期间的最后任务是启动进程管理器子系统,这个子系统负责创建用户的模式环境。进程管理器子系统再装入Windows设备驱动,以实现图形子系统。当一个用户成功登录到系统上时,Window


上一页1234下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

嵌入式系统? 引导加载器?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈