当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 带有开源软件的嵌入式系统的设计

带有开源软件的嵌入式系统的设计 时间:2020-06-02      来源:原创

软件开发具有挑战性。针对最新设备的嵌入式开发更具挑战性。该技术领域面临的其他障碍主要归因于部署在设备内部的快速升级的代码行,如果要获得商业成功,这些代码必须为常规的PC用户界面提供更加统一的外观。

考虑到典型部署场景中可能遇到的障碍的广度,嵌入式空间内软件系统设计的复杂性会迅速升级。由于该软件处于设备内部的部署后阶段,因此其“锁定”性质使该领域的软件编程架构建模给传统的基于PC或服务器的开发环境所面临的挑战带来了更多挑战。

在探索开源软件(OSS)在嵌入式设备开发中的潜力之前,您需要问自己为什么选择这种方法而不是使用任何专有平台或工具集。

测试OSS的健壮性

您是否选择嵌入式OSS来尝试并节省成本–如果是,您是否在必要时考虑了提供支持和服务的全部成本?它是否可以与最先进的开源产品一起使用,这些产品可能会提供复杂嵌入式部署所需的更大功能和灵活性?如果是这样,所讨论的代码是否已得到增强和发展,足以提供一定程度的健壮性?

专有二进制文件

您需要记住的是,与台式机系统相比,嵌入式软件在硬件上的集成要困难得多,因为硬件本身的种类繁多。我们在这里谈论的是您需要为驱动程序进行的配置以及软件堆栈中更高级别的注意事项。

如果您有二进制驱动程序的集合,它们可能不一定起作用。要解决此问题,您需要重新安装驱动程序的源代码,以使其在您的硬件上工作。即使您在一个硬件配置上具有可用的专有驱动程序,在更高版本上也可能无法使用。使用开源软件,您将有机会解决这些问题。但是对于专有二进制文件,您需要要求供应商解决此问题,这可能会大大延迟您的项目。这也适用于完整的软件堆栈,包括UI层。

哪种开发方法最有效?

大多数行业评论家都不建议采用“敏捷”或“极限”编程方法对嵌入式空间最为有效,因为这些模型通常在重量较轻的应用中更为有效。在这种情况下,随着项目向最终游戏的进行,迭代开发模型的使用可以提供更快的系统构建,即缩短上市时间。

嵌入式GUI有所不同

嵌入式GUI可能根本看起来不像桌面应用程序。嵌入式应用程序通常通过简化的输入机制(通过触摸屏或有限的键盘)进行任务驱动。屏幕尺寸通常比台式机小得多,而您没有台式机鼠标。这改变了整个用户体验,影响了应用程序的整体设计。

您很可能会在PC上运行应用程序开发,以模拟嵌入式设备。如果您决定使用Qt之类的应用程序框架,则在PC上运行该应用程序也可能会正常工作。但是您应该为手头的任务计划和设计应用程序,从而使用户在使用触摸屏或有限键盘的较小屏幕上获得良好的体验。

嵌入式的三个支柱

如果要认识和接受嵌入式系统开发的三个支柱,那么可能是以下三个原则:集成,创新和工业化。现在,这些规则已不再是刻板的,它们甚至不是事实上的标准,它们是该领域发展一次又一次地面临的共同挑战。

集成挑战: 与外部合作伙伴和软件开发人员进行协调将不可避免地成为您整个项目的一部分。在这个高度“精确的”开发环境中,要有效地管理此过程,必须提供一定程度的所谓“战略业务计划”,以与您自己的开发团队的工作并行进行。

开源开发在这里有所帮助的地方是,从本质上讲,存在着一个开发者生态系统,形成了开源社区。有时也称为“贡献模型”,这种由社会和技术整合的个人(在某些情况下是团队)的集合具有相同的交流和交换理念。在这种环境下,集成自然更加流畅。

如果您只能将项目带到目前为止,而找不到已经需要的缺失组件和代码块,那么“询问”其他人来帮助您弥补缺失的空白的选项并不罕见。毕竟,部分开源社区会随时寻找将创意发挥作用的下一个方向。

创新挑战: 您需要新产品。您还需要真正创新的必备产品,并且需要生产该产品的技能。缺乏内部嵌入式软件专业知识是该领域开发商店面临的最常见障碍之一。您如何解决这个问题?

很明显,开源开发方法可以在这里提供帮助。显而易见,从本质上讲,开放社区带来的额外范围使您的项目可以利用他人掌握的技能并将其融入自己的项目中。

将魔鬼的拥护者的观点再考虑一秒钟,悲观主义者可能会认为这永远都不是理想的,因为所需的技能永远不会是内部的,而且永远不在需要他们的个人或公司本身的范围之内。现实情况是,几乎没有证据表明这是一个真正的问题。实际上,嵌入式开发人员正在使用开放源代码插件,代码示例或更多成熟的组件来检查和审查他们所发挥的外部技术的每个要素。实际上,他们在工作中学习。

工业化挑战: 嵌入式软件通常以较大的工业化规模出售。构建软件以适应这一挑战并不是一件容易的事,引入互操作性测试必须是此过程的一部分。

与适当的战略计划水平一起勤奋而认真地执行开源开发时,与大型专有开发店相比,其可扩展性没有明显的区别。如果需要的话,与需要在封闭的专有商店内进行的配置相比,互操作性可能会面临更少的挑战。尤其是在大型项目中,没有太多详尽的测试。

人们普遍认为,嵌入式智能电话的工业“驱动器”在嵌入式开发的下一阶段将扮演重要角色,但是电话和PDA绝不是唯一推动嵌入式软件需求的设备。消费类电子产品和家用电器也将推动嵌入式增长。

虽然像三星这样的公司已经将GUI内置到冰箱中(这本身就是一项复杂的工作),但实际上它仍然是独立的设备。当智能电话或其他带有嵌入式软件的复杂产品开始需要通过Web,蓝牙或其他一些标准或协议进行联网时,前面编程挑战的复杂性将成倍增加。毕竟,未经测试的复杂性毫无价值。

诺基亚Qt Framework与三星的合作非常广泛。除冰箱外,Qt还被用于为三星最新的CCTV实施数字录像机开发GUI。作为高级监视设备,该产品还具有基于Web的监视和搜索功能。将此类功能构建到嵌入式软件驱动的设备中是十年前闻所未闻的,开放源代码的广度和范围已经推动了这种发展。

从嵌入式级别的开源软件开发中受益的不仅仅是现代制造业的面向消费者的一端;Qt本身也已用于开发工业领域的产品。西门子已使用Qt开发其SIPLACE大型工业放置机,HGZ咖啡机具有嵌入式Linux触摸屏,该触摸屏再次使用Qt构建。

除了意大利公司MicroNova(其咖啡研磨机具有基于Qt的触摸屏UI)之外,ERSA和Pixy还开发了具有Qt的火车司机显示器。基本上,各种应用程序就像使用当今工具的软件开发人员的想象力一样无限。

但这并不止于此。我们已经谈到嵌入式软件的日益复杂性。如果这种复杂程度不断提高的软件开发与相应的测试水平不相匹配,那么很可能会开发出不良的产品质量和可靠性,这是客户永远不希望看到的。

如果您将此问题与设备本身的功率和物理空间限制没有以相同的速度增加这一事实结合起来,那么您将了解为什么不遵循软件应用程序开发最佳实践,为什么会出现潜在的困境。老实说,即使我们遵循最佳实践,几乎可以肯定,代码行的增长​​速度也要比CPU上可用的晶体管数快,因此不可避免地面临着挑战。

嵌入式的利弊

当我们从技术和商业角度看嵌入式软件应用程序开发时,随着产品功能的增强以及部署工作的繁琐或繁琐,您可能最终会花费更昂贵的开发周期,并遭受上市时间较慢。

我们在这里讨论了开发最佳实践,并且CMMI 5级过程改进方法的要求具有特殊的意义。能力成熟度模型规定,最佳实践应使流程能够促进零缺陷软件开发,并着重于缺陷的因果关系而不是其后果。

如果我们能够做到这一点,并且能够在一定程度上实现互连性和互操作性,从而使我们能够产业化我们的开发并在必要时使用第三方技术,那么嵌入式的未来将一片光明。现在,我们需要的只是开发人员技能以实现它!

上一篇:嵌入式设计中添加802.11n无线连接的基础知识

下一篇:嵌入式Android的十大驱动程序

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2020 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号京公海网安备11010802025203号

回到顶部