正文

欢迎关注公众号“嵌入式分享”,持续更新!☞

RK3576 有两种模式烧写系统,能不能去掉其中一个?搞清楚下面两个问题,你自然会有答案。

1 Maskrom 和 Loader 有什么区别?

2 为什么需要两种模式?

1 Maskrom 和 Loader 有什么区别?

(1)触发阶段不同

  • Maskrom

    Maskrom全称为 Mask Read-Only Memory,即掩膜只读存储器。在 SOC 芯片制造过程中,RK 原厂会通过掩膜工艺将启动代码(即 BootROM)固化到芯片内部的只读存储区域。前面我们讨论过进入 Maskrom模式的工作原理, BootROM 内部有实现让芯片进入 Maskrom 模式的代码。可见,Maskrom 模式的触发阶段处于 BootROM

  • Loader

    Loader,即加载器。从命名的角度大致可以猜到 Loader 模式的触发阶段是处于Bootloader(即U-Boot)阶段

为了让大家更清晰了解它们触发时系统所处的不同阶段,看下图标注。

图片

(2)适用场景不同

正是由于它们触发所处的阶段不同,决定它们适用的场景不同:

Maskrom模式:适用于板卡未烧录系统或烧录的系统损坏无法运行等几乎所有情况,是一种底层的、兜底的修复模式。Maskrom 模式处在 BootROM 阶段,因此是无法进行分区镜像单独烧写的。

图片

Loader 模式:适合系统能够正常运行(至少到 uboot 阶段是正常的),只需要进行常规升级或单独烧写某一个分区镜像文件等场景。

也就是说,只要系统能正常运行,Loader 模式都可以实现分区镜像文件单独烧写。

图片

下面给出 RK 平台进入烧写模式方式的几种方法:

(1)未烧录过固件,上电,进入 Maskrom 模式。

(2)烧录过固件,按住 recovery 按键上电或复位,系统将进入 Loader 固件烧写模式。

(3)烧录过固件,按住 Maskrom 按键上电或复位,系统将进入 MaskRom 固件烧写模式。

(4)烧录过固件,上电或复位后开发板正常进入系统后,瑞芯微开发工具上显示“发现一个 ADB设备”或“发现一个 MSC 设备”,然后点击工具上的按钮“切换”,进入 Loader 模式。

(5)烧录过固件,可在串口或 ADB 命令行模式下,输入 reboot loader 命令,进入 Loader 模式。

2 为什么需要两种模式?

总体来说,有下面几个因素:

安全隔离‌:MaskRom作为“最后防线”,与 Loader 模式分离可避免用户误操作导致硬件级损坏‌。

效率优化‌:Loader 模式依赖已初始化的bootloader,若bootloader损坏则无法进入,此时MaskRom提供兜底方案‌。

功能专注‌:Loader 专注于用户数据维护,MaskRom专注硬件级修复,分工明确降低系统复杂度‌。

3 结尾

现在,回到文章开头的问题相信你已有答案。

两种模式都保留,硬件设计本质就是一个按键电路的差异,几乎不耗资源和空间。

如你的产品要求非常精简,可以考虑省掉 Recovery 按键电路,因为 Loader 模式除了可以通过Recovery 按键电路硬触发外,还可以通过软触发——只要 uboot 正常运行都可以通过命令 “reboot loader ”进入 Loader 模式烧写。

(完)

欢迎关注公众号“嵌入式分享”,持续更新!☞

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐