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 会为您提供一个入口宏。

源代码

详情参阅 亚图跨际

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值