我的学习方式通常都是先看到一个简单的效果,确认整套开发环境搭建起来了,然后再去研究细节。对于整个安装流程,参考上一节 一、ESP32(rust) - 开发准备及其系列介绍 的文档里链接的官方文档,根据自己的不同的操作系统自行安装,我安装很顺利,暂时没有什么问题,安装过程就不做细说。

目前我的计划是学习 no_std (非标准库系统开发,与std模式相对)这套开发模式,我目前的理解就是:好处就是执行效率更高,不需要引入额外的东西,专注于本身的功能逻辑即可,编译后文件更小,坏处暂时不知道,要么以后深入了之后再补充,要么后续再瞎编。

目前我看了下,基本上整个开发过程基于官方提供的的 no_std 硬件抽象层的示例进行开发就行,参考链接:Hardware Abstraction Layer

  1. 首先,把整套代码 clone 下来:

    // 我这里是通过 https 模式,自行根据具体情况可以选择 ssh 模式 进行clone
    git clone https://github.com/esp-rs/esp-hal.git
  2. 我的是 esp32 开发板,以此为例,进入到 clone 下来的文件目录: esp-hal,找到 esp32-hal 文件夹:

    cd esp-hal/esp32-hal
    ls

    文件结构如下:
    0M<code>]2RERK2SI5M2AZ[~6W</code>N.png

  3. 以官方文档运行示例的方式是没法执行 hello_world 这个程序的,需要修改 Cargo.toml 这个文件,把示例加入配置,打开这个文件拉到最后一行,增加如下代码:

    
    [[example]]
    name              = "hello_world"
    required-features = ["embassy", "embassy-executor-thread"]

    参考图:
    参考图

  4. 执行示例:

    cargo run --example=hello_world
    //  --features="embassy embassy-executor-thread embassy-time-timg0"

    执行结果如下,可见持续输出 Hello world!
    输出结果

  5. 修改 hello world 程序,重新执行:

    • 首先打开 examples 文件夹,找到 hello_world.rs 文件
    • 把输出位置的 Hello world! 改成 Hello world! esp32!

    查看输出结果:
    输出结果

整套项目跑起来了,目前看起来还是比较简单,整套示例代码都是基于 rustcargo进行项目管理以及项目编译和执行,接下来我的想法就是基于 examples 进行开发,面向示例编程。


kumfo
6.7k 声望4.1k 粉丝

程序生存法则: