文章目录
- 前言
- 提示
- 构建工具
- 安装 IDF
-
- 设定环境变量
- 同时安装多个版本
-
- 参考资料
- ESP-IDF 快速入门
- 编译 ESP-AT 工程
- idf.py build 出现cmake failed with exit code 1
前言
这是一篇水贴。。。
这里记录了这几天安装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
设置命令:
$ export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
$ cd esp-idf
$ ./install.sh [platform1,platform2]
安装示例:
$ ./install.sh esp32
$ ./install.sh 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 编译部分的问题可以在这里找到详细资料。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)