推荐先看文章:
《ESP32,使用gitee搭建 ESP-IDF 开发框架》
链接:https://blog.csdn.net/weiqifa0/article/details/119066253?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170359954116800185837038%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170359954116800185837038&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-119066253-null-null.nonecase&utm_term=esp&spm=1018.2226.3001.4450
乐鑫官方提供的文档,以及网上大部分ESP32环境搭建的文章,在搭建开发环境获取源码的时候,由于使用了国外知名的程序员交友平台github,往往会导致源码获取中断或失败,github访问失败是一些特别的原因导致的。
正因为这样,很多开发者在搭建开发环境上浪费了很多时间,甚至还没开始就想放弃。为了解决国内开发者从github上获取ESP相关仓库缓慢的问题,乐鑫提供了在gitee上获取ESP-IDF源码的方法。
在windows上搭建ESP-IDF开发环境的时候,可以使用乐鑫提供的ESP-IDF工具安装器,指定优先选择Espressif的下载服务器,上面提供的博客文章,已经有提及,本文主要是使用Linux命令行的方式搭建开发环境。
为什么使用Linux命令行搭建开发环境,主要是因为自由度高,虽然操作略复杂,但乐鑫官方很多资料和文档,都是基于Linux或windows命令行的方式开发的,因此,建议开发者学习一下如何使用命令行搭建ESP32的开发环境。
阅读本文需要有一定的Linux或windows命令行操作基础,需要掌握一定的git命令使用,以及具备一些脚本使用的基础知识。ESP32的开发环境搭建,均使用了git命令,Linux命令行,以及可执行脚本。
建议先阅读 ESP-IDF 编程指南快速入门 的相关章节,对开发环境搭建有一个基本的了解,并且已经完成第一步的安装准备工作,再执行本文的相关操作。
本文使用的操作系统是ubuntu18.04,操作目录是/opt/esp32,使用root用户进行操作,如果没有特别说明,操作路径均是相对路径,在执行命令的时候,重点注意命令的执行路径是相对路径还是绝对路径。
准备工作:
在/opt目录下创建esp32文件夹:mkdir esp32
第一步:下载 esp-idf 源码和子模块下载工具
进入esp32目录,执行git clone 命令,获取ESP-IDF在gitee上托管的源码和工具,注意,这次的git clone仅仅是获取ESP-IDF的源码,还没有包含ESP-IDF的子模块,ESP-IDF的源码需要结合子模块才能使用,子模块在后面的步骤进行获取。
cd esp32/
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
git clone https://gitee.com/EspressifSystems/esp-idf.git
第二步:用esp-gitee-tools下载子模块
在esp-gitee-tools工具包里面,提供了一个submodule-update.sh脚本,用来更新ESP-IDF框架的子模块,这个脚本主要是使用了gitee作为镜像源,更新ESP-IDF框架必要的子模块,避免了在github下载缓慢或出错的情况。
cd esp-gitee-tools/
export EGT_PATH=$(pwd)
cd ../esp-idf/
$EGT_PATH/submodule-update.sh
第三步:安装编译调试工具链
还需要下载和设置ESP相关的工具,比如编译器,调试器,Python包,等等。由于github下载缓慢,可以优先选用乐鑫的下载服务器进行github资源下载。
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh
编译器、调试器和Python包这些工具,默认下载在/root/.espressif目录下,也可以通过修改环境变量来改变这个下载目录。
第四步:设置环境变量
需要设置环境变量,让操作终端知道当前的工具包位置,根据下载完成的提示,需要在esp-idf目录下,执行export.sh脚本,来完成环境变量的配置,如下图所示。
. ./export.sh
(注意,命令开始的“.”与export.sh脚本之间,有一个空格)
为了方便在任何终端使用配置好的环境变量,不用每次重新打开终端窗口都敲一堆指令去,可以为该脚本创建一个别名,在/root/.bashrc
或者~/.bashrc
添加以下指令,重启终端后,就可以用get_idf
指令来刷新环境变量了。
alias get_idf='. /opt/esp32/esp-idf/export.sh'
扩展:编译工程的一般步骤
第一步: 设置 menuconfig
cd /opt/esp32/hello_world #具体的工程文件夹
idf.py set-target esp32
idf.py menuconfig
第二步:编译工程
执行idf.py build
构建和编译工程,这个命令可以编译helloworld应用程序和ESP-IDF所有组件,并且会生成bootloader、分区表和应用程序的二进制文件。
idf.py build
第三步:下载烧录
编译完成后,可以使用以下命令,将刚刚生成的二进制文件,烧录到开发板上,/dev/ttyUSB0是开发板在ubuntu18.04的串口端口号,需要根据实际情况进行设置。
idf.py -p /dev/ttyUSB0 flash monitor