买来 esp32 想要学学 rust 开发嵌入式,结果第一步就被卡了好久,有必要记录下来纪念一下。

首先,先列举一下我之前学过的几种 esp32 烧录方式。


luatos

合宙公司使用了 LuaLools,通过向板子烧入固件,从而快捷的把 lua 代码烧入板子里。

操作简单容易,教程可见官方链接

下图为 tool 界面

注意,版本更新之后,luatools 对固件的烧入似乎做了调整,使用最新的编译器时最好参照教程重新学习。


arduino

利用 arduinoIDE 来进行烧录,这是学校教学时的方法,同样很简单便捷,不需要额外配置环境,

注意选对自己对应的开发板就行了,然后编写 arduino 代码即可。

如图所示


rust

重点来了,现在我们来讲讲如何利用 rust 来开发 esp 板子。

我部分借鉴了 B 站这位 up 主的操作(链接在这里),还有 chatgpt 也帮了我很多。

不过还是让我按自己的逻辑总结一下:

1. 下载时选对工具链

一般有两种,分别是gnumsvc,选后者使用!

我一开始使用gnu来调试代码,很方便,可是下载库的时候却始终下不动,有各种各样的报错。

被迫无奈,我选择了msvc,问题迎刃而解~

使用此处链接,找到 rustup.exe,这里有详细的“官方”下载教程。

2. 下载必要的库

我们先假定一些常用的库,比如rustup已经安装好了。

接下来这几个库和开发 esp 板子有关,需要安装。(详情见上文 B 站链接)

1
2
3
4
cargo install espup
espup install
cargo generate
cargo espflash

到这里,rust 的烧录环境已经搭建好了,之后介绍怎么烧录。

盘点一下这几种方式的优缺点

方式 优点 缺点
luatos 有合宙官方教程,上手快 lua 语言难以深入,自由度低
arduino 上手快,环境搭建简单 编译非常非常慢
rust 有利于学习 rust(bushi) 环境搭建复杂,编译也慢