空中更新极大地改变了物联网(IoT)系统的运行方式。在这里,Percepio的首席执行官和创始人解释了这些好处。当然,明显的优势是更新更容易,通常是透明地下载和安装。当这与软件跟踪相结合时,它将成为一种强大的机制,可以提高各种嵌入式IoT系统的质量和可靠性。系统仍然部署有错误。尽管开发人员做出了最大的努力,但这些系统仍在部署时仍然存在代码中的错误。平均而言,开发团队在开发过程中每千行代码引入约120个错误,每千行代码中大约有5%(即6个错误)通常留在工厂的软件中。当在现场部署成千上万的IoT设备时,依靠用户报告由这些bug引起的问题既不可靠也不具有可扩展性。用户报告在解决问题时也常常含糊其辞,无济于事。当有数百万个设备时,这一点尤其重要。这些丢失的错误可能不会立即显示,而只会在某些情况下引起问题,否则,它们将在产品出厂之前被发现。尽管空中(OTA)更新可以解决现场问题,但是开发人员需要某种反馈系统来了解已部署设备中的问题,并且他们需要快速了解。这种方法长期以来一直是移动和云应用程序(DevOps)开发的标准方法,现在对于嵌入式开发是可行的。识别新的重要问题并解决该领域问题的关键是软件跟踪,云管理和OTA更新的结合,但这是一个复杂的挑战。在资源有限的系统中,跟踪代码必须尽可能高效。返回云的链接需要安全,透明并传输正确的数据,以帮助开发人员快速轻松地发现任何问题。云服务必须识别新的重要问题,然后通知开发人员存在需要解决的问题。修复后,必须通过OTA更新将更新的软件分发到所有设备。所有这些都需要扩展到数百万个设备。信息流从IoT设备的错误处理代码开始,例如现有的健全性检查和故障异常处理程序。使用软件代理,可以将固件问题作为警报上载到客户的云帐户。警报可能包括错误消息以及与特定问题有关的任何其他信息,例如软件状态变量和硬件寄存器。根据问题的严重性,可以在恢复云连接后直接上载警报,也可以在设备重新启动后上载警报。该警报还可以包括设备中最新软件事件的跟踪,该跟踪由代理自动记录。跟踪还提供了错误的详细信息和上下文,从而使开发人员更容易识别错误。这里的编码效率是确保存储跟踪所需的最少内存量的关键,从而为开发人员提供了确定实际问题所需的上下文。这很重要,有两个原因:即使从受内存限制的IoT系统收集足够长的跟踪时,它也可以将上传时间减少到几分之一秒,并且可以在云侧存储警报消息和存储。运营成本降至最低。这种编码效率使在现场和小型IoT设备中使用跟踪技术成为可能,这带来了巨大的优势。来自固件代理的警报被上载到客户的云服务,该服务被配置为存储警报,还通知引擎以处理分类,统计并向开发人员发送通知。它还提供了配置选项,例如确定向谁以及向谁发送通知的条件。接收通知当开发人员收到有关新问题的通知时,他们可以访问警报和跟踪以查看问题出在哪里。隐私也是这里的关键。软件跟踪永远不需要离开客户的云帐户。云处理仅需要警报的匿名签名,可以在外部云服务中提供该匿名签名。可以使此信息完全透明,可配置且无意义。开发人员IoT平台中的现有功能使用身份验证和加密的最佳实践来提供通信和存储。实验室测试还不够。由于当今嵌入式物联网系统的复杂性,在实验室进行测试不足以消除所有软件问题。实时跟踪和警报可以在现场发现错误时识别错误,并自动