嵌入式开发人员应该考虑在下一个设计中加入引导加载程序来增加远程更新能力,这有五个主要原因。
原因1——修复现场的bug
使用引导加载程序远程更新嵌入式系统的最大原因之一是在产品部署后修复bug。开发团队非常努力地工作,以确保所发布的产品已经消灭了所见的每一个bug。但是开发人员也是人,肯定会有一些错误被忽略。经验反复告诉我们,bug最有可能在老板或客户面前出现在演示中,当然,在产品的初始部署阶段也是如此。引导加载程序为开发团队提供了一种简单的方法,可以毫不费力地删除这些bug。
原因2——为了允许访问编程端口
在产品开发过程中,JTAG、SWD或其他微控制器编程和调试器端口随时可用。然而,在最终产品中,编程端口并不总是容易访问的,而且出于安全原因,也不应该如此。但是,如果需要现场软件更新,打开产品进行访问可能会很困难或耗时,尤其是如果电路板被封装在灌封材料中。嵌入式开发人员使用可通过通信端口访问的引导加载程序绕过了获得对编程端口的物理访问的任何困难,而是提供了一种更容易更新固件的方法。
原因3——为了避免需要专门的硬件工具
即使编程端口可以到达,编程工具也不一定容易被技术人员使用。微控制器编程工具很少是廉价的。大多数公司不愿意投资为他们的现场技术人员配备本地更新固件所需的工具。
原因4——降低维护成本
维护成本可能包括原因3中提到的硬件工具,但是派遣技术人员到现场更新固件也是一项昂贵的工作。在现场部署成千上万的设备,让一大群技术人员跑来跑去更新产品是不切实际的。相反,设置一个可远程访问的嵌入式系统是减少更新产品软件所需人力的一个好方法。最新的固件可以上传到服务器,而不是派嵌入式开发人员到现场,当设备认为它准备好了,它的固件可以自动更新。
原因5——升级产品功能
远程更新固件的一个最重要的原因是升级产品功能。社会是由技术推动的,消费者期待更多的增强和功能。因此,许多公司可以从定期固件更新中受益。初创企业尤其需要利用这一概念。它允许他们最初专注于他们的核心差异化产品功能,进入市场以产生收入,然后随着竞争扩大客户期望,远程开始更新他们的功能和能力。
结论
如果操作得当,远程更新固件对于嵌入式系统来说是一个很好的标准实践。这篇文章中的五个原因只是一些例子,说明了为什么设计者应该考虑在他们的产品中使用引导加载程序。但是,一旦决定包含一个引导程序,嵌入式开发人员正确设计引导加载程序是至关重要的。安全性、故障安全和稳健的操作对于防止系统在现场被破坏至关重要。