使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架

一、参考链接:

快速入门 — ESP-MDF 编程指南 v1.0-158-g8d0b79a 文档 (espressif.com)

码云esp-gitee-tools仓库

github上esp-mdf README_cn.md。ESP-MDF框架安装使用说明

ESP-MDF 中文讨论版 - Page 2 - ESP32 Forum

//踩了三天坑,搭了十几次环境,用下面老哥的话“总结”一下ESP32的环境搭建和资料。

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第1张图片
使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第2张图片

二、重要说明:

本文所有操作都是基于2023年2月10日的ESP-MDF master分支和ESP-IDF v4.4-rc1分支。后续esp版本更新,此教程可能失效,仅供参考。

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第3张图片

目前esp-gitee-tools提供了两种下载ESP-IDF的方式,而且官方推荐使用jihu脚本安装,但是安装ESP-MDF框架的IDF必须使用submodule-update。

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第4张图片

三、开始搭建:

  1. 环境准备

安装Ubuntu20.04,换清华源。为保证操作准确,所有操作命令都有cd+绝对路径。本文所有出现的"newyouth"单词是我自己电脑的主机名,共出现五处都需要换成你自己的Ubuntu主机名。

首先,需要下载如下软件包:

sudo apt-get install git wget flex bison gperf python3 python3-venv python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

然后,在家目录下载创建esp目录,后续的esp-mdf和esp-gitee-tools都放在该目录下。

mkdir -p ~/esp
  1. 获取esp-gitee-tools

cd ~/esp
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
./jihu-mirror.sh set

./jihu-mirror.sh set 命令将github切换到使用极狐镜像的 URL。

./jihu-mirror.sh unset 命令恢复,不使用镜像的 URL。

  1. 获取esp-mdf

cd ~/esp
如果使用了jihu-mirror.sh脚本推荐从github克隆,如果卡住了则取消重试。
git clone --recursive https://github.com/espressif/esp-mdf.git
//当然,如果没有使用jihu-mirror.sh脚本也可以从gitee克隆
//git clone --recursive https://gitee.com/EspressifSystems/esp-mdf.git

如果忘加--recursive也没关系暂时不用管,在最后进行idf.py build时会自动从github下载相关的子模块,主要是需要下载esp-rainmaker子模块。

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第5张图片
  1. 获取esp-idf

进入esp-mdf目录下,查看是否有esp-idf目录,如果没有则直接克隆esp-idf,如存在则使用rm -rf esp-idf删除后再克隆esp-idf。

cd ~/esp/esp-mdf
ls
git clone https://gitee.com/EspressifSystems/esp-idf.git
使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第6张图片

进入到esp-idf目录下,且换分支到v4.4-rc1

cd ~/esp/esp-mdf/esp-idf
git checkout v4.4-rc1

更新esp-idf子模块。

cd ~/esp/esp-gitee-tools/
./submodule-update.sh ../esp-mdf/esp-idf/

稍微等待几分钟。

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第7张图片

ESP-IDF子模块克隆成功如下:

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第8张图片
  1. 设置工具

如 pip 版本 >= 10.0.0,建议先换pip的源:

pip --version
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com

使用以下方式来下载安装工具:

cd ~/esp/esp-gitee-tools
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh ~/esp/esp-mdf/esp-idf/

如果出现 /usr/bin/env: “python”: 没有那个文件或目录 问题。

解决:

方法一:sudo apt-get install python3 (下载python3)

方法二:sudo ln -s /usr/bin/python3 /usr/bin/python (前提是方法一的python3软件已经存在)

如果出现在某个包下载失败,可多次执行“./install.sh ~/esp/esp-mdf/esp-idf/”安装命令,直到所有包下载成功。

安装成功如下:

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第9张图片
  1. 设置环境变量

执行上图中红框的内容。

. /home/newyouth/esp/esp-mdf/esp-idf/export.sh

出现idf.py build则搭建成功。

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第10张图片

将~/esp/esp-mdf写入环境变量。

cd ~/esp/esp-mdf
export MDF_PATH=~/esp/esp-mdf   (注意不是:~/esp/esp-mdf/)

将环境变量写入shell配置文件中。

gedit ~/.bashrc

在结尾敲一下回车新建一行,写入如下命令并保存。

alias setmdf='export MDF_PATH=~/esp/esp-mdf;. /home/newyouth/esp/esp-mdf/esp-idf/export.sh'

更新一下配置文件。

source ~/.bashrc

可以尝试新开一个终端,输入setmdf,看看是否会出现idf.py build

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第11张图片
  1. 编译示例

cd ~/esp/esp-mdf/examples/get-started
idf.py build

编译成功如下:

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第12张图片

如果将get-started工程拷到其他目录下编译会出现如下红框中的错误:

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第13张图片

问题如下:

Executing action: all (aliases: build)

Running cmake in directory /home/newyouth/esp/get-started/build

Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DIDF_TARGET=esp32 -DCCACHE_ENABLE=0 /home/newyouth/esp/get-started"...

CMake Error at CMakeLists.txt:8 (include):

include could not find load file:

/home/newyouth/esp/get-started/../../project.cmake

解决办法:可以试试修改工程目录下的CMakeLists.txt文件,将红框中的三行注释掉。

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第14张图片
  1. 下载示例

插上开发板输入如下烧写命令,flash 烧写文件,monitor 打开串口监视器。

cd ~/esp/esp-mdf/examples/get-started
sudo chmod 777 /dev/ttyUSB0 && idf.py -p /dev/ttyUSB0 flash monitor
使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第15张图片

开始运行:

使用Gitee搭建Ubuntu系统下的ESP-MDF和ESP-IDF框架_第16张图片

四、结束:

搭建ESP-MDF v1.0版本大致方法一样,克隆esp-mdf后将目录里面的esp-idf删除,然后重新克隆esp-idf。不过我没测试过,欢迎踩坑。

经过实际测试:

  1. 搭建好ESP-MDF,依旧可以直接编译之前ESP-IDF v4.4-rc1创建的工程,但是所有项目使用ESP-MDF环境编译时需要执行idf.py fullclean清除以前的编译文件。

  1. 如果将esp-idf克隆到~/esp/目录下(即和esp-mdf同级目录),再重新搭建ESP-IDF框架完全也是兼容ESP-MDF的。

你可能感兴趣的:(c语言,单片机)