我使用的是带有ATmega328p引导程序的光引导微控制器。Optiboot被配置为在optiboot运行时闪烁一个“启动LED”3次。
Fuse位被设置为一个256字的引导加载程序部分,BOOTRST被编程在启动时跳入引导加载程序部分。
在安装了引导程序后,我通过UART (pin 30和31)闪现实际的固件,所有这些都可以正常工作。
现在回答我的问题:
当我的固件运行,我把atmel的复位线拉到GND,我可以看到“启动LED”闪光灯3次,然后固件的执行开始。这告诉我,引导加载程序在重置后立即运行。然而,当我启动atmel (电源到芯片),我没有看到“启动LED”闪光灯3次,固件代码似乎是立即执行。
有没有人知道为什么optiboot在将复位线拉到GND之后闪烁“启动LED”,而不是当我在芯片上供电的时候?
复位线直接连接到atmel的供电电压10k上。
我希望有人能给我一个解释,任何帮助都是非常感谢的。
发布于 2019-08-20 06:13:28
我认为这是相关的,
在重置时,Optiboot启动并从MCUSR读取重置原因。由于“外部重置”以外的任何原因,应用程序将立即启动。否则,optiboot将尝试下载新的应用程序软件。
https://stackoverflow.com/questions/57467581
复制相似问题