Arduino 烧录 Boot Loader
Boot Loader,或「引导程序」,是一个特殊的固件。对于 Arduino 单片机而言,每次按下复位键,或者编译上传新的程序时,都会先加载烧录的 Boot Loader;随后 Boot Loader 再来执行程序,或者根据电脑的指令,将新程序的代码写入闪存中。
在我们平常使用的 Arduino 开发板上,Boot Loader 是预置好的,用户只需要写程序然后上传,而不用关心其它的问题。但在有些情况下,还是需要用户自己来烧录 Boot Loader。例如,Arduino Nano 板有新旧两种 Boot Loader,升级旧的固件就需要重新烧录 Boot Loader。一些第三方厂家根据 Arduino 开源的电路图修改制造的开发板,也需要向其中的 ATmega 微控制器刷 Boot Loader 才能正常工作。
烧录 Boot Loader 的方式有很多种。在 Arduino IDE 的菜单中,选择「工具」 → 「编程器」,即可查看官方支持的方法:

本文将介绍其中的一种方法:使用另一块 Arduino 开发板,作为 ISP(即 in-system programmer),来进行烧录。为了避免歧义,我们将功能正常的版称为「ISP 板」,而需要烧录 Boot Loader 的版称为「空板」。在具体的例子中,将一块「Arduino Leonardo」作为「ISP 板」,一块「Arduino Mega 2560」作为「空板」。
上传程序
将「ISP 板」连接到电脑,并移除其它所有线缆。打开 Arduino IDE,在菜单中选择「文件」 → 「示例」 → 「11.ArduinoISP」 → 「ArduinoISP」。这是一个将 Arduino 变为 AVRISP 的程序,将其编译上传到「ISP 板」即可。




