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

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

3天内不再提示

嵌入式硬件的软件开发工具趋势

djelje 2022-12-28 09:51 次阅读

都说手里只有锤子的人,看什么都像钉子。为正确的工作使用正确的工具对于任何技术职业的有效性和效率都是至关重要的。嵌入式系统开发也不例外。也就是说,直到最近,针对嵌入式开发的工具还缺乏针对桌面、Web 和移动开发人员的开发工具中的改进和现代功能集。此外,对微控制器FPGA 进行编程历来需要相当昂贵的硬件编程器/调试器和专有软件许可证。最近对更多开源生态系统(例如,RISC-V 微处理器Arduino IDE 等)的推动,可以说对许多嵌入式开发工具的稳健性和用户友好性产生了积极影响。

集成开发环境 (IDE):许多开发人员喜欢使用简单的文本编辑器进行编码,尤其是 Linux 上的 Vim 或 Nano。它们是轻量级的,默认情况下几乎可以在每个 Linux 发行版中找到。然而,现代代码编辑器和 IDE 提供了更多的功能,这使得它们对嵌入式开发人员非常有吸引力。此外,许多嵌入式硬件制造商提供特定于其各种微控制器系列的定制 IDE。以制造商为中心的 IDE 提供了许多优势,例如访问外部组件的支持库、多个微控制器的模板以及帮助开发人员开始使用新硬件的示例。

版本控制工具:如果不是连续的,软件开发就什么都不是。此外,很少有单个开发人员开发现代嵌入式系统。或者至少,嵌入式开发人员必须与移动或 Web 开发人员合作,因为嵌入式系统往往是更大软件生态系统的一部分。Git 等版本控制工具提供了在整个开发周期中管理源代码迭代的能力。GitHub 和 GitLab 是两个流行的基于云的源代码和其他设计文件存储库。版本控制、发布管理和错误报告只是使用版本控制工具的部分好处。但是,也有一些缺点。主要是它们已成为网络安全攻击链的一部分,因为开发人员有时会不小心留下用户名、密码、或他们推送到公开可用存储库的提交中的加密密钥。然后,不良行为者会搜索这些存储库以查找该信息并将其整合到他们的恶意软件攻击中。

调试器:从历史上看,调试微控制器意味着昂贵的硬件。在线仿真器 (ICE) 是插入更广泛系统的微控制器插座的设备。它们允许实时执行固件,同时还提供调试功能,例如寄存器和内存访问、条件断点和跟踪缓冲区。更常见且更便宜的是在线调试器 (ICD)。通常,设备位于开发人员工作站和目标微控制器之间,并允许通过在线串行编程 (ICSP) 协议进行调试。某些现代微控制器开发板甚至内置调试 ICSP 硬件,并通过直接连接目标开发板和开发人员工作站的 USB 电缆进行访问。

Linter:当我们写文章或报告时,我们通过拼写和语法检查工具运行最终草稿。linter 是一个类似的概念,但用于源代码。linter 静态地查看源代码(即,在编译之前,而不是在机器代码在目标设备上运行时),并且可以检测由风格错误、配置错误、项目结构错误、库依赖性错误引起的问题。这些错误会影响从可读性到阻止成功编译的任何事情。

GitHub Copilot:几十年来,自动完成一直是许多代码编辑器的一个功能。自动完成通过在开发人员输入源代码时为关键字和变量名称提供实时智能建议来帮助开发人员提高效率。GitHub 的 Copilot 是一种基于 AI 的代码完成工具(Visual Studio Code 的插件),它将自动完成的理念提升到了一个全新的水平。Copilot 将检查开发人员编写的函数名称,并推荐执行该函数所需的全部源代码。例如,假设您编写以下内容:

float calculateVolume

Copilot 将完成函数声明如下:

float calculateVolume(float radius) {

return (4.0/3.0) * PI * radius * radius * radius;

}

Copilot 本质上是一位 AI 同事,他可以通过至少提供函数定义的起点来帮助开发代码。但是,与任何自动化工具一样,它并不能取代人工审查并在必要时更正 Copilot 生成的代码的需要。

HTTP 和 API 检查工具:嵌入式设备(即物联网设备)不通过网络通信的情况越来越少,即使不是互联网本身。不幸的是,Web 应用程序开发人员很可能正在(与嵌入式开发工作)并行创建软件。Postman 等工具允许嵌入式开发人员独立检查和测试 HTTP 请求方法(例如,PUT、POST、GET)和 API 请求并在将它们提交到固件之前。因此,故障排除与嵌入式硬件无关,确保 API 的任何问题都完全是因为 API 本身,而不是固件或嵌入式硬件。

数据包检查工具:虽然面向开发的 HTTP 和 API 检查工具非常适合高级调试,但有时需要在数据包级别进行检查,或者可能需要检查不同的协议,例如 Zigbee。在这些情况下,有必要使用 Wireshark 等数据包检测工具。Wireshark 可以记录和检查许多基于数据包的通信协议。

基于软件的逻辑分析仪:开发人员越来越普遍地使用基于软件的工具来调试他们的设备,而不是摆满笨重的基于硬件的示波器和逻辑分析仪。通常,基于软件的工具通过 USB 电缆连接到个人计算机,界面以桌面应用程序的形式提供。流行的入门级/中级逻辑分析仪是 Saleae 逻辑分析仪。这些基于软件的工具对现场技术人员来说非常有吸引力。通过将传统上基于实验室的分析带到现场,他们可以更有效地检查和排除已部署设备的故障。基于软件的分析器的一个重要优势是,除了支持的默认协议(例如 I2C、SPI、串行)之外,还可以为自定义通信协议编写您自己的协议分析器。

安全外壳 (SSH) 终端客户端:对于运行操作系统并提供 shell 访问以进行远程管理的更强大的嵌入式系统,可能需要通过 SSH 连接到设备以执行特定的维护任务。或者可能需要远程登录多个物联网设备与之通信的服务器,并对后端服务进行更改。无论如何,远程访问系统的能力至关重要,而 Termius 等 SSH 终端客户端使之成为可能。现代客户端中的其他有用功能包括通过单击鼠标创建、存储和运行 bash 代码片段。它们还提供一次访问多个终端的能力。最后,一些客户端还提供安全文件传输 (SFTP) 功能,用于将文件传输到本地计算机或从远程设备传输文件。

审核编辑黄昊宇

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

    关注

    5057

    文章

    18964

    浏览量

    301806
收藏 人收藏

    评论

    相关推荐

    你认为嵌入式软件开发的尽头是什么?

    嵌入式软件开发的“尽头”是一个富有哲理且多维度的概念,因为它不仅关乎技术发展的极限,还涉及到行业应用、市场需求、技术融合与创新等多个方面。从几个不同的视角来看
    的头像 发表于 09-18 09:42 414次阅读
    你认为<b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>的尽头是什么?

    嵌入式开发常用软件有哪些?

    查看源代码,注释文档等非常方便,因为它查找,定位,彩色显示等功能非常强大。开发人员会当成源代码阅读工具使用。 4.Keil uVision5 Keil 5 软件是一款功能强大的嵌入式
    发表于 09-09 15:22

    嵌入式软件开发与AI整合

    嵌入式软件开发与AI整合是当前技术发展的重要趋势之一。随着人工智能技术的快速发展,嵌入式系统越来越多地集成了AI算法,以实现更复杂的智能功能。以下是关于
    的头像 发表于 07-31 09:25 623次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>与AI整合

    嵌入式系统怎么学?

    、C++或者Python。这些语言在嵌入式系统开发中都被广泛应用。 3、微处理器/微控制器架构:学习常见的微处理器和微控制器架构,如ARM、AVR、PIC等,了解其特性和应用场景。 4、嵌入式系统
    发表于 07-02 10:10

    嵌入式硬件VS软件,到底哪个更难?

    嵌入式系统开发中,硬件软件是密不可分的两个方面。但是,究竟是硬件开发更具挑战性,还是
    的头像 发表于 06-13 08:10 1062次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>硬件</b>VS<b class='flag-5'>软件</b>,到底哪个更难?

    嵌入式软件工程师和硬件工程师的区别?

    嵌入式软件工程师和硬件工程师的区别? 嵌入式软件工程师 嵌入式
    发表于 05-16 11:00

    AMD Vitis™ Embedded嵌入式软件开发套件的功能和特性概述

    Vitis Embedded 是一款独立的嵌入式软件开发套件,主要用于为 AMD 自适应 SoC 和 FPGA 中的 AMD 嵌入式处理子系统(基于 ARM 的子系统和 AMD MicroBlaze)
    的头像 发表于 04-08 10:50 793次阅读
    AMD Vitis™ Embedded<b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>套件的功能和特性概述

    苹果准备推出AI软件开发工具

    近日,有知情人士透露,苹果公司正在全力加码人工智能,准备推出一款新的软件开发工具。这款工具将利用生成人工智能技术,帮助开发者自动完成编码工作,预计将加剧与微软在人工智能方面的竞争。
    的头像 发表于 02-20 14:35 819次阅读

    嵌入式软件开发应该掌握哪些知识?

    嵌入式软件开发应该掌握哪些知识? 一、 什么是嵌入式软件嵌入式软件通常是指
    发表于 02-19 11:23

    嫁接AI、汽车,支持Arm、RISC-V,嵌入式软件开发工具IAR的新生态

    电子发烧友网报道(文/黄晶晶)成立超过40年的IAR公司,因提供嵌入式软件开发工具和安全解决方案而闻名,全球范围内支持超过15个架构的70多家半导体厂商的15000多款芯片,拥有超过10万的开发
    的头像 发表于 01-30 17:18 2657次阅读
    嫁接AI、汽车,支持Arm、RISC-V,<b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发工具</b>IAR的新生态

    嵌入式软件开发软件开发的区别

    嵌入式软件开发软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发
    的头像 发表于 01-22 15:27 2118次阅读

    CodeArts五年磨一剑,深耕信创软件开发工具

    在今年的QCon全球软件开发大会(上海站),华为云开发工具和效率领域首席专家、华为软件开发生产线 CodeArts首席技术总监王亚伟作为「智能化信创软件IDE」专题的出品人,带领他的专
    的头像 发表于 12-15 15:55 913次阅读
    CodeArts五年磨一剑,深耕信创<b class='flag-5'>软件开发工具</b>

    嵌入式硬件软件哪个好?

    嵌入式硬件软件哪个好? 嵌入式硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软
    发表于 12-05 15:17

    嵌入式软件开发流程

    电子发烧友网站提供《嵌入式软件开发流程.ppt》资料免费下载
    发表于 11-17 14:37 3次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发</b>流程

    嵌入式软件开发常用工具有哪些?

    分享一些嵌入式软件开发常用工具。 1、Keil MDK:这是德国Keil公司开发的基于8051、9051、ARM7、ARM9系列微控制器的嵌入式
    发表于 11-10 11:03