bootloader的概念

1.嵌入式系统软件结构与分布

一般情况下嵌入式Linux系统中的软件分为

引导加载程序:包括内部ROM中固化的启动代码和bootloader

Linux kerneldrivers

文件系统:包括根文件系统和建立于Flash内存设备之上的文件系统(EXT4.UBI.CRAMFS

应用程序:

2.linux内核启动条件

Linux内核启动除了内核映像必须在主存的适当位置,CPU还必须具备一定条件:

.CPU寄存器的设置:R0=0;

R1=Machine ID(即Machine Type Number,定义在

linux/arch/arm/tools/mach-types);

R2=内核启动参数在 RAM 中起始基地址;

.CPU模式

必须禁止中断(IRQs 和FIQs);

CPU 必须 SVC 模式;

.cacheMMU设置

MMU 必须关闭;

指令 Cache 可以打开也可以关闭;

数据 Cache 必须关闭;

但是在 CPU 刚上电启动的时候,一般连内存控制器都没有初始化过,主存中根本无法运行程序,更不可能处在 Linux 内核启动环境中。为了初始化 CPU 及其他外设,使得 Linux内核可以在系统主存中运行,并让系统符合 Linux 内核启动的必备条件,必须要有一个先于内核运行的程序,他就是所谓的引导加载程序(Boot Loader)。

3.Boot loader的概念

简单的说,BootLoader就是在OS内核运行之前运行的一段小程序,通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。而基于 CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行 Boot Loader 程序。

Boot loader详细介绍参考:

嵌入式系统 Boot Loader 技术内幕

阅读(693) | 评论(0) | 转发(2) |
0

上一篇:ldd3学习之七:中断处理

下一篇:U-boot简介

相关热门文章
  • linux 常见服务端口
  • xmanager 2.0 for linux配置
  • 【ROOTFS搭建】busybox的httpd...
  • openwrt中luci学习笔记
  • 什么是shell
  • linux dhcp peizhi roc
  • 关于Unix文件的软链接
  • 求教这个命令什么意思,我是新...
  • sed -e "/grep/d" 是什么意思...
  • 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议

你可能感兴趣的:(LINUX)