ESP32 Linux开发环境配置

1.开发环境说明

1.1 使用Ubuntu 16.04搭建ESP32开发环境

1.2 使用ESP_IDF v3.3版本,参考官方手册“Read the Docs Template esp_idf v3.3”

2.准备工作

开发 ESP32 应用程序需要准备:

1.PC:Linux操作系统

2.工具链:用于编译 ESP32 应用程序

3.ESP-IDF:包含 ESP32 API 和用于操作工具链的脚本

4.文本编辑器:编写应用程序(C语言),例Visual Studio Code

5.ESP32将其连接到PC USB 线

ESP32 Linux开发环境配置

开发环境的准备工作包括以下部分:

1. 设置工具链

2. 从 GitHub 上获取 ESP-IDF

环境设置好后,就可以开始开发应用程序了。整个过程可以概括为如下四步:

1. 配置工程并编写代码

2. 编译工程并链接成一个应用程序

3. 烧写应用程序ESP32

4. 监视/调试 应用程序

3. Linux 平台工具链的标准设置

安装前提

编译 ESP-IDF 需要以下软件包:

sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing

___________________________________________________________________________________

注解: 一些旧的(2014 年之前)Linux 发行版中使用的 pyserial 版本可能是 2.xESP-IDF 并不支持。通过pip工具来安装支持的版本。

安装依赖的 Python 软件包

ESP-IDF 所依赖的 Python 软件包位于 $IDF_PATH/requirements.txt 文件中($IDF_PATH即是esp-idf路径),可以通过运行以下命令来安装它们:

请调用 ESP-IDF 使用的相同版本的 Python 解释器,解释器的版本号可以通过运行命令

python --version 来获得,根据结果,您可能要使用 python2, python2.7 或者类似的名字而不是 python,例如

python2.7 -m pip install --user -r $IDF_PATH/requirements.txt

___________________________________________________________________________________

工具链的设置

Linux 版的 ESP32 工具链可以从 Espressif 的网站下载:

• 64-bit Linux
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz

• 32-bit Linux
https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz

1.下载完成后,将它解压到 /username/esp (其中/username是用户自己创建的目录,我的是/home/jason/wifi目录:

• 64-bit Linux:

mkdir -p /home/jaosn/wifi/esp

cd /home/jason/wifi/esp

tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz

• 32-bit Linux:

mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz

******* 以下是重点 *******

2. 工具链将会被解压到 /home/jason/wifi /esp/xtensa-esp32-elf/ 目录。

要使用工具链,还需要在 profile 文件中更新环境变量 PATH。要使 xtensa-esp32-elf 在所有的终端会话中都有效,需要将下面这一行代码添加到的/etc/profile 文件中:

ESP32 Linux开发环境配置

___________________________________________________________________________________

Ubuntu /etc目录下profile、bash.bashrc和用户目录下.profile、.bashrc的作用和区别

相关概念:

Login Shell:需要输入账号密码Shell,比如tty1-tty6终端、通过ssh登录的终端

Non-login Shell:不需要输入账号密码的Shell,比如图形模式下Ctrl+Alt+T得到的Terminal、Shell下的子进程

区别:

/etc/profile/etc/bash.bashrc文件是针对所有用户来说的,每个用户登录时都会执行,其中/etc/profile只执行一次,而/etc/bash.bashrc在每次Shell登录时都会执行。

~/.profile、~/.bashrc文件是针对单个用户来说的,每个用户目录下都会有这两个文件,其中~/.profile在Login Shell登录时执行,~/.bashrc在Non-login Shell登录时执行。

___________________________________________________________________________________

3. 退出并重新登录以使 profile 更改生效。运行以下命令来检查 PATH 设置是否正确:

printenv PATH

4. 获取 ESP-IDF

获取本地副本:打开终端,切换到你要存放 ESP-IDF 的工作目录,使用 git clone 命令克隆远程仓库:

cd /home/jason/wifi/esp

git clone -b v3.3 --recursive https://github.com/espressif/esp-idf.git

ESP-IDF 将会被下载到 /home/jason/wifi/esp/esp-idf 目录下。

5. 设置ESP-IDF路径

工具链程序使用环境变量IDF_PATH来访问ESP-IDF。.

在 ~/.profile 文件中加入以下指令,创建 IDF_PATH:

export IDF_PATH=/home/Jason/wifi/esp/esp-idf

注销并重新登录以使此更改生效。

6.编译、下载

进入esp_idf,getting_started目录下,找到类似Hello World的模板,编写自己的应用程序

ESP32 Linux开发环境配置

键入make menuconfig配置下载USB口

ESP32 Linux开发环境配置

最后,使用make flash一键式编译、烧写(该方法是烧写所有的地址块,详细方法可参考官方手册)