导读: Bootloader 是在单片机上电启动时执行的一小段程序。也称作固件,通过这
段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一
个合适的状态,以便为最终调用应用程序准备好正确的环境。
o 关键字
o 单片机 NN自编程NNBootloaderμPD78F0881
Bootloader 是在单片机上电启动时执行的一小段程序。也称作固件,通过这
段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到
一个合适的状态,以便为最终调用应用程序准备好正确的环境。
Boot 代码由 MCU
启动时执行的指令组成。这里的 loader 指向 MCU 的 Flash 中写
入新的应用程序。因此,Bootloader 是依赖于特定的硬件而实现的,因此,在众多嵌入
式产品中目前还不可能实现通用 Bootloader。
Bootloader 的最大优点是:在不需要外部编程器的情况下,对嵌入式产品的应用代
码进行更新升级。它使得通过局域网或者 Intemet 远程更新程序成为可能。例如,如果
有 5 000 个基于 MCU 的电能表应用程序需要更新,电能表制造商的技术人员就可以避
免从事对每一个电能表重新编程的巨大工作量,通过使用 Bootloader 的功能,由控制
中心通过电能表抄表系统网络,远程对 5 000 个电表重新编程。可见,Bootloader 功能
对于嵌入式系统的广泛应用具有十分重要的意义。
1 78K0/Fx2 系列单片机简介
78K0/Fx2 系列是带 CAN
控制器 的 8 位单片机,该系列单片机广泛应用于汽车电子,
智能仪表等领域。其内置 POC(可编程上电清零电路)/LVI(可编程低电压指示器),
单电压自编程闪存,引导交换功能(闪存安全保护),具有低功耗、宽电压范围、超高
抗干扰等性能。
78K0 系列单片机支持自编程(Self-programming)。所谓自编程,是指用 Flash
存储器中的驻留的软件或程序对 Flash 存储器进行擦除/编程的方法。通过单片机的自编
程功能,可以设计 Bootloader 程序,通过串口等通信 接口 实现对产品重新编程、在线
升级的功能。
以 μPD78F0881 为例。μPD78F0881 为 78KO/Fx2 系列中的一款 44 管脚单片机,
内置 32 KB Flash ROM,2 KB RAM,自带 2 个串行通信接口。其内部 Flash 结构如图
1 所示。为了方便实现擦除和编程,人为地将整个 Flash 分成若干个 block,每个 block
大小为 1 KB。block 为自编程库函数中空白检测、擦除、校验的最小单位。blockO 从
地址 0000H 开始,程序都从 0000H 开始执行。block0~block3 共 4 KB 存储空间为
Bootloader 程序存储区域。block4~block31 为应用程序存储区域。