加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Bootloader

发布时间:2020-12-15 18:32:36 所属栏目:百科 来源:网络整理
导读:? ? ?CPU上电后,会从某个地址开始执行。比如MIPS结构的CPU会从0xBFC00000取第一条指令,而ARM结构的CPU则从地址0x00000000开始。嵌入式开发板中,需要把存储器件ROM或Flash等映射到这个地址,Bootloader就存放在这个地址开始处,这样一上电就可以执行。 Boo

? ? ?CPU上电后,会从某个地址开始执行。比如MIPS结构的CPU会从0xBFC00000取第一条指令,而ARM结构的CPU则从地址0x00000000开始。嵌入式开发板中,需要把存储器件ROM或Flash等映射到这个地址,Bootloader就存放在这个地址开始处,这样一上电就可以执行。

Bootloader的两个阶段:

(1)Bootloader第一阶段的功能。

硬件设备初始化。

为加载Bootloader的第二阶段代码准备RAM空间。

复制Bootloader的第二阶段代码到RAM空间中。

设置好栈。

跳转到第二阶段代码的C入口点。

(2)Bootloader第二阶段的功能。

初始化本阶段要使用到的硬件设备。

检测系统内存映射(memory map)。

将内核映象和根文件系统映象从Flash上读到RAM空间中。

为内核设置启动参数。

调用内核。

所谓检测内存映射,就是确定板上使用了多少内存、它们的地址空间是什么。

将内核存放在适当的位置后,直接跳到它的入口点即可调用内核。调用内核之前,下列条件要满足。

(1)CPU寄存器的设置

R0 = 0。

R1=机器类型ID;对于ARM结构的CPU,其机器类型ID可以参见linux/arch/arm/tools/mach-types.

R2=启动参数标记列表在RAM中的起始基地址。(标记是一种数据结构,标记列表就是挨着存放的多个标记。)

(2)CPU工作模式

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

CPU必须为SVC模式。

(3)Cache和MMU的设置

MMU必须关闭。

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

数据Cache必须关闭。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读