🥬Arduino 运行 Rust
Arduino | Rust
项目设置
首先,我们将通过运行来创建一个新的 cargo 项目:
我们需要为 avr 目标(目标三元组:avr-unknown-unknown)交叉编译我们的项目。为此,我们需要切换到 nightly 工具链,因为一些依赖包使用不稳定的功能来实现所有这些。所以我们将运行:
上面的命令覆盖了选择的工具链,只有我们当前的目录是 nightly。
然后我们将安装所需的软件包:
需要 avr-gcc 包才能使用链接器。
arduino-avr-core 包包含实用程序,例如 avrdude,它是一种使用系统内编程技术上传和操作微控制器的 ROM 和 EEPROM 内容的工具。
我在 arch linux 发行版(努力操作系统)上,其中 pacman 是我们的包管理器。
编写代码
抛开依赖,让我们在 main.rs 下添加代码并逐步进行:
(快速提示:您可以在您的目录中运行 cargo doc --open 并拥有该项目的文档及其依赖项以供参考)
首先我们需要指定一些全局属性,让编译器知道我们在不同的环境中。 我们处于一个嵌入式环境中,它没有 Rust 的标准库 crate 所依赖的功能,例如堆分配 API、线程、网络 API 等。所以我们需要在顶部添加 #[no_std] 属性。 我们还需要使用 #[no_main] 覆盖默认入口点 (fn main()),因为我们将提供和定义我们自己的程序入口点。 为了定义我们的入口点,我们将使用来自 arduino_uno crate 的入口属性宏来定义一个自定义入口点。 通常,您使用的板子的 crate 会为您提供一个入口宏。
源代码
Last updated