0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

评估32位嵌入式软件IP的注意事项

星星科技指导员 来源:嵌入式计算设计 作者:Willard Tu 2022-06-28 15:11 次阅读

对于专业编写代码的人来说,评估“其他人的代码”的过程可能看起来很简单——但这不仅仅是阅读手册或检查源模块。正确评估选择及其长期影响意味着以新的、更广泛的视角看待各种选择。以下是可以帮助搜索更可靠软件的“做/不做”指南列表。

随着嵌入式设计人员为物联网生产数十亿可靠设备的压力,硬件和软件开发方法正在发生变化。挑选零件、获取手册和坐下来编写代码的日子即将结束——不是因为困难,而是因为这样做所涉及的时间。等到采用旧方法的设计师基本工作正常时,竞争对手可能已经发布了他们的成品。

创新是一把双刃剑,进一步推动了不断变化的发展实践。每天都有更多新的微控制器FPGA 处理器内核在 32 位 ARM 架构中被创建和引入,从而带来更多的处理能力来驱动许多设计人员在细节层面上不熟悉的高级外围功能。这在互操作性要求要求对外围设备进行彻底测试的情况下尤其棘手,这对于在所有操作场景下设备与其他设备的可靠连接至关重要。

在这个用户期望很高且处理技术快速发展的新环境中,释放新设备的潜力需要能够更快生产的更好的软件。成功的团队以可重复使用的硬件知识产权 (IP) 模型为基础,现在正在为每个软件 IP 块采用构建-借用-购买策略。代码可以在内部开发,可以从开源社区借用,也可以从供应商处购买,将所有内容都融合到一个解决方案中。

评估软件的注意事项

除了特定的功能和性能要求之外,应该如何评估软件 IP 块?以下是适用于应用构建-借用-购买方法的团队的一些“做/不做”指南。

DO:考虑整个软件堆栈

32 位嵌入式软件 IP 的范围比 8 位和 16 位世界的编译器和调试器要广泛得多。IP 存在于各个领域,包括操作系统、协议栈、用户界面代码和中间件。操作系统和应用程序编程接口 (API) 的选择可以启用或抑制其他选择,这会影响产品生命周期的测试、验证、文档和支持。

不要:假设一切都必须写出来

开发人员历来有代码优先的心态,购买开发工具,可能获得操作系统,然后开始编写应用程序。虽然这为团队提供了对代码的大量控制权,但重用或从可靠来源获取代码实际上可以降低风险,并且肯定会加快开发速度。越来越多的现成软件解决方案,特别是在 ARM 架构的背景下,正在被创建和部署。

DO:寻找符合规范的代码

难以编码的外围设备和功能通常属于网络、用户界面和信号处理类别,必须仔细遵守规范才能正常运行。获取蓝牙、TCP/IP、USB、HTTP Web 服务器、图形和 DSP 库等领域的代码——在其他应用程序中得到验证——可以在项目中发挥作用。

不要:落入开源价值陷阱

开源通常是一个很好的起点。ARM 的一个很好的例子是 Linaro 在 Linux 中为 Cortex-A 系列所做的努力。开发人员应该明白,可能需要努力移植、扩展和验证开源代码以完成价值方程式。例如,BTstack 的开发者——开源蓝牙专家 Matthias Ringwald——欣然承认它是有限范围的处理器和操作系统上的“所需协议的最小集合”。

“标准具有短期,尤其是长期的优势。通常购买的商用现货 (COTS) 软件是查找支持标准的软件的好地方,而通常内部专用软件可能不太面向标准。随着时间的推移,公司希望增强产品;通过遵循标准,其他硬件和软件组件将更有可能帮助未来的发展。”

——Mike Gee,Motomic Software 首席执行官

DO:对对象和源模块都开放

基于对“其他人的代码”的根本不信任或需要遵守以源代码为中心的审查流程,开发人员通常需要访问源代码。然而,拥有源代码并不一定会使代码更值得信赖,或者提供对结果的更多控制——但它肯定会增加项目的费用。在现场应用中证明的自包含功能的对象模块可以高度可靠且具有成本效益,并且可以提供文档以方便审查。

不要:将许可视为理所当然

许可是一个备受争议和高度误解的话题。许多工程师甚至不相信存在问题,认为授权嵌入式代码问题的故事是都市传说。在移动制造商之间纷争不断、共同特征专利的有效性受到激烈争论的时代,不事先关注 IP 许可可能是一个巨大且代价高昂的错误。适当的许可可以保护知识产权的提供者和消费者。

DO:尽可能将代码抽象到 API

充分利用构建-借用-购买策略的关键之一是使用 API,抽象 IP 块之间的接口。这有两个效果:它可以防止在模块内创建对特定于实现的代码的依赖关系,并且它允许 IP 块根据需要换出以用于具有不断变化的需求的未来项目。另一个经常被忽视的考虑因素是系统架构中的竞争时间线,其中并行评估功能块的多个实现并选择最佳方法。

不要:过度设计到低级需求

编写代码的诱惑力如此之大,以至于常常导致一个正当理由:第三方代码并不能满足每一个详细的要求,因此必须完整地开发代码。当然,如果开源或商业代码发现了一个主要需求,或者如果某个特定功能的创新突破是目标,那么应该编写一个代码模块。在构建-借用-购买场景中,高级需求非常值得付出努力,但应重新考虑低级实现细节以避免限制选择。

“我看到人们在决定构建时犯的最大错误是他们认为编写代码并不太难,在某些情况下确实如此。他们完全忽略了调试和测试需要多少时间和成本才能使软件(在我们的例子中是 TCP/IP 和相关协议)在每种配置和每种网络环境中都能正常工作。这不仅会导致更高的成本,而且项目通常会延迟,从而导致收入损失,甚至可能失去市场机会。”

——拉里·拉德,InterNiche Technologies 总裁

DO:专注于公司的核心专业知识

任何构建-借贷-购买策略的一个关键原则是专注于独特的能力,这应该占用大量的工程资源和专业知识。通过专注于开源或商业模块的正确内部开发和重用或集成,可以优化投资回报。事实上,如果一项能力变得突出,一块软件 IP 可能会成为重用的标准,从而打开新的收入机会。

不要:尽量在内部做所有事情

另一方面:很少有公司是制造完整产品所需的所有领域的专家,尤其是在软件变得更加多样化和复杂的情况下。对外部 IP 的抵制曾经被开玩笑地称为 NIH——“不是这里发明的”——但精明的组织正在改变这种心态。

“许多公司试图超越他们的专业知识,并在内部做所有事情。商业 IP 许可公司的存在是有原因的——它们在特定领域拥有核心专业知识,并且能够在开发、测试和部署用于最终产品的 IP 模块方面进行彻底的工作。最终,商业 IP 为开发人员提供了成本更低、功能强大的解决方案;更快的上市时间;减少故障排除;以及更少的客户拒绝。”

– SoftRISC 通信解决方案首席执行官 Ashok Setty

寻找软件进行评估

除了琐碎的复杂性之外,从数据表中评估代码对于模块来说是不可行的——关于实现的质量几乎无法收集。大多数工程师会直接阅读手册,将其评估为代码质量的代表,但许多高级微控制器的文档需要花费数百页的时间阅读。评估代码,再加上硬件开发工具包甚至培训,可以快速回答问题并推动流程向前发展。

不仅如此,32 位 ARM 生态系统提供了统一的结构,使代码搜索变得更加容易,并使嵌入式软件商店成为主要目的地。许多产品都提供评估版本,具有预打包配置和一键式许可,使查找和获取代码变得快速、简单和安全。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6789

    浏览量

    147565
  • 处理器
    +关注

    关注

    68

    文章

    18219

    浏览量

    221940
  • FPGA
    +关注

    关注

    1600

    文章

    21281

    浏览量

    592868
收藏 人收藏

    评论

    相关推荐

    芯片金线包封胶的使用注意事项是什么?

    芯片金线包封胶的使用注意事项是什么?金线包封胶是一种高性能、高粘度的密封胶,广泛应用于电子、电器、汽车等领域。它具有良好的防水、防潮、防震等性能,能够保护产品内部零件不受环境影响,提高产品的使用寿命
    的头像 发表于 01-05 11:29 431次阅读
    芯片金线包封胶的使用<b class='flag-5'>注意事项</b>是什么?

    DC电源模块有哪些注意事项和使用技巧?

    DC电源模块有哪些注意事项和使用技巧?
    的头像 发表于 12-25 13:59 231次阅读
    DC电源模块有哪些<b class='flag-5'>注意事项</b>和使用技巧?

    霍尔元件使用的注意事项

    霍尔元件使用的注意事项  霍尔元件是一种常见的电子元件,主要用于测量和检测磁场的变化。它具有灵敏度高、响应速度快、耐磁场干扰等优点,在各种应用中得到广泛使用。然而,为了确保霍尔元件的正常工作和延长
    的头像 发表于 12-18 14:56 468次阅读

    电流互感器的使用注意事项

    当谈到电流互感器的使用时,有一些重要的注意事项需要我们牢记。在本文中,我们将探讨这些注意事项,为您提供详细和全面的信息。
    的头像 发表于 12-15 10:34 554次阅读
    电流互感器的使用<b class='flag-5'>注意事项</b>

    pcb板线路腐蚀清洗注意事项

    pcb板线路腐蚀清洗注意事项
    的头像 发表于 11-24 17:21 503次阅读

    VGA OUT 的PCB设计注意事项

    VGA OUT 的PCB设计注意事项
    的头像 发表于 11-23 09:04 332次阅读

    紫光同创DDR3_IP_example仿真操作及注意事项

    DDR3_IP_example仿真操作及注意事项#紫光同创PDS软件操作指南#盘古系列开发板软件使用指南~~
    发表于 11-02 17:47

    中8位MCU EEPROM使用注意事项

    中颖8位MCU EEPROM使用注意事项
    的头像 发表于 09-27 15:34 485次阅读
    中8位MCU EEPROM使用<b class='flag-5'>注意事项</b>

    ARM定制指令的设计注意事项和决策

    的硬件加速器时的一系列设计注意事项,以及它与Cortex-M33和Cortex-M55处理器上现有的协处理器接口功能的比较。 本文还介绍了ARM研究的一些用例,如数学加速器,最后还解释了软件开发人员如何访问使用ARM定制指令实现的加速器的主题。
    发表于 08-23 06:39

    直线模组的运行注意事项

    直线模组的运行注意事项
    的头像 发表于 08-21 17:36 888次阅读
    直线模组的运行<b class='flag-5'>注意事项</b>

    安全光栅选择注意事项

    安全光栅选择注意事项
    的头像 发表于 07-14 10:24 543次阅读
    安全光栅选择<b class='flag-5'>注意事项</b>

    使用注意事项

    使用注意事项
    发表于 07-07 19:04 0次下载
    使用<b class='flag-5'>注意事项</b>

    安全光幕选型方法以及注意事项

    安全光幕选型方法以及注意事项
    的头像 发表于 07-06 13:59 459次阅读
    安全光幕选型方法以及<b class='flag-5'>注意事项</b>

    安全光幕选型方法以及注意事项

    安全光幕选型方法以及注意事项
    的头像 发表于 06-28 14:35 452次阅读
    安全光幕选型方法以及<b class='flag-5'>注意事项</b>

    QB-MINI2操作注意事项

    QB-MINI2操作注意事项
    发表于 04-27 18:58 0次下载
    QB-MINI2操作<b class='flag-5'>注意事项</b>