ESP32学习笔记 -- (1)使用gitee搭建 ESP-IDF 开发框架

关于如何搭建ESP32的开发环境,乐鑫官方给出了很详细的教程和文档,基本上跟着官方教程来操作,都可以顺利把ESP-IDF的开发环境搭建好,并且运行一个helloworld程序。

乐鑫官方提供的ESP-IDF框架搭建文档,参考以下链接:

ESP-IDF 编程指南快速入门

网上也有很多关于ESP32开发环境搭建的文章,我个人觉得写得比较好的是以下这两篇,文章已经包括了windows和Linux下的开发环境搭建。

ESP32学习笔记(1)——搭建环境、编译烧写(Windows+VS Code)

ESP32 开发笔记(二) 开发环境搭建 windows VSCode ESP32开发环境搭建(cmd方式编译)

乐鑫官方提供的文档,以及网上大部分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用户进行操作,如果没有特别说明,操作路径均是相对路径,在执行命令的时候,重点注意命令的执行路径是相对路径还是绝对路径。

1、执行以下命令,在/opt目录下创建esp32文件夹,并修改文件夹的权限为可读可写,命令如下图所示。

cd /opt/
mkdir esp32
chmod 666 esp32/
ls -al

2、进入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

3、在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-IDF的源码及子模块已经下载完毕,如下图所示。

4、下载完ESP-IDF源码后,还需要下载和设置ESP相关的工具,比如编译器,调试器,Python包,等等。由于github下载缓慢,可以优先选用乐鑫的下载服务器进行github资源下载。

export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh

编译器、调试器和Python包这些工具,默认下载在/root/.espressif目录下,也可以通过修改环境变量来改变这个下载目录,但为了方便起见,不建议修改,如下图所示。

 下载完成后,如下图所示。

5、工具包下载完成后,还需要设置环境变量,让操作终端知道当前的工具包位置,根据下载完成的提示,需要在esp-idf目录下,执行export.sh脚本,来完成环境变量的配置,如下图所示。

. ./export.sh
(注意,命令开始的“.”与export.sh脚本之间,有一个空格)

为了方便在任何终端使用配置好的环境变量,不用每次重新打开终端窗口都敲一堆指令去,可以为该脚本创建一个别名,在/root/.bashrc添加以下指令,重启终端后,就可以用get_idf指令来刷新环境变量了。

alias get_idf='. /opt/esp32/esp-idf/export.sh'

6、在ESP-IDF的目录下面,examples文件夹包含了一系列例程,我们可以使用examples文件夹里面的 get-started/helloworld工程,来验证开发环境是否搭建成功。复制helloworld工程到esp32目录,复制完成后,如下图所示。

cp examples/get-started/hello_world/ ../ -a

7、进入helloworld工程目录,设置目标芯片,使用menuconfig配置工程,对于helloworld示例,由于我使用的ESP32芯片是ESP32-S0WD,这是一款单核芯片,需要把ESP32芯片配置为单核模式,工程配置窗口如下图所示。

cd /opt/esp32/hello_world
idf.py set-target esp32
idf.py menuconfig

8、执行idf.py build构建和编译工程,这个命令可以编译helloworld应用程序和ESP-IDF所有组件,并且会生成bootloader、分区表和应用程序的二进制文件,编译成功后,如下图所示。

idf.py build

9、编译完成后,可以使用以下命令,将刚刚生成的二进制文件,烧录到开发板上,/dev/ttyUSB0是开发板在ubuntu18.04的串口端口号,需要根据实际情况进行设置,软件烧录成功后,可以在终端窗口观察到程序运行,打印输出helloworld。

idf.py -p /dev/ttyUSB0 flash monitor

10、至此,ESP-IDF开发环境已经搭建完成,在Linux环境下,可以使用vscode作为代码编辑工具,关于vscode的配置,网上已经有不少文章可以参考,这里不再重复描述。

猜你喜欢

转载自blog.csdn.net/wenjs0620/article/details/118607907