Bootloader 的本质是在单片机的 Flash 存储器中划分出两个独立的区域:
Bootloader 区 (引导加载程序区):
位置:通常位于 Flash 的起始地址(例如 0x00000000)。
内容:一段特殊的、永不改变的程序。它的主要任务是:
初始化最基本的硬件(如 UART、USB)。
检查是否有固件更新请求(例如,检测某个特定引脚的电平、等待串口命令等)。
如果有更新请求,则进入 “升级模式”,通过通信接口接收新的固件数据。
将接收到的数据写入到 “用户应用程序区”。
升级完成后,跳转到新的用户应用程序。
特点:这段程序必须非常稳定和可靠,并且在设计时要防止自身被意外擦除或覆盖。
User Application 区 (用户应用程序区):
位置:位于 Bootloader 区之后的 Flash 空间。
内容:这是你的主应用程序,也就是产品的核心功能代码。
特点:这部分区域是可被 Bootloader 擦除和重写的。每次固件更新,实际上就是替换这个区域的内容。
|