很多同学想学习idf,但各种原因放弃了,其中比较多是因为环境问题,esp的环境真不好装,为此,我总结了安装idf环境的过程,方便大家参考。
乐鑫官网推荐有两种方式,一种是github,链接如下:
Linux 和 macOS 平台工具链的标准设置 - ESP32-S3 - — ESP-IDF 编程指南 release-v5.0 文档 (espressif.com)另外一种是gitee,链接:docs/README-submodule-update.md · 乐鑫开源/esp-gitee-tools - Gitee.com
我都试过,github很容易龟速、失败等问题,十分不推荐,所以我下面主要介绍linux下用gitee-tools方式安装idf,windows环境应该大差不差的。
准备工作:
开发板硬件:虫洞ESP32-S3-EYE开发板虫洞ESP32-S3...-淘宝网 (taobao.com)、typeC数据线等;
店铺连接:首页-虫洞嵌入式1号-淘宝网 (taobao.com)
【淘宝】http://e.tb.cn/h.gppI2em4iEhVzJ9?tk=xBtr3h4UJlq CZ0002 「虫洞ESP32-S3-EYE ESP-WHO人脸识别 esp32-cam升级 openMV LVGL」
点击链接直接打开 或者 淘宝扫码直接打开
虚拟机安装配置:
VScode安装、常用设置和SSH远程连接配置_vscode 配置 ssh port-CSDN博客
根据Linux 和 macOS 平台工具链的标准设置 - ESP32-S3 - — ESP-IDF 编程指南 release-v5.0 文档 (espressif.com)
中的第一步安装准备,把必要的软件安装好
大致就是:sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
检查一下cmake的版本,需要3.17以上版本,所以重新安装cmake
下载wget https://github.com/Kitware/CMake/releases/download/v3.18.3/cmake-3.18.3.tar.gz
解压tar -zxvf ,然后进文件夹中执行编译安装 ./bootstrap && make && sudo make install,等待一下,这里要点时间
然后安装 Python 3:
sudo apt-get install python3.8
然后参照linux安装了多个python,如何指定python运行版本_linux指定python-CSDN博客
进行配置
正式安装:
我用的是submodle-update方式,大家想用镜像仓库,则自己摸索一下。
submodule-update
1.创建esp文件夹,我以idf5.0版本为例,mkdir esp32s3,cd进入文件夹
2.下载gitee-tools,命令git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
3.下载idf,命令
git clone https://gitee.com/EspressifSystems/esp-idf.git
4.这里是重点,官网文档没有介绍,切记!!!!cd进入esp-idf文件夹,用git branch查看idf的分支,我们要切换到4.4版本!!!!!!!!!!!!!
用命令git checkout origin/release/v5.0将分支切换到5.0
5.返回esp-gitee-tools文件夹 cd ../esp-gitee-tools/,根据docs/README-submodule-update.md · 乐鑫开源/esp-gitee-tools - Gitee.comdocs/README-submodule-update.md · 乐鑫开源/esp-gitee-tools - Gitee.comdocs/README-submodule-update.md · 乐鑫开源/esp-gitee-tools - Gitee.com中的Step 3进行代码拉取,我以方式二的方式进行,命令./submodule-update.sh ../esp-idf/,会更新代码,速度还是很快的,需等一会
跑完没有报错就可以了:
这里有两个提示:
(1).如果乐鑫库代码更新了可以用git pull && git submodule update --init --recursive进行更新;
(2).如果要更新其他工程,可以同样方式。后面我们下esp-who或者adf等代码,也可以用同样的方法。