Nordic Bootloader Basics(Bootloader基础)

144 阅读2分钟

有关引导加载程序和 DFU(Device Firmware Update) 的前三个主题将涵盖一般引导加载程序和 DFU 概念。

首先逐步了解引导加载程序的工作原理,从非易失性存储器开始。

首先要注意的是,虽然引导加载程序和设备固件更新(DFU)相关,但它们是不同的。

非易失存储器(NVM, Non-volatile memory)

当芯片断电后不会被擦除的内存称为非易失性内存。这种内存在 nRF 芯片上被排列成 32 位寄存器。我们将这样说明这一点:

image.png 所有 Nordic Semiconductor 芯片都是 32 位(8 个十六进制数字)。

在之前的课程中,我们已经将应用程序编程到芯片中。如果运行这些示例之一的开发套件断开连接并重新接通电源,应用程序将再次开始运行,因为应用程序十六进制文件存储在非易失性存储器中。

当 nRF 芯片通电时,它将从地址 0x00000000 开始执行代码(从技术上讲,它是重置向量,在 Arm Cortem-M 上是 0x00000004,因为 0x00000000 是为 SP 初始值保留的。为简单起见,我们将其地址称为 0x00000000)。因此,没有引导加载程序的应用程序从地址 0x00000000 开始存储。通常,应用程序不会填满所有非易失性存储器,因此会剩下一些空间。

image.png

引导加载程序(Bootloader)

基本引导加载程序可以通过名称来解释:引导加载程序在启动时启动并加载您的应用程序。引导加载程序只是在芯片上运行的第二个应用程序十六进制文件。当引导加载程序运行完毕后,它将指示 CPU 从应用程序的启动处继续运行。

image.png