esp32 开发环境搭建
安装esp-idf的过程记录,涉及到了换软件源(github镜像)的一些操作,可能会对大家有些许帮助,所以整理之后发布出来。
文章目录
前言
这是一篇水贴。。。
这里记录了这几天安装esp-idf的一些过程,涉及到了换软件源(github镜像)的一些操作,可能会对大家有些许帮助,所以整理之后发布出来。
另外,本人的开发机是 ArchLinux,里面有些软件包的名字可能和 ubuntu/CentOS 等系统中不一样,这些系统按照官方指南进行安装即可。
提示
如果访问 github 有困难,可以使用以下网址替代https://github.com/进行 clone:
https://jihulab.com
例如:git clone -b release/v4.3 --recursive https://github.com/espressif/esp-idf.git ./esp-idf-v4. 3
替换之后是git clone -b release/v4.3 --recursive https://jihulab.com/esp-mirror/espressif/esp-idf.git ./esp-idf-v4.3
构建工具
先安装构建和编译工具链:
$ sudo pacman -S --needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
安装 IDF
克隆 esp-idf 到本地:
$ mkdir -p ~/esp
$ cd ~/esp
$ git clone --recursive https://github.com/espressif/esp-idf.git
如果下载速度较慢,可以试一下用手机热点下载。
设置 idf 目标平台
这一步主要是针对 esp32/esp8266 不同型号下载不同工具,如编译器、调试器、Python包等。
设置编译工具链安装位置:
$ export IDF_TOOLS_PATH=~/.Software/esp/espressif
这条指令将 IDF_TOOLS_PATH 安装到 ~/.Software/esp/espressif 目录下:
.Software/esp/espressif
▶ tree -L 1
.
├── dist
├── espidf.constraints.v5.0.txt
├── idf-env.json
├── python_env
└── tools # 里面就是编译和调试用的工具链
4 directories, 2 files
设置命令:
# 先设定 Espressif 的下载服务器进行 Github 资源下载
$ export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
# 下载工具链
$ cd esp-idf
$ ./install.sh [platform1,platform2]
安装示例:
$ ./install.sh esp32 # 只安装 esp32 工具链
$ ./install.sh esp32,esp32s3 # 安装 esp32 和 esp32s3 工具链
$ ./install.sh all # 安装所有平台工具链
如果需要在安装后,将工具链转移到其他位置,可以通过两种方式完成:
-
修改
export.sh:# export.sh 2 export IDF_PATH=$HOME/.Software/esp/esp-idf 3 export IDF_TOOLS_PATH=$HOME/.Software/esp/espressif修改完成之后,每次运行
export.sh,都会设置这两个环境变量。 -
修改文件
esp/esp-idf/tools/idf_tools.py完成:# 修改前 IDF_TOOLS_PATH_DEFAULT = os.path.join('~', '~/.espressif') # 修改后 IDF_TOOLS_PATH_DEFAULT = os.path.join('~', '.Software/esp/espressif')修改之后将 espressif 移动到预定位置即可。
这里更推荐第一种方法,其灵活性更高,也更容易记住。这两种方法都需要和环境变量设置里面的 idf_start 搭配使用。
设定环境变量
在每次需要使用 esp-idf 时在 shell 里面执行 path/to/esp-idf/path/esp/esp-idf/export.sh 即可。
在 .profile(需要保证 .bashrc 或 .zshrc 里面有 source .profile 这一条语句) 或者 .bashrc 里面添加如下信息:
alias idf_start='source $HOME/esp/esp-idf/export.sh'
这样在每次需要使用idf的时候,执行指令idf_start即可。
也可以使用 idf_start 以外的名字,但是需要和环境中的各种命令区别开,避免重名。
同时安装多个版本
安装 idf 和 tools
按照官方 wiki 将各版本的idf和tools都安装在esp目录下,并修改相应信息:
▶ tree -L 1 esp
.
├── esp-idf-v4.4
├── esp-idf-v5.0
├── espressif-v5.0
├── xtensa-esp32-elf
└── xtensa-esp32-elf-v4.4
6 directories, 2 files
修改环境变量
这里将所有的环境变量全部放在 esp-idf/export.sh 中:
# esp-idf-v4.4/export.sh
2 export IDF_PATH=$HOME/.Software/esp/esp-idf-v4.4
3 export IDF_TOOLS_PATH=$HOME/.Software/esp/xtensa-esp32-elf-v4.4
# esp-idf-v5.0/export.sh
2 export IDF_PATH=$HOME/.Software/esp/esp-idf-v5.0
3 export IDF_TOOLS_PATH=$HOME/.Software/esp/espressif-v5.0
在 $HOME/.profile 里面设置各版本的环境变量指令:
6 # esp32
7 alias idf_start_v5='source $HOME/.Software/esp/esp-idf-v5.0/export.sh'
8 alias idf_start_v4.4='source $HOME/.Software/esp/esp-idf-v4.4/export.sh'
之后,只要在shell 中运行需要的指令就可以获取到 esp-idf 环境了。
环境变量 IDF_TOOLS_PATH 也可以直接写到 install.sh 中:
#!/usr/bin/env bash
# 修改 Espressif 下载服务器
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
export IDF_TOOLS_PATH="/home/dark/.Software/esp/idf-tools-v4.3"
注:
在编译 esp-at 过程中,我也在安装 idf-tools 之后,将tools换到了其他位置,也修改了相关变量,但是最终编译 esp-at 时,出现了 idf.py build 出现cmake failed with exit code 1 的问题,该问题目前并没有找到合适解决方法,最后只能通过重新安装 idf-tools 到预定位置解决。错误提示如下:
Cannot add target-level dependencies to non-existent target "flash"
参考资料
本文中所有操作大部分均来源于以下资料,感谢这些作者的辛苦付出,让我在遇到各种问题的时候能够找到相关的解决方法。
ESP-IDF 快速入门
本文所有步骤均按照 espressif 提供的 edp-idf 安装页面 进行。
编译 ESP-AT 工程
https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/Compile_and_Develop/How_to_clone_project_and_compile_it.html
文中关于切换 github 镜像为国内镜像的操作在这篇文章里面可以找到。
idf.py build 出现cmake failed with exit code 1
https://github.com/espressif/esp-at/issues/559
这是 esp-at 的讨论,文末关于 esp-at 编译部分的问题可以在这里找到详细资料。
更多推荐




所有评论(0)