开发嵌入式软件并不像以前那样“简单”。对于许多开发团队来说,创建一个独立的设备仍然经常是具有挑战性的。在物联网时代,我们开始将一切都连接起来,系统的复杂性正在飙升,传统的嵌入式开发人员发现,他们面临着几个新的挑战,需要解决这些挑战才能取得成功。
挑战 1 – 连接性
开发人员面临的第一个挑战是连接性。这听起来很简单,但有很多不同的方式可以连接到互联网。开发人员可以通过 Wi-Fi、移动数据、蓝牙和许多其他潜在来源进行连接。每个都有自己的优点和缺点,以及开发人员需要学习和理解以使硬件正常工作的不同软件堆栈。这甚至不包括关于使用哪些协议(如 UDP、COAP、TCP/IP 和其他几个协议)或是否同时使用多个协议的其他软件考虑。然后是学习和使用 TLS 和/或 MQTT 的挑战,并在你投入服务器时理解这一切是如何工作的。当然,开发人员可以使用预先存在的软件堆栈来帮助减少挑战,但他们仍然需要了解正在发生的事情,以防万一出现问题或需要修改。
挑战 2 – 无线更新
现在该设备终于连接到互联网了,我们可以远程更新它的固件,这听起来是个好主意。使用独立设备时,开发人员过去只需将新固件映像发布到安全站点,然后通过电子邮件向所有客户发送“过来获取它”!借助物联网,软件更新有望奇迹般地出现并自行执行。即使在涉及数千台设备的小型部署中,嵌入式开发人员也需要弄清楚如何:
生成固件更新作业
保护他们的更新
验证它们来自受信任的来源
如果有问题回滚更新
确定何时适合更新设备。
这都是一件棘手的事情,开发人员现在需要了解如何成功部署他们的产品可能会耗费大量时间。
挑战3——安全
连接的设备现在连接良好,这意味着互联网上的其他任何东西也可以看到它们。开发人员现在不仅需要了解如何连接,还需要了解如何保护他们的设备免受不断发展和变得越来越复杂的安全威胁。安全性不是可以在设计周期结束时添加到系统中的东西,也不是可以在一夜之间学会的东西。需要仔细考虑系统如何分区、隔离以及需要保护哪些信息。开发人员需要清楚地确定他们的系统需要有多安全。
挑战 4——调试
随着越来越多的团队构建连接设备,复杂性增加,这意味着调试所花费的时间很可能也会增加。由于开源软件和其他软件包集成在一起,因此系统肯定会产生奇怪和新的行为,除非它们都被设计为首先可以协同工作。嵌入式调查显示,嵌入式开发人员平均已经花费了 40% 的时间进行调试!调试是每个嵌入式项目的巨大时间和成本。出于这个原因,开发人员了解他们可用的所有调试技术以及如何首先防止它们是很重要的。
挑战 5 – 变化率
当然,每年都会推出更强大的处理器,但改进是渐进式的。在过去五年多的时间里,可用技术和他们需要做的事情有了很大的飞跃。它从连接开始,但它迅速扩展到不仅是安全,还包括人工智能和系统。开发人员开始发现他们可用的技术变化得比他们学习它们的速度更快。
结论
这些是开发团队开始从设计独立设备过渡到连接设备时遇到的主要挑战,这些挑战当然不是不可克服的,在许多情况下,解决方案已经以各种形式存在。诀窍在于嵌入式开发人员和团队如何加快速度,然后保持每个开发人员都需要的这些新技能。
发表评论 取消回复