首页 > 应用开发 > Javascript > Theia 采用者故事:STMicroelectronics STM32CubeMX2 - 微控制器配置与代码生成 | The Eclipse Foundation
STM32CubeMX 是 STMicroelectronics STM32 系列的标准配置工具,STM32 是全球使用最广泛的微控制器平台之一。它是许多 STM32 项目的常见起点:一个图形化工具,引导开发者选择微控制器、分配引脚、配置时钟和外设,并生成 C 初始化代码。借助 STM32CubeMX2,STMicroelectronics 在 Eclipse Theia 上从头重建了这一体验。在本文中,我们将深入了解 STM32CubeMX2 及其如何利用 Theia 生态系统。
STM32CubeMX2 于 2026 年 3 月与新 STM32C5 系列一同发布,是 STMicroelectronics 下一代微控制器配置和代码生成工具。它建立在经过验证的 CubeMX 工作流之上,同时引入了重新设计的用户体验和一系列新功能:实时反映配置更改的实时代码预览、显示每次更改如何影响生成代码的内置差异视图、带有路径高亮和补充表格视图的改进时钟树、增强的引脚分配体验、用于自动处理依赖关系的包管理系统,以及用于工作流自动化的更强大的命令行界面。CubeMX2 基于 HAL2 生成代码,HAL2 是 STMicroelectronics 新的优化硬件抽象层,并支持多种项目输出格式,包括 CMake、用于 IAR Embedded Workbench 的 ewp 和用于 Keil Studio 的 csolution。CubeMX2 不是增量更新,而是从零开始的重建:一个拥有新技术基础、新 UI 和新底层软件层的新工具。因此,这两个工具将共存。STM32CubeMX 继续服务于现有的 STM32 系列,而 STM32CubeMX2 支持从 STM32C5 开始的新系列。
STM32Cube 工具生态系统深深植根于 Java 和 Eclipse 技术。最初的 STM32CubeMX 是一个 Java/JavaFX 独立应用程序,而其配套 IDE STM32CubeIDE 则构建在 Eclipse RCP 之上,Eclipse RCP 是嵌入式行业中众多依赖 Eclipse 平台的工具之一。两者都在积极维护并被广泛使用。然而,当 STMicroelectronics 着手构建下一代配置工具时,他们选择从现代 Web 技术基础开始,这一基础能够支持从根本上重新设计的用户体验和未来更灵活的架构。Eclipse Theia,最新一代的 Eclipse 工具平台,正在提供这一基础。
这反映了更广泛的行业转变。各类开发者工具越来越多地构建在 Web 技术栈之上,从 VS Code 和 Arduino IDE 到三星 Sokatoa GPU(图形处理器) 分析器等专业工具,充分利用 Web 技术提供的灵活性、丰富的 UI 能力和跨平台覆盖。重要的是,像 Theia 这样的平台并非小众框架,它们构建在标准 Web 技术之上,如 TypeScript、Node.js 和基于浏览器的渲染。这延伸到 UI 层,因此自定义视图和编辑器可以使用 React 等主流 Web UI 框架来实现,使工具构建者能够获得与在任何现代 Web 项目中相同的丰富组件生态系统和开发者人才库。
作为一个平台,Theia 提供了成熟的应用外壳和构建与标准代码编辑器截然不同的工具所需的深度定制能力。STM32CubeMX2 是一个面向硬件的图形化配置工具:开发者选择微控制器、在芯片图上拖动引脚、配置时钟树、设置外设并生成初始化代码。用户体验完全是领域特定的,工作流结合了多个无缝集成的视图和 UI 元素。这正是 Theia 旨在支持的工具类型。它不需要分叉,也不需要变通方案,只需对平台进行常规 API(应用程序编程接口) 使用。在这一领域,Theia 能够实现比 Web 上其他基础更深入的定制。而且由于其 Web 特性,与 Eclipse RCP Java/SWT 技术栈相比,定制和集成不同技术要容易得多。
Theia 还提供了长期的架构灵活性。STMicroelectronics 选择将 STM32CubeMX2 作为桌面应用程序交付,这是一条常见的采用路径。同时,Theia 从共享代码库支持桌面和基于浏览器的运行时,这意味着该应用程序构建在能够根据需要适应不同部署模型的基础之上。
STM32CubeMX2 最显著的特点是其简洁的用户体验。用户看到的是一个专门构建的工具,具有引脚配置、时钟树可视化、外设设置、中间件管理、代码预览和包管理等视图,而不是 IDE 中带有大量 UX 妥协的扩展。其明确目的是高效支持开发者设置硬件项目。
Theia 通过设计使这成为可能。与 VS Code 中扩展在固定宿主应用程序边界内运行,或 Eclipse RCP 3.x 中深度 UI 定制可能意味着与平台假设作斗争不同,Theia 的构建时扩展模型让采用者能够精确组合他们所需的应用程序。CubeMX2 团队汇集了服务于其用例的平台能力——小部件基础设施、面板管理、布局持久化、主题化、键绑定——并在其上构建了完整的领域特定体验,使用 Theia 的依赖注入系统将他们自己的服务干净地接入平台。
最终成果是一个专注、无干扰的工具,其中每个元素的存在都是为了服务于硬件配置这一预期用例。在 Theia 中,这无需分叉、无需变通方案:你可以使用一个专为这种级别的适配而设计的平台的常规 API。
由于 Theia 构建在标准 Web 技术之上,团队还可以为 UI 的每个部分自由选择技术方案。例如,时钟树编辑器使用 Eclipse GLSP(图形语言服务器平台)构建,为其提供了带有路径高亮的结构化图表编辑功能以及配套的表格视图。
其他视图使用不同的 Web UI 框架,如 React,以适应其特定需求。这种混搭方式是构建在开放 Web 技术栈之上的关键优势之一:不存在像 SWT 那样的单一 UI 框架或某个特定工具包作为所有视图的默认选择。举例来说,代码预览使用 Monaco 编辑器,与 VS Code 中使用的相同。Theia 为此提供了开箱即用的集成。
所有这些视图仍然封装在原生 Theia 部件中。与隔离的、需要显式消息传递才能通信的 webview 不同,原生部件可以通过访问共享服务直接与周围应用程序集成。这使得实现 STM32CubeMX2 的实时反馈循环变得简单直接:外设变更即时更新代码预览,引脚分配级联触发时钟树变更,更新在各视图之间传播。同时,这种更紧密的集成简化了整体架构,使维护应用程序间一致的设计变得更加容易,因为所有视图遵循相同的模式,并可以直接复用现有组件和样式。
构建在 Theia 之上还使采用者能够以远超 UI 的方式控制整个应用程序栈。一个典型的例子是可用的命令行界面。由于 Theia 运行在 Node.js 上,一个真正的无头 CLI 在架构上变得简单直接。STM32CubeMX2 可以从命令行调用,用于配置、代码生成和项目设置,无需任何图形环境,从而能够干净地集成到 CI/CD 流水线、脚本化工作流以及嵌入式团队日益依赖的自动化工具链中。
意法半导体针对 STM32 的工具策略是刻意模块化的:STM32CubeMX2 负责硬件配置和代码生成,而独立的 STM32CubeIDE for VS Code 扩展则涵盖编码和调试体验。这意味着开发者可以自由使用任何支持 VS Code 扩展的编辑器,无论是 VS Code 本身、Cursor、VS Codium、Theia IDE 还是其他。在任何工具中,他们都能获得工作流编码方面的完整 STM32 支持。这是一种以用户为中心的方法,避免将开发者锁定在单一工具中完成整个开发生命周期。
Theia 对 VS Code 扩展的兼容性在这一策略的两侧都发挥着关键作用。在 STM32CubeMX2 内部,这意味着该工具可以利用现有的 VS Code 扩展生态系统来实现非领域特定的功能。例如,STM32CubeMX2 实时代码预览中的 C 语法高亮来自标准 VS Code 扩展,而非自定义实现。这是 Theia 让采用者集成基于标准的组件而非重新构建的又一个例子。在幕后,VS Code 扩展兼容性还允许意法半导体在其独立的 VS Code 扩展和以扩展形式存在的 CubeMX2 之间共享通用功能,减少产品线中的重复。虽然 STM32CubeMX2 目前纯粹专注于配置用例,但该架构甚至允许将来将编码能力直接集成到工具中,这一选项之所以保持开放,正是因为 Theia 和 VS Code 扩展使用同一种语言。
意法半导体与许多平台采用者的不同之处在于其与生态系统互动的深度。意法半导体不仅仅构建在 Theia 之上,他们还积极塑造该平台及其周边项目。作为 Eclipse Cloud DevTools 工作组的成员,他们参与指导 Theia 及相关技术(如 Eclipse GLSP)的发展方向,确保该平台持续满足大规模构建生产工具的采用者的需求。
这种参与体现在持续为整个社区带来益处的贡献记录中。例如,意法半导体贡献了 Theia IDE 产品(当时称为 Theia Blueprint)的第一个分布式版本,以及其文档和下载基础设施。他们显著改进了 Eclipse Theia 和 Eclipse GLSP 的文档。他们发起了对基于 TypeScript 的 GLSP 服务器实现的支持,该实现现已成为 GLSP 框架最受欢迎的子组件之一。他们在 VS Code 提供可分离视图之前就推动了 Theia 中该功能的实现——这一功能在桌面端早已是标准配置,但在基于 Web 的工具中此前一直缺失。他们发起了 Theia 社区发布,即每季度一次的发布节奏,更好地服务于将 Theia 集成到自身产品发布周期中的采用者。
这些贡献已获得多项 Eclipse Cloud DevTools 贡献者奖,反映了意法半导体愿意在 Eclipse Cloud DevTools 工作组和更广泛的开源社区中作为一等公民行事,以及他们的工作在生态系统中产生的影响。对意法半导体而言,投资于该平台与构建 STM32CubeMX2 并非彼此独立;它们是同一战略的一部分。通过帮助塑造 Theia,他们确保它始终是其工具的正确基础——不仅是今天,而是随着 STM32CubeMX2 和 HAL2 生态系统的演进持续如此。
STM32CubeMX2 是日益壮大的 Theia 采用者群体中的一员,从 GPU 性能分析(Samsung Sokatoa)到嵌入式开发环境(Arduino IDE 2.0、TI Code Composer Studio),再到工业自动化(logi.CLOUD)甚至教育领域(EduIDE):基于 Theia 构建的应用范围持续扩大。
借助 STM32CubeMX2,STMicroelectronics 交付了一款生产级工具,使嵌入式开发者能够受益于现代化且精心定制的用户体验以及长期稳定性。这正是 Theia 的设计初衷。STMicroelectronics 选择基于 Theia 构建 STM32CubeMX2 对生态系统也具有重要意义。这表明,全球最大的半导体公司之一信任该平台能够支撑一款对其开发者参与战略至关重要的工具,而这款工具的使用者正是那些设计最终应用于全球汽车、医疗设备、工业设备和消费电子产品的工程师们。
“选择 Eclipse Theia 框架最有力的原因之一是,它能够将熟悉且易于使用的开发者体验与高度灵活和开放的架构相结合。对于 STM32CubeMX2 集成而言,Theia 为我们提供了坚实的基础,使集成步骤更加顺畅,同时仍允许我们根据特定需求调整环境。”——Niklas Dahlquist,STMicroelectronics 首席软件工程师
我们希望您喜欢这个采用者故事,也期待读到您的故事。
转载声明:本文为转载整理,原文版权归原作者及原站点所有。
原文来源:Eclipse Blog
原创地址:https://www.eclipse.org/topics/ide/articles/theia-adopter-story-stmicroelectronics/
原文作者:webdev@eclipse-foundation.org (Eclipse Foundation);如有侵权,请联系管理员删除。