安装工具链
整个ESP-IDF环境需要用到很多软件,使用如下命令安装:
$ sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial
64位操系统和32位操作系统所使用的工具链不同,所以根据系统选择对应的工具链安装。这里使用wget命令下载64位的工具链,并解压安装:
$ mkdir -p /opt/esp
$ cd /opt/esp/
$ wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-73-ge28a011-5.2.0.tar.gz
$ tar -xzvf xtensa-esp32-elf-linux64-1.22.0-73-ge28a011-5.2.0.tar.gz
解压后的工具链位于路径/opt/esp/xtensa-esp32-elf下面,该目录下面的bin目录就是用来编译ESP-IDF工程所需的工具。如果要使系统能够直接使用这些程序,需要将这个bin文件夹路径添加到系统的环境变量PATH中去,这里直接使用echo命令将其添加到脚本文件~/.bashrc中(系统每次启动时都会执行这个脚本)。第一次添加后需要对该脚本执行source ~/.bashrc操作,让该脚本立即生效。
$ echo "export PATH=$PATH:/opt/esp/xtensa-esp32-elf/bin" >> ~/.bashrc
下载编译
ESP-IDF的全称是Espressif IoT Development Framework(乐鑫IoT开发框架),即通常所说的SDK,它里面提供了丰富的可供调用的库和API。下载SDK:
$ mkdir -p /srv/esp
$ cd /srv/esp
$ git clone --recursive https://github.com/espressif/esp-idf.git
clone后面的参数--recursive表示递归克隆该仓库的子仓库,这是一种在开源界非常流行的做法,可以方便地对多个仓库进行控制。在clone时使用到这个参数,也可以使用下面的命令来手动更新该仓库的子模块:
$ git submodule update --init
ESP-IDF下载完成后,还需要导出环境变量IDF_PATH,今后在编译工程代码时会使用这个变量来查找ESP-IDF所在路径。同样使用echo命令将其追加到脚本文件~/.bashrc,完成后执行source ~/.bashrc命令。
$ echo "export IDF_PATH=/srv/esp/esp-idf" >> ~/.bashrc
ESP-IDF提供了丰富的demo程序,位于路径examples下面。这里先试试hello world,进入源码所在目录,然后编译:
$ cd examples/get-started/hello_world/
$ make
如果是第一次执行make命令,系统会弹出一个图形配置界面,如下图所示: