1、安装准备
根据编译ESP-IDF所需要的软件安装相关的软件包,ubuntu系统下根据如下指令安装,从指令中我们可以看到需要安装的有git,python3等等软件。
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
等待以上的软件安装完成,如果有安装失败的请检查网络连接是否ok,或者尝试更新一下源再重试。
2、获取ESP-IDF
2.1 官方给出的获取esp-idf的方法
ESP-IDF 的默认安装路径为 ~/esp
,注意ESP-IDF不支持带有空格的路径。所以我们先在home目录下创建esp目录,然后再从github中克隆相关的代码。
mkdir -p ~/esp
cd ~/esp
git clone -b v4.3.1 --recursive https://github.com/espressif/esp-idf.git
经过测试,以上的方法获取代码的速度非常非常的慢,而且最后还提示了失败,无奈只能另找其他的方法。
2.2 从国内码云获取esp-idf的方法
为了解决国内开发者从 github 克隆 esp 相关仓库慢的问题,已将 esp-idf 和部分重要仓库及其关联的子模块镜像到了 gitee。有部分 esp 仓库会使用 submodules,而 submodules 会指向 github 或者以相对路径的方式指向 gitee 上不存在或不正确的仓库,导致 clone 仍旧慢或者会出错,因此引入了新的脚本来解决此问题。
step1
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
step2
git clone https://gitee.com/EspressifSystems/esp-idf.git
step3
进入 esp-gitee-tools 目录,export submodule-update.sh 所在路径,方便后期使用,如:
cd esp-gitee-tools
export TEG_PATH=$(pwd)
接着进入 esp-idf 目录执行 submodule-update.sh 脚本:
cd esp-idf
$TEG_PATH/submodule-update.sh
等待脚本执行完成,无任何报错,ESP-IDF下载完成。
注意以上的操作目录是在~/esp目录下,如果是其他目录的需要设置相关的环境变量,为了提高搭建环境的成功率,还是使用默认的路径为好。
3、设置编译代码所用到的工具
需要用的的工具比如有编译器、调试器、Python 包等。
方法1:
安装工具的脚本为进入到esp-idf目录下,然后执行安装脚本
cd ~/esp/esp-idf
./install.sh
同样的,ESP-IDF 工具安装器会下载 github 发布版本中附带的一些工具,访问 github 较为缓慢,所以可以设置一个环境变量,实现优先选择 Espressif 的下载服务器进行 github 资源下载。
方法2:
在执行安装工具脚本之前先设置环境变量IDF_GITHUB_ASSETS,设置为Espressif 的下载服务器的网址,所以下载的时候就会从Espressif 的服务器下载,加快下载速度。
cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh
执行以上脚本,等待脚本执行完成,无报错,工具下载设置完成。 (ps:./install.sh我执行了两次,第一次卡住了,可能是网络中断了,第二次成功)
4、设置环境变量
通过以上的步骤完成的esp-idf的下载和相关工具的安装,esp-idf的路径为:~/esp/esp-idf,编译环境所用到的工具在:~/.espressif目录下,大家可以到这两个目录下看下里面的内容。到目前为止以上的两个目录是没有联系的,编译工程的时候无法通过“命令窗口”使用这些工具,所以需要设置一些环境变量,这可以通过 ESP-IDF 提供的另一个脚本完成。在需要运行 ESP-IDF 的终端窗口运行以下命令:
. $HOME/esp/esp-idf/export.sh
命令开始的 “.” 与路径之间应有一个空格!测试以下,打开一个新的终端,输入以上命令,有如下的显示,表示环境变量安装成功。
但是如果需要经常运行 ESP-IDF,您可以为执行 export.sh
创建一个别名,具体步骤如下:复制并粘贴以下命令到 shell 配置文件中(.profile
, .bashrc
)
alias get_idf='. $HOME/esp/esp-idf/export.sh'
通过重启终端窗口或运行 source [path to profile]
,如 source ~/.bashrc
来刷新配置文件。
现在您可以在任何终端窗口中运行 get_idf
来设置或刷新 esp-idf 环境。随便打开一个新的终端,输入get_idf,显示效果和上面输入整条命令的效果是一样的。