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) 功能,用于将文件传输到本地计算机或从远程设备传输文件。

审核编辑黄昊宇

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

    关注

    5188

    文章

    20172

    浏览量

    329246
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CW32嵌入式软件开发的必备知识

    嵌入式软件开发作为计算机科学和电子工程的交叉领域,要求开发人员具备一系列的专业知识和技能。 而基于CW32的嵌入式软件开发必备知识包括以下
    发表于 11-28 07:48

    嵌入式开发工具版本的选择策略

    今天,我们就来结合嵌入式常见的几个软件(如Keil / IAR、VS Code 、Source Insight、VMware、Git等),简单讲一讲嵌入式开发工具软件版本选择策略。 开发
    发表于 11-25 06:11

    嵌入式开发工具的现状和发展简史

    集成开发环境(IDE)正在经历深刻变革。传统意义上披着“图形界面”外衣的编译器,已不再能满足当今的需求。随着嵌入式系统变得越来越强大,而且AI开始融入几乎所有设计中,开发者需要的是能够理解开发
    的头像 发表于 11-11 09:49 790次阅读

    嵌入式软件测试与专业测试工具的必要性深度解析

    嵌入式系统作为控制、监视或辅助装置运行的专用计算机系统,其软件测试面临着独特的挑战和严格的要求。专业测试工具嵌入式软件开发过程中发挥着不可
    发表于 09-28 17:42

    eForce无线通信软件开发工具包兼容WLAN模块WKR612AA1

    近期,eForce株式会社宣布,其面向嵌入式设备的无线通信软件开发工具包(μC3-WLAN SDK)现已兼容 KAGA FEI 生产的无线局域网(WLAN)模块"WKR612AA1"。
    的头像 发表于 09-24 15:16 752次阅读

    新一代嵌入式开发平台 AMD嵌入式软件工具2025.1版现已推出

    AMD 2025.1 版嵌入式软件工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。 2025.1 版
    的头像 发表于 08-20 09:15 3666次阅读

    AMD 2025.1版嵌入式软件工具的新增功能

    AMD 2025.1 版嵌入式软件工具是面向新一代嵌入式系统开发而打造的综合平台,全面加速概念构想到部署落地。
    的头像 发表于 08-15 15:32 1066次阅读

    2025“芯原杯”全国嵌入式软件开发大赛圆满落幕

    此前,2025年7月20日至26日,第四届“芯原杯”全国嵌入式软件开发大赛决赛在海口成功举办。
    的头像 发表于 08-06 09:51 1131次阅读

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

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

    如何成为一名嵌入式软件工程师?

    、Java等)和软件开发工具,还需要对硬件的工作原理有深入的理解。 在团队中,嵌入式软件工程师往往扮演着核心角色,他们的工作直接关系到产品的性能、稳定性和用户体验。 02掌握核心技
    发表于 04-15 14:37

    IAR发布云端平台,助力现代嵌入式软件开发团队

    该平台为嵌入式软件开发人员提供前所未有的自由度与灵活性,助力开发团队在工具选择和日常工作流中实现更高效的协作与创新。
    的头像 发表于 03-12 11:56 613次阅读

    盘点工程师常用的嵌入式开发工具

    嵌入式开发涉及硬件软件的紧密结合,开发工具的选择对效率和质量至关重要。以下是嵌入式开发中常用的工具
    的头像 发表于 02-07 10:06 3849次阅读

    嵌入式机器学习的应用特性与软件开发环境

    设备和智能传感器)上,这些设备通常具有有限的计算能力、存储空间和功耗。本文将您介绍嵌入式机器学习的应用特性,以及常见的机器学习开发软件开发环境。 嵌入式机器学习的应用特性与优势 由于
    的头像 发表于 01-25 17:05 1244次阅读
    <b class='flag-5'>嵌入式</b>机器学习的应用特性与<b class='flag-5'>软件开发</b>环境

    最新Simplicity SDK软件开发工具包发布

    最新的SimplicitySDK软件开发工具包已经发布!此次更新针对SiliconLabs(芯科科技)第二代无线开发平台带来了包括蓝牙6.0的信道探测(Channel Sounding
    的头像 发表于 12-24 09:47 1516次阅读

    嵌入式工程师常用的开发工具有哪些?

    仿真器可以模拟复杂的微控制器和外设,帮助工程师在早期阶段进行软件开发和调试。这大大缩短了开发周期,降低了开发成本。 总之,嵌入式工程师需要熟练掌握这些
    发表于 12-20 15:29