博主第一次发表博文,格式不好请大家见谅。
前言
编译系统:Ubuntu14.04 64位
esp32工具链:xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz
ESP8266工具链:xtensa-lx106-elf-linux64-1.22.0-92-g8facf4c-5.2.0.tar.gz
ESP8266 SDK版本:ESP8266_RTOS_SDK-3.2.tar.gz
注:ESP8266 SDK版本3.0后的工具链版本号必须使用5.2以上的
准备工作
在安装之前,先要确认系统编译环境软件是否已全部安装。
对于编译ESP32:
sudo apt-get install git wget libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache
对于编译ESP8266:
sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial
对于不知道缺什么的情况下,把上述两条指令都执行一遍,确保成功;有重复没关系。
下载对应工具链和SDK
- 在乐鑫官网选择sdk下载:乐鑫官网
- ESP8266工具链下载链接:https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-92-g8facf4c-5.2.0.tar.gz
如果esp8266 SDK版本小于3.0,则下载https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-88-gde0bdc1-4.8.5.tar.gz - esp32编译工具链下载:
- 对于64位Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz
- 对于32位Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-i686.tar.gz
安装
我把工具链全部解压到/opt目录下,稍后设置路径方便,建议在Linux下,自己安装的软件或者其他全部安装到opt下,便于管理。
sudo tar -zxvf xtensa-lx106-elf-linux64-1.22.0-92-g8facf4c-5.2.0.tar.gz -C /opt
sudo tar xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz -C /opt
设置环境变量
打开终端,编辑.profile文件,我习惯加在这里
vim ~/.profile
在其末尾加上:
export PATH=/opt/xtensa-lx106-elf/bin:$PATH
export PATH=/opt/xtensa-esp32-elf/bin:$PATH
接下来就是最重要的一步
仍然在该文件里添加:
alias get_esp8266='export IDF_PATH="/home/***/workspace/ESP8266/ESP8266_RTOS_SDK"'
alias get_esp32='export IDF_PATH="/home/******/workspace/ESP32/esp-idf"'
我的.profile文件:
保存退出
执行
source ~/.profile
到此为止,全部安装成功
进行编译项目
以下测试在同一终端下。
- ESP8266编译:
进入ESP8266的$IDF_PATH/examples/get-started/project_template
执行get_esp8266
,可用echo $IDF_PATF
查看当前IDF路径,若为上文设置的ESP8266路径,则正确。执行make
,成功。
- ESP32编译:
上一步成功后,进入ESP32的$IDF_PATH/examples/get-started/hello_world,执行
get_esp32
,可用echo $IDF_PATF
查看当前IDF路径,若为上文设置的ESP32路径,则正确。执行make
,成功。
打开新终端时,都要先执行一次source ~/.profile
,再执行get_espxxx
。
总结
以上为全部内容了,优点是好用,兼容。不好的一点就是若同时在进行两个不同芯片的项目,就得来回手动执行
get_espxxx
切换环境变量。希望和大家多多交流!