天天看点

搭建 ESP32 开发环境 —— Hello World【安装依赖包】【安装工具链】【下载ESP-IDF(即SDK)】【编译 Hello world】【烧写程序】

这里以 Ubuntu 为例,其它系统请参考中文文档:

  • file:///home/work/esp/esp-idf-doc-zh/docs/_build/html/get-started/linux-setup.html

【安装依赖包】

整个 ESP-IDF 环境需要用到很多软件,例如

git

make``python

等,因此我们需要先将这些软件预装好。

虽然需要用到这么多软件,但是只需要这样一条简单的命令,系统自动就会帮我们装好,多方便啊,这就是 Linux 对我的魅力之所在(PS:本人长期使用 Ubuntu 作为自己的工作、生活、娱乐的操作系统)。想一想,如果 windows 需要安装这么多软件,是不是烦都烦死了。

【安装工具链】

64 位操系统和 32 位操作系统所使用的工具链不相同,所以请根据你自己对系统选择对应的方法。

【64 位系统】

乐鑫是默认将工具链安装在

~/esp/

目录的,我们也将工具链安装到这里吧。

先创建并进入该目录:

mkdir -p ~/esp
cd ~/esp 
           

使用

wget

命令下载 64 位的工具链:

将工具链解压:

tar -xzf xtensa-esp32-elf-linux64---gab8375a-.tar.gz
### 强迫症,解压后把工具链的压缩包删掉 ###
rm xtensa-esp32-elf-linux64---gab8375a-.tar.gz
           

解压后的工具链位于路径

~/esp/xtensa-esp32-elf

下面。该目录下面的

bin

目录就是我们用来编译 ESP-IDF 工程所需的可执行程序。如果要使系统直接能够这些程序,需要将这个

bin

文件夹路径添加到系统的环境变量

PATH

中去。这里直接使用

echo

命令将其添加到脚本文件

~/.bashrc

中(系统每次启动刚时都会执行这个脚本)。

echo "export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin" >> ~/.bashrc
           
第一次添加后需要对该脚本执行

source ~/.bashrc

操作,让该脚本立即生效。今后重启系统后不需要再执行该操作。

【32 位系统】

乐鑫是默认将工具链安装在

~/esp/

目录的,我们也将工具链安装到这里吧。

先创建并进入该目录:

mkdir -p ~/esp
cd ~/esp 
           

使用

wget

命令下载 32 位的工具链:

将工具链解压:

tar -xzf xtensa-esp32-elf-linux32---gab8375a-.tar.gz
### 强迫症,解压后把工具链的压缩包删掉 ###
rm xtensa-esp32-elf-linux32---gab8375a-.tar.gz
           

解压后的工具链位于路径

~/esp/xtensa-esp32-elf

下面。该目录下面的

bin

目录就是我们用来编译 ESP-IDF 工程所需的可执行程序。如果要使系统直接能够这些程序,需要将这个

bin

文件夹路径添加到系统的环境变量

PATH

中去。这里直接使用

echo

命令将其添加到脚本文件

~/.bashrc

中(系统每次启动刚时都会执行这个脚本)。

echo "export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin" >> ~/.bashrc
           
第一次添加后需要对该脚本执行

source ~/.bashrc

操作,让该脚本立即生效。今后重启系统后不需要再执行该操作。

【下载ESP-IDF(即SDK)】

ESP-IDF 的全称是 Espressif IoT Development Framework(乐鑫 IoT 开发框架),即我们通常所说的 SDK,它里面提供了丰富的可供我们调用的库和API。

我们直接使用 git 进行 clone:

cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
           

注意 clone 后面的参数

--recursive

,它表示递归克隆该仓库的子仓库,这是一种在开源界非常流行的做法,可以方便地对多个仓库进行控制。如果你是‘老鸟’,在 clone 时没看到这个参数(说明你还只是半老鸟,^_^),也可以使用下面的命令来手动更新该仓库的子模块:

ESP-IDF 下载完成后,我们还需要导出环境变量

IDF_PATH

—— 我们今后在编译自己的工程代码时会使用这个变量来查找 ESP-IDF 所在路径。同样使用

echo

命令将其追加到脚本文件

~/.bashrc

的默认(完成后不要忘记执行

source ~/.bashrc

命令哦)。

echo "export IDF_PATH=~/esp/esp-idf" >> ~/.bashrc
           
另外,多花几分钟看看 ESP-IDF 目录下的各文件都是干嘛的吧

【编译 Hello world】

ESP-IDF 为我们提供了丰富的 demo 程序,位于路径

examples

下面。我们这里先试试经典款

hello world

。进入 hello world 所在目录,然后编译:

cd examples/get-started/hello_world/
make
           

如果是第一次执行

make

命令,系统会弹出一个图形配置界面,如下图所示。

搭建 ESP32 开发环境 —— Hello World【安装依赖包】【安装工具链】【下载ESP-IDF(即SDK)】【编译 Hello world】【烧写程序】

我们可以通过键盘上的

tab

键在下面的菜单中进行跳转。当光标跳转到

<Exit>

菜单后,按下回车键,退出配置菜单,然后系统会自动编译 ESP-IDF 目录下的各个组件以及 hello world 目录下的源码。

编译完成后,我们可以在 hello wolrd 工程所在目录下生成一个

build

文件,用于存放编译过程中生成的临时文件以及最终可以直接烧写到开发板的

.bin

文件。此外,系统还会直接在 hello world 工程所在目录生成一个配置文件

sdkconfig

,它存放了我们在配置界面所配置的各种值(我们这里没有修改,所以是默认值)。

【烧写程序】

然后用 USB 将开发板与 PC 连接在一起,系统会识别到设备

/dev/ttyUSB0

如果你用的是虚拟机,需要在虚拟机上面将该设备从 win 移动到虚拟机中。

我们先修改该设备的权限,然后烧写并监视串口输出:

sudo chmod  /det/ttyUSB0
make flash monitor
           
当然,你也可以根据自己的喜好使用选择串口工具,例如 minicom 等。

然后就看到系统启动消息了,大功告成!!!

继续阅读