Answers:
通过在普通固件中添加“启动”命令,我们已在Arduino Pro Mini(ATMega328P)上实现了远程更新。它是如何工作的:
这不需要新的引导加载程序或硬件。但是,对于商用设备而言,这不是一个好的解决方案,因为如果上载的固件已损坏,则在不进行硬重置的情况下,该板将无法进入引导加载程序模式。
某些无线通信设备(例如XBees)具有可远程切换的GPIO。将其连接到Arduino重置引脚将允许将板重置为引导加载程序。
可以编写在RAM中运行的引导加载程序(甚至在Flash中,也许在特殊的引导块中运行-取决于微控制器)。
该引导程序必须能够建立无线通信,了解协议并擦除/写入闪存。
基本上有两种软件升级方法:
您选择哪种协议几乎无关紧要。只要确保有足够的资源将其保存在RAM / Flash中即可。例如,在Arduino Due上,有足够多的资源可用于任何此类实现。
Spark.io开发板对于OTA可编程的类似Arduino的设备也非常有用。我有一个,发现它很容易使用。