如何在Ubuntu系统中搭建ESP32开发环境
ESP32是一款集成2.4GHz Wi-Fi和蓝牙双模的单芯片方案,采用台积电40nm工艺。在这篇文章中,我们将介绍如何在Ubuntu系统中搭建ESP32的软件开发环境,并且在ESP-IDF(Espressif IoT Development Framework)的基础上进行二次开发。
1. 升级操作系统至最新稳定版
首先,我们需要保证操作系统为Lubuntu16.04或者其它衍生版(比如Lubuntu和本经验采用的Ubuntu Mate)满足16.04的要求。然后我们需要进行系统升级,使用以下命令即可:
sudo apt-get upgrade
2. 安装交叉编译工具链依赖的环境
我们需要安装几个依赖环境才能成功搭建ESP32的开发环境,使用以下命令安装:
sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial
3. 创建ESP32专用的工作目录
我们需要创建一个ESP32专用的工作目录,使用以下命令:
sudo mkdir /esp32
4. 设置文件夹的归属为当前用户
我们需要将创建的文件夹的归属设置为当前用户,使用以下命令:
sudo chown username:username /esp32
其中,username为当前用户的用户名。
5. 创建三个文件夹
我们需要创建三个文件夹,分别保存交叉编译工具链、样例和SDK源码,使用以下命令即可:
mkdir crossTools demos sources
6. 下载官方的交叉编译工具
我们需要下载官方的交叉编译工具,使用以下命令:
wget
7. 解压文件到当前目录下
下载完成后,我们需要解压文件到当前目录下,使用以下命令:
tar -xzvf xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
8. 将解压后的交叉编译工具连添加到系统的PATH环境变量中
我们需要将解压后的交叉编译工具链添加到系统的PATH环境变量中,使用以下命令:
sudo vim /etc/profile
在最后面添加交叉编译工具链bin文件夹的目录,如下所示:
export PATH$PATH:/esp32/crossTools/xtensa-esp32-elf/bin
然后更新一下profile文件,使之生效:
source /etc/profile
9. 检查是否安装成功
我们可以使用以下命令检查交叉编译工具链是否安装成功:
xtensa-esp32-elf-gcc -v
如果看到有版本信息显示,说明已经安装成功。
10. 下载ESP-IDF二次开发套建
我们可以前往乐鑫官网下载最新版的ESP32-IDF开发条件(实质上就是SDK,换了个洋气点的名字而已),然后通过虚拟机的共享目录传送给虚拟机中的Linux系统。或者是使用git clone命令进行下载,方法如下:
git clone --recursive
11. ESP-IDF的目录结构
ESP-IDF的目录结构如下:
- components:ESP-IDF的核心组件
- examples:ESP-IDF提供的实例程序
- make:ESP-IDF工程管理目录
- tools:ESP-IDF提供的工具集
- docs:ESP-IDF相关文档
12. 编译hello_world样例程序
为了验证搭建的ESP32开发环境是否成功,我们可以编译ESP-IDF提供的hello_world样例程序。首先将hello_world样例拷贝到我们之前新建的demo文件夹中,使用以下命令:
cp -rf examples/01_hello_world/ ../../demos/
然后进入到工程文件目录,执行以下命令:
make all
这会自动编译所有的BIN文件,默认会编译bootloader、partition_table、app文件,并提示如何进行烧写。
13. 烧写所有的BIN文件
在烧写程序之前,需要给USB设备增加读写权限,使用以下命令:
sudo usermod -a -G dialout $USER
然后重启系统以生效:
sudo reboot
现在我们可以烧写所有的BIN文件,首先长按Boot键,同时按Reset键,系统将会进入下载模式。然后使用以下命令烧写BIN文件:
make flash
14. 验证程序是否正常运行
按下Reset键,通过minicom串口终端查看打印输出信息,发现每隔10秒系统会重启。如果看到这个功能,说明我们已经成功搭建了ESP32的开发环境。
结论
通过以上步骤,我们可以在Ubuntu系统中成功搭建ESP32的软件开发环境,并且使用ESP-IDF进行二次开发。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。