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

审核编辑黄昊宇

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

    关注

    5209

    文章

    20664

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    EsDA 科普 | 一文读懂嵌入式开发的“全家桶”方案

    在工业4.0与AI浪潮交汇的今天,嵌入式软件开发正面临前所未有的复杂度挑战。如何降低门槛、提升效率、实现一站交付?EsDA给出了系统化的答案。本文将带您快速了解这一嵌入式与工业自动化
    的头像 发表于 03-18 11:37 318次阅读
    EsDA 科普 | 一文读懂<b class='flag-5'>嵌入式开发</b>的“全家桶”方案

    嵌入式软件开发工具市场新动向:订阅制趋势下的中国开发者选择

    面对软件业从永久授权模式广泛转向订阅制的行业趋势,作为行业两大主流嵌入式软件开发工具,即Keil MDK与IAR Embedded Workbench也推出了不同的市场策略,正在为中国
    的头像 发表于 01-30 17:20 916次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>软件开发工具</b>市场新动向:订阅制<b class='flag-5'>趋势</b>下的中国<b class='flag-5'>开发</b>者选择

    MIKROE与瑞萨签署多年MCU嵌入式开发工具支持协议

    2026年1月28日: 作为一家通过提供基于成熟标准的创新式硬件软件产品来大幅缩短开发时间的嵌入式解决方案公司,MIKROE与总部位于东京的全球半导体解决方案提供商瑞萨电子签署了一项
    发表于 01-28 12:04 1339次阅读
    MIKROE与瑞萨签署多年MCU<b class='flag-5'>嵌入式开发工具</b>支持协议

    嵌入式驱动开发,需要掌握哪些技能?

    。 4、 熟悉驱动开发常用工具做驱动开发,会牵涉到很多软硬件工具。比如:VS Code、Keil、 J-Link、Git等。 5、
    发表于 01-20 16:46

    什么是嵌入式应用开发

    概述 所谓的嵌入式应用开发就是在嵌入式操作系统下进行开发、软硬件综合开发
    发表于 01-12 16:13

    恩智浦嵌入式HMI应用开发工具GUI Guider 1.10.1全新上线

    恩智浦嵌入式HMI应用开发工具GUI Guider 1.10.1全新上线啦!新版本重点聚焦性能提升、工具链升级、多点触控体验以及开发板适配,进一步优化IDE界面,增强功能稳定性,并完善
    的头像 发表于 12-28 09:45 1976次阅读

    C语言单元测试在嵌入式软件开发中的作用及专业工具的应用

    方面: ‌早期缺陷发现****‌:单元测试可以在开发早期发现代码中的逻辑错误和边界条件问题,降低后期修复成本 ‌硬件交互验证****‌:嵌入式软件通常需要直接与
    发表于 12-18 11:46

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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