Bootrom(或Boot ROM)是嵌入处理器芯片内的一小块掩模ROM或写保护闪存。它包含处理器在上电或复位时执行的第一个代码。根据某些带式引脚或内部保险丝的配置,它可以决定从哪里加载要执行的代码的下一部分以及如何或是否验证其正确性或有效性。有时它可能包含其他功能,可能在引导期间或之后由用户代码使用。一些例子:

iPhone启动ROM。嵌入在掩模ROM中并且无法修改。从闪存或USB(在DFU模式下)加载下一级引导加载程序,并使用内置RSA实现验证其签名。还为下一级引导加载程序提供加速解密功能。

TI的OMAP4引导ROM。可以从闪存(NOR,NAND,OneNAND),外部存储器,SD / MMC,USB或UART加载用户代码。引导顺序和选项由带(SYSBOOT)引脚设置。为后续阶段提供一些功能(缓存/ TLB管理等)

恩智浦LPCxxxx系列Boot ROM。放置在内部闪存的隐藏部分,在开机时映射为0。实现CRP(代码读取保护),ISP(系统内编程),允许通过UART上传和刷新新代码。如果有效的用户代码在flash中(需要具有适当的校验和),则将其映射到0并跳转到它。 bootrom的一部分仍然映射以提​​供IAP(应用程序内编程)和一些其他服务。

引导程序
Bootloader负责查找和加载应该在芯片上运行的最终操作系统或固件。与bootrom的一个主要区别是它通常在可写闪存中,可以更换或升级。

有时bootrom可以执行引导加载程序的工作。例如,OMAP的bootrom足够复杂(它可以解析FAT32!),你可以加载它并直接启动Linux内核。

但是,在许多情况下,使用单独的引导加载程序,或者因为bootrom不够(或不存在),或者因为需要额外的灵活性。它可以非常简单(从RAM中的固定闪存位置加载内核并跳转到它),或者可能更复杂。例如, 的U-Boot 就像一个迷你操作系统本身 - 它有一个控制台,一些命令,允许你打破启动过程,例如修改内核命令行参数,甚至从不同的位置(SD / MMC或USB)加载内核,运行一些测试等等。

当您拥有或多或少复杂的操作系统时,通常会使用引导加载程序,在启动之前可能需要进行一些设置。像NXP的LPC系列这样的小型微控制器通常使用单片固件,因此它们可以在没有它的情况下使用(但是,可能有 自定义引导程序 对他们而言)。

在最简单的芯片上可能根本没有引导ROM或引导加载程序 - 它们只是尝试从固定的启动地址获取和执行指令。事实上,今天大多数x86芯片都是这样工作的 - 他们只是开始在FFFFFFF0上执行代码,期望芯片组已经映射了那里的BIOS闪存芯片。在这里,您可以说BIOS是引导加载程序(尽管它也为操作系统提供服务,类似于bootrom)。

BOOTROM的理解相关推荐

  1. ARM(IMX6U)裸机之I.MX6ULL启动头文件详解(内部BOOT ROM、IVT + Boot data + DCD + led.bin)

    参考:Linux之ARM(IMX6U)裸机之I.MX6ULL镜像烧写以及启动头文件的详解 作者:一只青木呀 发布时间: 2020-08-09 17:10:00 网址:https://blog.csdn ...

  2. ZYNQ + Linux

    ZYNQ Linux操作系统移植说明文档 http://xilinx.eetrend.com/content/2019/100018437.html 1,组成 ZYNQ上面移植Linux操作系统包括四 ...

  3. [trustzone]-ARMV8的aarch64和aarch32环境下ELx级别的理解

    ★★★ 友情链接 : 个人博客导读首页-点击此处 ★★★ 文章目录 1.aarch32/aarch64的理解 2.举例:MTK平台中的aarch32和aarch64 1.aarch32/aarch64 ...

  4. cmd文件 c语言的段,对于TMS320F2812的CMD文件的理解

    1.COFF格式 要谈CMD文件,首先不可避免的要谈下COFF格式,COFF格式是通用目标文件格式(Common Object File Format)的缩写,它是一种流行的二进制可执行文件格式,在D ...

  5. FPGA - Zynq - 加载 - BootRom

    FPGA - Zynq - 加载 - BootROM 题外话 BootROM BootROM Header Definition BootROM Header Searching and Loadin ...

  6. Bootrom -> bootloader -> kernel -> init >android

    Bootrom -> bootloader -> kernel -> init -> Android PBL ->xbl/abl ->kernel_init PBL ...

  7. 1525_AURIX TC275 BootROM上

    全部学习汇总: GitHub - GreyZhang/g_TC275: happy hacking for TC275! 这一次看一个全新的章节,BootROM,这是我之前只听过但是没有接触过的一个功 ...

  8. 关于Aurix的内存,缓存Cache,PSPR等的理解-(持续更新)

    AURIX的芯片手册: 内存 内存在电脑中起着举足轻重的作用.内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE). RAM作为主存的主要部分,按其结 ...

  9. ZYNQ bring-up分析(bootrom+fsbl)

    0.说明 上一节基于vivado2021.1及vitis完成PL及PS工程搭建调试,通过创建vivado工程,导出硬件,vitis完成一个uart打印的裸机程序.似乎一切都在操作软件IDE,没有涉及到 ...

  10. 程序启动BOOT理解

    已经做嵌入式好几年了,现在才发现对芯片内部的事一概不知,真是少壮不努力,老大徒伤悲(郑重声明:我还是花季,正值年少呢),现在开始补这方面的知识,加油. 对于ARM芯片来说,芯片里面都有什么: 1.FL ...

最新文章

  1. 《深度学习:Java语言实现》一一2.6小结
  2. oracle-一些查看性能相关的视图
  3. vs2008、vs2010、vs2012中查看变量在内存中的内容的方法
  4. 【工具】PlatformIO终于能用了,arduino大型项目开发环境PIO,编辑器+编译器+调试全功能...
  5. ajax如何实现、readyState五中状态的含义
  6. MySQL主从复制能完美解决数据库单点问题吗?
  7. 3.5 矩阵 $4$ 个空间和方程 $A\mathbf{x}=\mathbf{y}$ 的关系
  8. how is abap.js being loaded
  9. java基础----Java中枚举的使用(一)
  10. python闭包详解函数_详解python函数的闭包问题(内部函数与外部函数详述)
  11. 三同轴连接器_一种毫米波频段微带同轴转换结构
  12. 异动分析技术解决方案—异动归因之指标拆解
  13. IIS 7.0 部署MVC
  14. ps 和 kill 结合使用
  15. 【金蝶K3Cloud】Python拼接字段
  16. VS2005代码格式化
  17. 吴氏网解析——dips与极坐标系平面投影
  18. idea保存快捷键_IntelliJ IDEA 快捷键大全 | 终极版
  19. 猫鼠游戏之勒索病毒来袭
  20. 什么是反向跟单?反向跟单怎么运作?

热门文章

  1. scrapy抓取斗鱼APP主播信息
  2. YouTuBe油管/头条点赞订阅关注分享提示PR模板Mogrt
  3. 澳洲计算机专业几年,澳洲计算机硕士几年
  4. 大一新生计算机掌握情况word,2021年大一计算机学习心得word版
  5. 最通俗易懂的网络安全防护原则之进不来、拿不走、看不懂、改不了、跑不掉。
  6. 【深度学习概念】感受野
  7. Android Protect-0.重新打包和签名
  8. WorldPress博客系统更换域名导致博客访问出错的解决方案
  9. android 铃音制作工具,来电铃声大全制作软件
  10. putty使用SSH密钥登录Linux实例