Answers:
引导加载程序是一个几乎总是在Arduino上的小程序。它管理着上载和开始制作的草图,并在电路板复位时使第13针LED闪烁。
刻录引导加载程序:
Tools ► Board ►
在IDE中选择了要刻录到的正确板。即使可以正确上传程序,也请仔细检查;上传并不总是需要合适的板。Tools ► Programmer ►
。Tools ► Burn Bootloader
,然后等待。它不应该超过一分钟,通常只需几秒钟。资料来源:
{line 1} or other dedicated ISP programmer.
引导加载程序到底是什么?
引导加载程序是驻留在程序存储器“较高”部分的一小段代码。通常,上传新草图时不会删除它。其目的是在复位后立即激活(熔丝配置为在引导加载程序地址而不是地址0x0000处开始代码)。引导加载程序将等待一小段时间(例如一秒钟),以查看“编程”数据是否已到达串行端口。
如果是这样,它将读取该数据,并对其进行解码以对闪存的其余部分进行重新编程。与上传程序(通常为avrdude)配合使用,新草图通过串行端口发送。引导加载程序将擦除闪存页面,并用新代码替换它们。完成后,它将执行新代码。
如果没有指令到达,则引导加载程序跳转到地址0x0000,以执行板上的现有草图。
对引导加载程序进行编程的另一种方法是使用我之前写过的草图,该草图在以下位置运行:
“编程”板运行该草图,其中包含用于许多硬编码到其中的板的引导程序。如图所示,用6条连接线将编程板连接到目标板(需要引导加载程序的板)。
那张特定的照片说明了一个Uno正在编程另一张照片。
您运行草图(通过串行监视器进行操作以提供命令)。首先,它确定目标芯片:
Atmega chip programmer.
Written by Nick Gammon.
Entered programming mode OK.
Signature = 0x1E 0x95 0x0F
Processor = ATmega328P
Flash memory size = 32768 bytes.
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xCF
Bootloader address = 0x7E00
Bootloader length = 512 bytes.
Type 'L' to use Lilypad (8 MHz) loader, or 'U' for Uno (16 MHz) loader ...
Type 'G' to program the chip with the bootloader ...
您按G进行编程。
Erasing chip ...
Writing bootloader ...
Committing page starting at 0x7E00
Committing page starting at 0x7E80
Committing page starting at 0x7F00
Committing page starting at 0x7F80
Written.
Verifying ...
No errors found.
Writing fuses ...
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xCF
Done.
Type 'C' when ready to continue with another chip ...
对于Uno,这需要一秒钟。对Mega2560进行编程需要3秒钟。
Atmega引导加载程序程序员的详细说明