gzyueqian
13352868059

嵌入式开发:从浏览器中调试微控制器

更新时间: 2022-01-29 10:00:00来源: 粤嵌教育浏览量:4401

  任何嵌入式软件开发人员面临的首要挑战之一是安装和配置他们的开发环境和工具链。工具链版本、芯片供应商库、Windows 与 Linux、调试配置、IDE 设置和环境变量只是现代嵌入式开发人员工作区的几个组成部分。所有这些复杂性的结果是一个脆弱的、难以复制的工作空间,用于关键系统中经常使用的软件。我们认为这种开发者体验等同于折磨,并认为这是从进入市场中获取价值。


  如果开发环境可以完全打包并从开发人员那里抽象出来,他们将能够更快地开始应用程序开发。远程管理的工具链还有助于提高团队合作的效率。


  既定的方式


  消除工具链难题的传统方法通常是通过使用集成开发环境 (IDE)。 然而,这些包通常被锁定到特定的芯片供应商或编译器,可能有付费墙来公开高级功能,并且在功能可用性方面可能受到限制。多年来,我们的“黄金标准”如下:


  Ubuntu 虚拟机

  Eclipse

  GNU MCU Eclipse 工具

  来自 VM 的 USB Passthrough 用于调试板


  现代网络选项


  VS Code、容器化、Microsoft 的调试协议和语言服务器协议等技术结合在一起,实现了变革性的开发人员体验。当前将这些技术结合到市场上的大多数方法都是建立在 VS Code 的一些变体之上的。每个解决方案都在争相利用 VS Code 在浏览器中运行的能力,就像它在本地机器上运行一样无缝。


  一种选择是 Github 代码空间。哪个选项要求用户使用付费计划,不专注于嵌入式开发,并且使用闭源的闭源服务器。另一种选择是 Keil Studio。 Keil Studio 针对基于 ARM 的微控制器的嵌入式开发进行了优化,定价和路线图尚未确定。它不提供终端访问,并提供有限数量的嵌入式目标来使用。



  为什么选择 Gitpod


  值得注意的是 Gitpod 的全功能免费套餐。他们每月提供 50 小时的运行工作空间,无需付款详情。五十小时足以让您了解 Zephyr 和 Golioth 生态系统。最后,Gitpod 是开源的,使开发人员能够根据他们的需求优化他们的工作区。


  我们的目标嵌入式云开发人员体验将是开发人员实例化云开发环境并且具有零本地工具依赖性的体验。 然后,他们可以将他们的调试硬件从任何可以访问互联网的地方插入任何机器并进行开发。 我们当前的实现需要三个本地工具来促进使用 Gitpod 软件和 VS Code 的当前状态进行调试的功能。 Gitpod 提供了一个 Gitpod Local Companion,它允许本地主机访问远程工作区中的任何 TCP 端口。本地所需的第二个软件是 SSH。SSH 是在 Gitpod 实例和本地机器之间建立 ssh 隧道所必需的。在本地机器上运行的最终软件是 JLinkGDBServerCL。


  目前技术水平


  促进基于云的开发的技术已经到来,它将显着提高生产力和开发人员体验。不幸的是,我们仍然有本地依赖项,并且在当前状态下,还没有针对通过 Internet 使用进行优化。步骤调试已完成,但嵌入式云开发与本地开发环境竞争仍有一些工作要做。


  为了正确执行此操作,我们将向嵌入式开发人员浏览器提供兼容 MS DAP 的调试服务器(例如 Probe.rs),并使用 webUSB 将其连接到目标板。存在的一个挑战是缺乏用 JavaScript 或 WebAssembly 编写的开源微控制器调试器。从 C 代码到 WebAssembly 的转换并不简单,而且容易出错。但是,确实存在 Rust 到 WebAssembly 的有效翻译器,Probe.rs 是一个用 Rust 编写的开源调试器。

免费预约试听课