固件更新选项
从头开发引导程序并不是一件容易的事情。开发人员需要解析出自己的Flash空间,以便多个应用程序可以共存。然后,他们需要开发一些方法将编译后的二进制数据传输到微控制器上,而无需使用编程工具。这要求他们要么开发他们的通信协议,要么通过增加外部存储器来存储新图像来增加他们的系统复杂性。他们也可以增加他们在微控制器上的内存容量。
此外,软件本身可能变得复杂,因为引导加载程序需要设置系统状态并确定是否安全地跳转到应用程序代码。
使用自定义引导加载程序可以为开发人员提供其应用程序非常需要的灵活性,但有一个固件更新标准,可以在许多不需要开发人员工作的应用程序中工作:USB标准的内置设备固件更新(DFU)类。这可以用来通过USB端口在现场更新微控制器的应用程序代码,这可以大大减少固件更新过程和开发周期。
DFU已经变得如此普遍,以至于意法半导体等一些微控制器供应商甚至包括执行硬编码到ROM中的更新所需的软件,通常提供的示例代码如何支持DFU。