【rust/esp32】wsl2开发环境搭建与测试

这篇具有很好参考价值的文章主要介绍了【rust/esp32】wsl2开发环境搭建与测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说在前面

  • esp型号:esp32s3
  • 开发环境:wsl2
  • rustc版本:rustc 1.73.0-nightly
  • esp idf版本:v5.1.1

流程

  • 目前是按照这个demo的流程可以跑通
  • 修改demo中的部分代码,不然可能跑不通
    ~/rust-esp32-std-demo$ git diff src/main.rs
    diff --git a/src/main.rs b/src/main.rs
    index da6e581..f6f9aeb 100644
    --- a/src/main.rs
    +++ b/src/main.rs
    -const SSID: &str = env!("RUST_ESP32_STD_DEMO_WIFI_SSID");
    +const SSID: &str = "修改为wifi名";
    -const PASS: &str = env!("RUST_ESP32_STD_DEMO_WIFI_PASS");
    +const PASS: &str = "修改为wifi密码";
     
     #[cfg(esp32s2)]
     include!(env!("EMBUILD_GENERATED_SYMBOLS_FILE"));
    @@ -510,7 +510,7 @@ fn test_fs() -> Result<()> {
     fn test_tcp() -> Result<()> {
         info!("About to open a TCP connection to 1.1.1.1 port 80");
     
    -    let mut stream = TcpStream::connect("one.one.one.one:80")?;
    +    let mut stream = TcpStream::connect("223.5.5.5:80")?; // 国内dns
     
         let err = stream.try_clone();
         if let Err(err) = err {
    @@ -827,12 +827,12 @@ fn test_https_client() -> anyhow::Result<()> {
     
             
     
    -        let addr = "google.com:443".to_socket_addrs()?.next().unwrap();
    +        let addr = "baidu.com:443".to_socket_addrs()?.next().unwrap(); //你懂的
             let socket = Async::<TcpStream>::connect(addr).await?;
     
             let mut tls = esp_idf_svc::tls::AsyncEspTls::adopt(EspTlsSocket::new(socket))?;
     
    -        tls.negotiate("google.com", &esp_idf_svc::tls::Config::new())
    +        tls.negotiate("baidu.com", &esp_idf_svc::tls::Config::new()) //你懂的
                 .await?;
     
             tls.write_all(b"GET / HTTP/1.0\r\n\r\n").await?;
    

可能的问题

  • 以下这些问题奇奇怪怪,主要可能还是rust toolchain没有安装对
  • 还有就是按照rust build中espup的流程执行之后,我还是继续执行了./install-rust-toolchain.sh,不知道哪里有问题

wsl2相关

  • 如何访问usb设备
    Connect USB devices

rust相关

  • lib

    cargo install cargo-generate
    cargo install ldproxy
    cargo install espup
    cargo install espflash
    cargo install cargo-espflash # Optional
    
  • 问题:cargo-generate缺少pkg-config

    run pkg_config fail: Could not run `PKG_CONFIG_ALLOW_SYSTEM_CFLAGS="1" "pkg-config" "--libs" "--cflags" "openssl"`
    The pkg-config command could not be found.
    
    Most likely, you need to install a pkg-config package for your OS.
    Try `apt install pkg-config`, or `yum install pkg-config`,
    or `pkg install pkg-config`, or `apk add pkgconfig` depending on your distribution.
    

    解决:

    apt install pkg-config
    
  • 问题:espflash缺少libudev

    thread 'main' panicked at 'called `Result::unwrap()` on an `Err`
    value: "`PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=\"1\" 
    PKG_CONFIG_ALLOW_SYSTEM_LIBS=\"1\" \"pkg-config\" \"--libs\" \"--
    cflags\" \"libudev\"` did not exit successfully: exit status:
    1\nerror: could not find system library 'libudev' required by 
    the 'libudev-sys' crate\n\n--- stderr\nPackage libudev was 
    not found in the pkg-config search path.\n
    Perhaps you should add the directory containing `libudev.pc'\nto 
    the PKG_CONFIG_PATH environment variable\nNo package 
    'libudev' found\n"',
    

    解决:

    apt install libudev-dev
    
  • espup
    这里

  • 缺少xtensa-esp32-espidf

    error: Error loading target specification: Could not find specification for 
    target "xtensa-esp32-espidf". Run `rustc --print target-list` for a 
    list of built-in targets
    

    解决:文章来源地址https://www.toymoban.com/news/detail-719407.html

    rustup default esp
    

vscode相关

  • 插件(可选)
    这里
  • 在初始化的时候由于需要访问到github,这里可以设置下proxy:
    【rust/esp32】wsl2开发环境搭建与测试,Rust,单片机,rust,开发语言,后端
  • 缺少venv
    sudo apt install python3.10-venv
    

build相关

  • 缺少libclang
    thread 'main' panicked at 'Unable to find libclang: "couldn't find any valid shared libraries matching: ['libclang.so', 'libclang-.so', 'libclang.so.', 'libclang-.so.'], set the LIBCLANG_PATH environment variable to a path where one of these files can be found (invalid: [])"'
    
    解决:主要还是rust build没有搞好,如果已经搞好了,则需要设置一下环境变量
    ~/rust-build$ . export-esp.sh
    
  • 未识别到xtensa
    error: unknown target triple 'xtensa', please use -triple or -arch
    
    解决
    rustup update
    git clone git@github.com:esp-rs/rust-build.git
    chmod +x install-rust-toolchain.sh
    ./install-rust-toolchain.sh -i reinstall # this can probably fail the first time, so then
    softwareupdate --all --install --force
    ./install-rust-toolchain.sh -i reinstall
    
  • 选择target
    $ rustc --print target-list
    xtensa-esp32-espidf
    xtensa-esp32-none-elf
    xtensa-esp32s2-espidf
    xtensa-esp32s2-none-elf
    xtensa-esp32s3-espidf
    xtensa-esp32s3-none-elf
    xtensa-esp8266-none-elf
    
    这里我使用的是xtensa-esp32s3-espidf
  • 每次更改了依赖之后,build都会重下esp-idf
    解决:在首次安装好esp-idf后将IDF_PATH环境变量设置好
    vi ~/.bashrc # 并将下述语句添加到文件最后 下述路径即esp-idf的安装路径 自行更改
    export IDF_PATH="/home/le/.espressif/esp-idf/v5.1.1"
    
    同样,也可以将rust-buildexport-esp.shLIBCLANG_PATHPATH加进去

测试

  • flash
    ~/rust-esp32-std-demo$ espflash flash target/xtensa-esp32s3-espidf/debug/rust-esp32-std-demo
    [2023-10-26T16:39:10Z INFO ] Serial port: '/dev/ttyACM0'
    [2023-10-26T16:39:10Z INFO ] Connecting...
    [2023-10-26T16:39:11Z INFO ] Using flash stub
    Chip type:         esp32s3 (revision v0.1)
    Crystal frequency: 40MHz
    Flash size:        16MB
    Features:          WiFi, BLE
    MAC address:       
    App/part. size:    1,763,504/16,384,000 bytes, 10.76%
    [00:00:01] [========================================]      14/14      0x0                                                                                                                                                                                                                                                     
    [00:00:00] [========================================]       1/1       0x8000                                                                                                                                                                                                                                                  
    [00:01:41] [========================================]    1016/1016    0x10000                                                                                                                                                                                                                                                 [2023-10-26T16:40:55Z INFO ] Flashing has completed!
    
  • monitor
    ~/rust-esp32-std-demo$ espflash monitor
    [2023-10-26T16:41:43Z INFO ] Serial port: '/dev/ttyACM0'
    [2023-10-26T16:41:43Z INFO ] Connecting...
    [2023-10-26T16:41:44Z INFO ] Using flash stub
    Commands:
        CTRL+R    Reset chip
        CTRL+C    Exit
    
    I (31) boot: ESP-IDF v5.1-beta1-378-gea5e0ff298-dirt 2nd stage bootloader
    I (32) boot: compile time Jun  7 2023 08:07:32
    I (33) boot: Multicore bootloader
    I (37) boot: chip revision: v0.1
    I (41) boot.esp32s3: Boot SPI Speed : 40MHz
    I (46) boot.esp32s3: SPI Mode       : DIO
    I (50) boot.esp32s3: SPI Flash Size : 16MB
    I (55) boot: Enabling RNG early entropy source...
    ...
    I (18144) rust_esp32_std_demo: Wifi DHCP info: IpInfo { ip: 192.168.1.11, subnet: Subnet { gateway: 192.168.1.1, mask: Mask(24) }, dns: Some(192.168.1.1), secondary_dns: Some(0.0.0.0) }
    ...
    
  • 访问monitor信息中的ip地址
    【rust/esp32】wsl2开发环境搭建与测试,Rust,单片机,rust,开发语言,后端

吐槽

  • 也许我打开方式不对,太恶心了,在试错的时候每次build都重新下一遍esp idf,解决方式见上

参考

  • rust build
  • rust-esp32-std-demo
  • The Rust on ESP Book
  • esp-idf-template
  • Using esp-idf-sys without downloading anything

到了这里,关于【rust/esp32】wsl2开发环境搭建与测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Rust介绍与开发环境搭建

    安装rust rust 安装官方指南:[HTPS][3W].rust-lang.org/tools/install (自己替换 HTPS,3W) Linux或者Macbook上安装rust 打开终端并输入下面命令: #因审核问题下面链接需要替换一下 HTPS-httpscurl  --tlsv1.2 [HTPS]://sh.rustup.rs -sSf | sh 这个命令将下载一个脚本并开始安装  rustup  工具,此工具

    2024年02月22日
    浏览(48)
  • vscode rust远程开发环境搭建

    rust-analyzer是个智能补全插件,对于新手来说,非常有用。 vscode提供的rust-analyzer需要GLIBC 2.29,低版本的GLIBC可以安装旧版本的rust-analyzer,新版本的rust-analyzer可以通过源码安装,如下是源码安装rust-analyzer的过程: 安装node.js 下载地址:https://nodejs.org/en/download 编译安装rust-ana

    2024年02月06日
    浏览(48)
  • 【vs code】|——rust开发环境搭建

    vscode下搭建 rust 语言开发环境 参考官方安装教程:https://www.rust-lang.org/tools/install 我们通过快速方式 rustup安装 Tips: rust依赖C/C++环境 在安装rust前需要先安装C/C++编译环境 有两种: 1、msvc Visual Studio使用的是msvc 这个安装rust一路默认即可 2、mingw 大家自行安装下C/C++环境哦 这里介

    2024年02月08日
    浏览(51)
  • Rust语言从入门到入坑——(2)Rust在windows上搭建开发环境

    开始搭建一个适合在windows上运行的Rust环境。 Rust支持的程序语言很多:可详见官网介绍 本文章主要是在windowns下搭建开发环境 首先,需要安装最新版的 Rust 编译工具和 Visual Studio Code。 Rust 编译工具:https://www.rust-lang.org/zh-CN/tools/install Visual Studio Code:https://code.visualstudio.com

    2024年02月09日
    浏览(50)
  • esp32 rust linux

    官方文档:https://esp-rs.github.io/book/introduction.html curl --proto \\\'=https\\\' --tlsv1.2 -sSf https://sh.rustup.rs | sh risc: 或使用安装工具同时支持 risc 和 xtensa: 以上都需要: 两种工具链切换需要删除工程里的 target 文件夹 使用 std 方式,不使用 no_std,std 依赖 esp-idf,但不需要手动下载,会在

    2024年02月07日
    浏览(47)
  • Arduino ESP32开发环境搭建入门教程,esp32的arduino开发环境搭建教程,arduino导入eps32开发插件

    从官网下载 Arduino IDE 软件并安装。下载链接:Software | Arduino 网盘链接:链接:https://pan.baidu.com/s/1ZuSbo1BPy8XyyXzfl4KNzg?pwd=f8yd 提取码:f8yd 1、找到Arduino IDE安装目录,打开hardware文件夹。 2、在hardware文件夹中创建一个espressif文件夹。 3、将解压出的文件夹移动到espressif文件夹中,

    2024年02月13日
    浏览(52)
  • 基于 Docker Desktop、WSL2 搭建双系统 Docker 环境

    Docker Desktop :可以理解为是 Docker 的桌面版,或者是 Windows 系统上运行的 Docker 服务。 WSL2 :可以理解为是 Windows 上的一个工具,通过 WSL2 可以在 Windows 上运行 Linux 子系统。 通过 Docker Desktop、WSL2 方式搭建的双系统 Docker 环境,可以实现在 Windows 服务器上同时运行 Windows 和 L

    2024年02月13日
    浏览(52)
  • ESP32-CAM模块Arduino环境搭建测试

    一.ESP32+OV2640摄像头模块CameraWebServer视频查看 二.测试ESP32-CAM(后续称cam模块)代码是否上传执行成功测试 PS:上叙代码是测试cam模块代码是否执行成功 二.由于之前使用的是Arduino IDE 1.8.5版本,ESP32-CAM模块上传代码后报错 Camera probe failed with error 0x105(ESP_ERR_NOT_FOUND) Camera init failed wit

    2024年02月11日
    浏览(54)
  • 【ESP32】开发环境搭建(Windows)

    本文章用于记录在 Windows 操作系统下,搭建 ESP32 的开发环境的操作流程。该操作流程记录了如下几个功能的实现与验证: 1、ESP32 程序编译; 2、UART 程序下载; 3、UART 查看 Log 输出; 4、JTAG 接口程序下载; 5、JTAG 单步调试。 ESP-Prog 调试下载器 ESP32_DevKitc_V4开发板(ESP32-WRO

    2024年02月06日
    浏览(84)
  • ESP32开发环境搭建Windows VSCode集成Espressif IDF插件ESP32_IDF_V5.0开发编译环境搭建

    下载网址:https://dl.espressif.com/dl/esp-idf/ 打开上面的网页,选择单击页面中 ESP32-IDF v5.0.2 - Offine Installer,5.0.2是当前最新版本,如果没有ESP32-IDF v5.0.2 - Offine Installer,说明官方有更新最新版本,如果想要安装此教程版本可以把页面翻到最下面,会列出所有历史版本供用户下载。

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包