广告

嵌入式Rust:学习工具链

2025-01-26 09:15:02 Jacob Beningo 阅读:
在这篇文章中,我们将探索Rust的工具链和生态系统,以帮助您了解它如何提高生产力、确保安全性并简化开发过程···

在上一篇文章《嵌入式Rust:你好,世界!》中,我们探讨了基本的Rust应用是什么样子以及如何使用Rust函数。在了解“Hello Blinky”应用程序之前,还有非常重要的一点就是要了解Rust工具链以及作为嵌入式软件开发人员在嵌入式目标上使用Rust需要什么。uT5ednc

在这篇文章中,我们将探索Rust的工具链和生态系统,以帮助您了解它如何提高生产力、确保安全性并简化开发过程。uT5ednc

Rust工具链简介

Rust工具链包含各种工具,可用于编译、测试、格式化等。然而,工具链的根基只有几个工具,可以用下图来概括:uT5ednc

uT5ednc

图1:Rust工具链概述。uT5ednc

Rustup

rustup.rs工具是一个用于管理Rust工具链和相关组件的命令行工具。它提供了一种安装、更新和管理多个版本的Rust编程语言及其工具的简单方法。如果要安装Rust,请先访问rust-lang.org网站并按照操作系统的说明进行操作。例如,在我的Mac/Linux上,我使用以下命令:uT5ednc

curl –proto ‘=https’ –tlsv1.2 -sSf https://sh.rustup.rs | shuT5ednc

该命令会与其他标准Rust工具一起安装rustup。通常在安装后,我会使用以下rustup命令来验证已安装的版本:uT5ednc

rustup –versionuT5ednc

Rustc

作为标准安装的一部分安装的另一个工具是rustc。rustc是Rust编程语言的官方编译器。它会将您的Rust源代码编译为可执行的二进制文件。例如,您可以使用以下命令编译单个main.rs文件:uT5ednc

rustc main.rsuT5ednc

或者,如果我们对嵌入式软件感兴趣,您可以使用如下命令:uT5ednc

rustc –target=thumbv7m-none-eabi main.rsuT5ednc

其结果是代码被编译并生成一个二进制文件,该二进制文件可以直接在您的PC上执行,也可以传输到您的嵌入式目标上。uT5ednc

Cargo

不过,在很多情况下,我们并不直接使用rustc。我们会使用Rust工具Cargo。Cargo是Rust编译工具和包管理器。它内置了几种编译类型,例如:uT5ednc

  • build–编译你的项目
  • run——执行项目(如果需要,还可以编译)
  • test–运行单元测试
  • doc–生成文档
  • publish–将您的crate发布到crate.io,它托管了所有可用于Rust的库。

Cargo会查看Cargo.toml配置文件以获取有关项目依赖项的信息。例如,如果您正在为Arm Cortex-M处理器编写应用,则可能具有如下所示的依赖项:uT5ednc

[dependencies]uT5ednc

critical-section = { version = "1.1.2", optional = true }uT5ednc

cortex-m = "0.7.7"uT5ednc

cortex-m-rt = { version = "0.7.3", optional = true }uT5ednc

这些依赖项中的每一个都是一个库crate。通常,crate是一个编译单元,是Rust代码的基本编译块。它可以是库或二进制crate。库crate通常有一个lib.rs文件,而二进制crate有一个main.rs文件。有时可能会造成混淆,因为单个文件(*.rs)被视为crate,即使您发布的crate可能由多个文件组成。uT5ednc

如果您创建了一个有用的crate,您可以将其发布到crate.io供其他开发人员使用。他们使用Cargo.toml文件来指定他们想要在其应用中使用的crate名称和版本。uT5ednc

嵌入式Rust的附加工具

Rust附带的基本工具非常适合开发应用,但如果您想编写嵌入式Rust应用,它们还不够。您还需要添加一些其他工具,如下所示:uT5ednc

  • Cargo-Binutils
  • LLVM tools
  • Cargo-generate
  • GNU Arm cross-compilation tools
  • Rust targets for cross-compilation

Cargo-Binutils是Cargo子命令的集合,可让您轻松使用Rust工具链附带的LLVM工具。这些工具包括objdump、nm和size的LLVM版本,用于检查二进制文件。这些工具可用于了解嵌入式应用的大小并检查交叉编译器生成的指令。uT5ednc

LLVM工具是模块化、可重用的编译器和工具链技术的集合。uT5ednc

Cargo-Generate是一款开发人员工具,可利用已有的git存储库作为模板,帮助您快速启动和运行新的Rust项目。其中有一个Cortex-M处理器的快速入门示例,通常用于启动和运行嵌入式项目。我们将在下一篇文章中介绍如何使用它。uT5ednc

GNU Arm Toolchain是ARM Cortex-M处理器的交叉编译工具链。它包括GCC编译器和其他必要的工具,用于编译基于ARM的微控制器的代码。如果您是嵌入式开发人员,您可能已经对这些有所了解。uT5ednc

Rust targets for cross-compilation是指特定的编译配置,允许Rust代码针对除编译代码的架构和平台之外的其他架构和平台进行编译。例如,如果我想针对Cortex-M33处理器进行编译,我可以使用以下命令将目标添加到工具链中:uT5ednc

rustup target add thumbv8m.main-none-eabihfuT5ednc

有了这些工具,您将能够像使用C或C++一样开发嵌入式Rust代码。uT5ednc

结论

Rust工具链和生态系统非常独特,因为它们将开发Rust应用所需的一切打包在一起。社区开发了软件包和工具,而在C/C++中,您要依赖供应商或相关企业为您提供工具。例如,如果您想测试代码,就必须找到测试工具,每个团队都有自己的偏好并使用不同的工具。对于Rust,您可以使用内置于Rust中的Cargo测试工具。uT5ednc

在下一篇文章中,我们将探讨如何结合使用Cargo Generate和Cortex-M快速入门示例来启动和运行嵌入式Rust项目。uT5ednc

(原文刊登于EDN姊妹网站Embedded,参考链接:Embedded Rust: learning the toolchain,由Ricardo Xie编译。)uT5ednc

相关阅读:

嵌入式Rust系列教程uT5ednc

责编:Ricardo
本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 盘点CES 2025上基于Arm架构的AI创新和技术亮点 近期在美国拉斯维加斯举行的 CES 2025 再次彰显了其作为展示最新科技创新的重要平台。今年展会上所呈现的众多前沿产品和新的发布将推动各个行业的变革与发展···
  • 芯耀辉:从传统IP到IP2.0,AI时代国产IP机遇与挑战齐飞 2024年,集成电路行业在变革与机遇中持续发展。面对全球经济的新常态、技术创新的加速以及市场需求的不断变化,集成电路企业如何在新的一年里保持竞争力并实现可持续发展?
  • Arm 技术预测:2025 年及未来的技术趋势 Arm 对 2025 年及未来的技术发展做出了预测,范围涵盖技术的各个方面,从 AI 的未来发展到芯片设计,再到不同技术市场的主要趋势···
  • CES 2025:Edge AI硬件加速再掀热潮 边缘计算/边缘人工智能(Edge AI)一直是热门话题,在CES 2025也不例外。然而,实现边缘计算/智能的底层硬件是什么?又是如何实现与应用的呢?
  • 下载|汽车动力与底盘MCU市场现状研究报告 本报告选择汽车动力(Powertrain)与底盘(Chassis)系统中的MCU做探讨,一方面是因为,就车规MCU的角度来看,这两个组成部分更为关键、复杂,对安全性要求更高,更具实现难度;另一方面,即便是传统汽车角度,动力与底盘系统的电子控制也更加由来已久和具代表性。
  • 2025值得关注的八大前沿技术 2024年临近尾声,在这一年又有哪些技术得到了突破?这些技术又将如何影响我们的生活?EDN分析师团队将继续从行业背景、技术思路和未来应用三个层面出发,为读者朋友们献上2025年最值得关注的前沿技术!
  • 莱迪思聚焦低功耗中小型FPGA创新,并计划发展大规模FPGA 在最新的开发者大会上,莱迪思展示了其FPGA产品在广泛市场中的应用及未来发展的宏伟蓝图。据莱迪思亚太地区应用工程高级总监谢征帆介绍,随着莱迪思FPGA技术的广泛应用和产品差异化的推进,全球已有超过1万客户选择使用莱迪思的FPGA产品,部署的许可证数量也已超过3.5万。
  • 帕特·基辛格退休:工程师CEO的回归也救不回英特尔? 在执掌英特尔三年多之后,魅力十足、雄心勃勃的英特尔首席执行官Pat Gelsinger下台了,这家摇摇欲坠的美国半导体巨头开始寻找继任者···
  • 从碳化硅到机器人:ST描绘未来工业发展蓝图 意法半导体(ST)第六届工业峰会于2024年10月29日召开,延续以“激发智能,持续创新”为主题,聚焦工业市场前沿技术和解决方案。峰会演讲嘉宾深入探讨了电源与能源、电机控制、自动化等领域的技术发展趋势和ST的创新成果,为构建更可持续的未来描绘了宏伟蓝图···
  • 活动预告|第三届南渡江智慧医疗与康复产业高峰论坛即 第三届南渡江智慧医疗与康复产业高峰论坛将于2024年11月22日在海南省海口市召开。本届论坛由海南省工业和信息化厅、海南省商务厅、海口市人民政府、海南博鳌乐城国际医疗旅游先行区指导,海口市科学技术工业信息化局和芯原微电子(上海)股份有限公司主办,芯原微电子(海南)有限公司承办,将深度探讨数字疗法、脑机接口和康复机器人的发展现状和机遇,以期推动智慧医疗与康复,以及大健康产业的发展···
  • TPLD助力工程师在数分钟内完成分立式逻辑设计 通过将多达40个逻辑元件集成到单个芯片上,工程师可以大幅减小电路板尺寸。使用德州仪器的InterConnect Studio工具,工程师无需软件知识即可在数分钟内轻松设计、仿真和配置德州仪器的可编程逻辑器件。
  • 硬核科技,赋能未来:解码芯片产业创新趋势 在近日举办的E维智库第12届中国硬科技产业链创新趋势峰会暨百家媒体论坛上,邀请了来自艾迈斯欧司朗、Qorvo、RAMXEED(原富士通半导体)、飞凌微、安谋科技、清纯半导体等企业的多位行业专家,共同探讨芯片技术在各个领域的应用和发展方向···
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了