4

嵌入式Rust工具库包列表 - apoll

 1 year ago
source link: https://www.jdon.com/63241
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

嵌入式Rust工具库包列表 - apoll


在这篇文章中,我尝试汇总我经常看到/阅读的许多术语,希望为该领域的新手创建一个快速参考。请注意,并非所有都特定于 Embedded-Rust,并且有些已经是常用术语,但是,人们会经常看到相关联中提到的最多的术语。

使用以下图标试图对不同的术语进行分类:

  •  工具(调试、闪存、协议或实用程序)
  •  框架/运行时
  •  存储库/项目
  •  文件扩展名
  •  Rust 关键字/特征/类型
  •  库/crate

框架/运行时

  •  RTIC - Real-Time Interrupt-driven Concurrency 的缩写,它是用于构建实时系统的框架(不是操作系统)。作为初学者,您可能会被介绍到这个框架,作为实现基于中断的应用程序的替代方案。RTIC 在 Rust 中提供了一种更简洁、更结构化的处理中断的方式。
  •  RTFM - Real-Time for the Masses 的缩写,这是 RTIC 框架的旧命名。
  •  Tokio -Tokio是用于编写多线程异步应用程序的 Rust 运行时。Tokio 基于 Rust 的异步特性提供运行时、API(网络、文件系统操作等)和异步任务工具等。
  •  Embassy - 可以被视为 Tokio 的嵌入式版本,尽管更紧凑且功能更少。Embassy 是一个更全面的 HAL,也可以作为 RTIC 框架的替代方案。
  •  uAMP (microAMP) - 用于构建裸机 AMP(非对称多处理)应用程序的(微)框架。它是 (RTIC) 多核版本的核心基础。
  •  WASM - Web Assembly 的缩写,它提供了一种标准,用于以一种称为二进制指令格式的特定格式编写应用程序。从技术上讲,任何编程语言的应用程序代码都可以编译成 WASM。因此,生成的字节码需要在可以执行 WASM 字节码的虚拟化环境中运行。这意味着 WASM 在技术上也可以在任何平台上执行。WASM 通常被称为概念机器的构建目标。
  •  WASI - 是 Web 组装系统接口的缩写,可以在 Web 上下文之外使用 WASM。本质上,WASI 为 WASM 访问系统功能提供了一种机制(或更准确的标准)。人们经常提到,WASI 提供了带有 WASM 的概念操作系统视图。有关 WASM 和 WASI 之间区别的更多信息,这里是一个有用的 Stackoverflow 帖子。

存储库/项目:

  1.  Knurling - 该术语用于指代由Ferrous Systems创建的 Knurling-rs 项目,这是一家专门研究 Rust 的咨询公司。Knurling 项目的目标是通过提供培训材料和工具来增强使用 Rust 的裸机开发。
  2.  esp-rs - 项目名称,包含库、板条箱和在 Espressif SoC 上使用 Rust 的示例
  3.  rp-rs - 项目名称,包含库、板条箱和在 rasberry pi 系列微控制器上使用 Rust 的示例。
  4.  stm32-rs - 项目名称,包含在 STM32 微控制器上使用 Rust 的库、板条箱和示例

文件扩展名

  •  SVD - System View Description 的缩写,是一种文件格式,用于正式描述微控制器中包含的系统,特别是外围设备的内存映射寄存器。系统视图描述中包含的详细信息与设备参考手册中的数据相当。
  •  witx是一种基于 WASM 文本格式的文件格式。witx 还应该为嵌入式设备接口提供一套规范。

工具:

  •  Probe-run - 是引入的Knurling工具之一,用于在裸机设备上轻松闪存和运行嵌入式应用程序。Probe-run 还提供堆栈回溯,模仿 Rust 的恐慌行为,以查看哪里出了问题。更多细节在这里
  •  Defmt - 也是Knurling工具的一部分,是微控制器的日志框架。一种使用 UART 的传统串行监视器的有效替代方案。defmt 代表“延迟格式”。更多细节在这里
  •  Flip-Link - 另一个 Kunrling 工具,它是一个链接器包装器,可为嵌入式应用程序添加堆栈溢出保护。更多细节在这里
  •  SVD2Rust - 是一个命令行工具,可将 SVD 文件转换为 crates,公开类型安全的 API 以访问设备的外围设备。
  •  cargo-embed -probe -rs 的一部分,cargo-embed 是一个 cargo 子命令,支持嵌入式目标的闪烁和调试日志记录。
  •  cargo-flash - 也是 probe-rs 的一部分,是用于闪烁嵌入式目标的 cargo 子命令。
  •  OpenOCD - Open On-Chip Debugger 的缩写,是一个在调试适配器和主机之间提供接口的程序。OpenOCD 为微控制器提供调试、测试和编程功能。
  •  GDB - 调试工具链的一部分,是 GNU 调试器的缩写。GDB 是用于调试应用程序的流行平台。它提供了一个用户界面来调试微控制器应用程序。GDB 通常通过 OpenOCD 连接到微控制器。
  •  ITM - Instrumentation Trace Macrocell 的缩写,是一种调试功能/工具,尤其适用于 ARM Cortex-M 设备,是用于调试嵌入式应用程序的应用程序驱动的微控制器跟踪源。也是替代传统串行监控的可能选项之一。
  •  Semihosting - 是另一种用于嵌入式系统应用程序调试的日志记录机制/框架。也是传统串行通信记录的另一种选择。

Rust 关键字/特征/类型

  •  async- 在多线程应用程序的上下文中使用,async是 Rust 中在函数之前使用的关键字,以使其返回Future或承诺解析。
  •  await - 也用于多线程应用程序的上下文中,await是在块/函数中使用的关键字async,它使应用程序等待直到Futureor 承诺解决。
  •  Future- 用于异步编程,是表示可能尚未完成计算的值的特征。AFuture使线程可以继续做有用的工作,直到一个值可用。
  •  Cow- 这个可能有点断章取义,但我经常看到它,我不得不提到它。命名显然很混乱 。事实证明,Cow是一种类似于Cell、RefCell或Arc的智能指针,它代表着写时克隆。
  •  FFI - Foreign Function Interface 的缩写,它是一个函数接口,允许从 Rust 中调用 C 库函数。

库/crate

  •  rtt_target - 提供 RTT 协议的目标端实现的 Crate。
  •  defmt-rtt - 支持通过 RTT(实时传输)协议传输 defmt 日志消息的 Crate。
  •  PAC - 外设访问包的缩写,是一个较低的抽象层,提供了一个围绕微控制器外设内存映射寄存器的包装器。通常每个微控制器都有自己的 PAC。
  •  HAL - 硬件抽象层的缩写,它提供更高级别的抽象,是位于 PAC 之上的层。多个微控制器可以捆绑在一个 HAL 下。
  •  nalgebra - 是使用 Rust 编写的线性代数库的名称。该库通常与 Rust 嵌入式图形库一起使用。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK