我的学习方式通常都是先看到一个简单的效果,确认整套开发环境搭建起来了,然后再去研究细节。对于整个安装流程,参考上一节 一、ESP32(rust) - 开发准备及其系列介绍 的文档里链接的官方文档,根据自己的不同的操作系统自行安装,我安装很顺利,暂时没有什么问题,安装过程就不做细说。
目前我的计划是学习 no_std
(非标准库系统开发,与std
模式相对)这套开发模式,我目前的理解就是:好处就是执行效率更高,不需要引入额外的东西,专注于本身的功能逻辑即可,编译后文件更小,坏处暂时不知道,要么以后深入了之后再补充,要么后续再瞎编。
目前我看了下,基本上整个开发过程基于官方提供的的 no_std
硬件抽象层的示例进行开发就行,参考链接:Hardware Abstraction Layer
首先,把整套代码
clone
下来:// 我这里是通过 https 模式,自行根据具体情况可以选择 ssh 模式 进行clone git clone https://github.com/esp-rs/esp-hal.git
我的是 esp32 开发板,以此为例,进入到
clone
下来的文件目录:esp-hal
,找到esp32-hal
文件夹:cd esp-hal/esp32-hal ls
文件结构如下:
以官方文档运行示例的方式是没法执行
hello_world
这个程序的,需要修改Cargo.toml
这个文件,把示例加入配置,打开这个文件拉到最后一行,增加如下代码:[[example]] name = "hello_world" required-features = ["embassy", "embassy-executor-thread"]
参考图:
执行示例:
cargo run --example=hello_world // --features="embassy embassy-executor-thread embassy-time-timg0"
执行结果如下,可见持续输出
Hello world!
:修改
hello world
程序,重新执行:- 首先打开
examples
文件夹,找到hello_world.rs
文件 - 把输出位置的
Hello world!
改成Hello world! esp32!
查看输出结果:
- 首先打开
整套项目跑起来了,目前看起来还是比较简单,整套示例代码都是基于 rust
的 cargo
进行项目管理以及项目编译和执行,接下来我的想法就是基于 examples
进行开发,面向示例编程。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。