工欲善其事,必先利其器-基于ubuntu18.04搭建100ASK-ESP32开发环境并成功点灯

点击上方“嵌入式应用研究院”,选择“置顶/星标公众号

干货福利,第一时间送达!

来源 | 嵌入式应用研究院

整理&排版 | 嵌入式应用研究院

前面搭了一个ubuntu18.04的服务器+远程VScode开发环境,最终就是为了玩板:

工欲善其事,必先利其器--Vscode嵌入式Linux开发远程开发设置(适用于多平台)

如下所示,这是韦东山老师推出ESP32开发板:

287706e99635045f5c597bcd913a68e2.png

2db6e95ba7348b7830d1753750526f36.jpeg

相关资料链接:

https://esp32.100ask.net/

69d7102cdb40ac004f58f2e1f291943a.jpeg

然而官方推出的是一个集成好的ubuntu22的开发环境的虚拟机,啥都帮小白做好了,显然,这不符合我的风格,我必须手把手自己搭一遍。然而经过调研发现,ubuntu18.04的这环境相对于官方推出的这个22的环境来说比较坑,网上各类博文参差不齐,有上文没下文的,好,这类问题我必须一篇文章解决,在搭建环境的过程中属实也遇到了不少坑。接下来,直接整起来:

1、Ubuntu18.04开发esp32-idf必要工具链安装
sudo apt-get install git wget flex \
bison gperf python3 python3-venv   \
python3-setuptools cmake ninja-build \
ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

bf3f530aa1e407cc630e757c8661f827.png

如上所示,开发esp-idf的环境安装成功。

2、Python3.8安装

这一步比较关键,如果选择3.8以下的版本去编译esp-idf工程的话就会编译不过。在安装Python环境之前,先要安装zlib相关的,不然会报错,这是因为没有指定zlib源码的路径导致的,这就间接导致了python的zlib包无法使用,因为python编译的过程中会用到zlib包相关的功能,如下所示:

fa9f16312ad6c38dd38b69b83539dd3c.png

解决方法:

wget http://zlib.net/zlib-1.2.13.tar.gz
tar -zxvf zlib-1.2.13.tar.gz && cd zlib-1.2.13/
./configure && make -j8
sudo make install

Python的话我下的是3.8.6的版本,最好的方法是到Python官方去下载源代码,然后手动配置编译安装到自己的服务器上,这里我下的是Python3.8.6:https://www.python.org/downloads/source/,将代码压缩包下下来以后,然后解压后配置、编译并安装到当前系统上:

tar -xzvf Python-3.8.6.tgz
sudo ./configure --enable-optimizations
sudo make -j8
sudo make install

ad393c96094b7e703c8b0b796a757a48.png

3、升级最新版本的cmake

由于编译esp-idf官方的cmake构建版本要求是至少基于3.16以上的,如下所示:

52dae5c5eeaab3f668ee325406d56f57.png

因此我们需要将ubuntu系统上的cmake环境升级到最新版本,解决方案如下:

wget https://cmake.org/files/v3.21/cmake-3.21.4.tar.gz
tar -zxvf cmake-3.21.4.tar.gz
cd cmake-3.21.4/
./bootstrap
make -j8
sudo make install
4、拉取乐鑫官方V5.0版本的的ESP-IDF源码并设置环境
git clone -b release/v5.0 https://gitee.com/EspressifSystems/esp-idf.git

1d4209cf7d5c9a9c85b820c1085d6fa8.png

在esp-idf源代码的根目录下执行:

./install.sh esp32s3

如下所示:

520cc208eb0343b96f6c5de730d7118a.png

然后根据终端提示在esp-idf根目录下运行:. ./export.sh

c5a419e3b13194400ac070c432dbb9bd.png

5、编译最简单的hello world项目

切换到hello world项目目录下:

/home/yangyuanxin/workspace/esp-idf/examples/get-started/hello_world

然后运行:idf.py build,结果会发现很多cmake中配置了很多git的submodule,而这些在没有配置github相关代理的时候基本上是拉不下来的,进而就会导致编译不成功,幸好,安信可为我们找到了解决方案,他们已经将这些子模块clone了一份放到了gitee上,因此下载速度飞快,阅读下面的文章:

https://gitee.com/EspressifSystems/esp-gitee-tools/blob/master/docs/README-submodule-update.md

将上述文章所罗列的包进行一次性安装,确保esp-idf环境所依赖的包能够安装成功:

79fb766f43aa9707e353ecc158bcc40e.png

然后再次编译esp-idfhello world工程,如下所示,编译成功:

1dfe9c04793321cb0d9cf2bfcfd603bc.png

6、下载最简单hello world项目

先设置目标芯片:

idf.py set-target esp32s3

1cf77d1afa94601ea3a462687589f401.png

将开发板连接到PC机上,然后通过dmesg查看具体是哪个设备接了进来,如下图所示,是/dev/ttyACM0

5c728fd4ca1172309d0fe5605862881f.png

然后使用idf.py -p /dev/ttyACM0 flash进行工程下载,如果发现有相关权限的问题,参考乐鑫相关的文档,将当前用户添加到Linux Dialout组。如下所示:

8b4d15c485f43aaed4b0ee41f4df2fc9.png

下载成功如下所示:

8bdc51dde777026535cb139169d360d3.png

然后使用idf.py -p /dev/ttyACM0 monitor监控工程:

a6ee8fa0fbfb6605385007cbe4b8af5c.jpeg

7、编译并下载LED闪烁项目

切换到blink_led Demo路径下:

da1c171cc404babd5905bae2ff848cf8.png

配置工程,选择为GPIO输出模式,通过IO高低电平的方式来循环点亮和熄灭LED灯:

idf.py menuconfig

1b47b6e1dc1b9e636a1fc0f23cdf1131.png

eb8cfd6baf1ed93af4f0168faf2de8f5.png

然后按ESC后保存退出进行工程编译:

99159b079f7cee209cc690015c0385d4.png

执行idf.py -p /dev/ttyACM flash将编译好的二进制文件烧录到开发板上去,然后使用idf.py -p /dev/ttyACM monitor监控串口数据:

50dd29d419034b7782eb07467fb7874e.png

709bf7feddcadfb11c4b0e5f685a539a.png

下载完毕后可以看到板子上连接的LED灯已经以一定的周期闪烁变化。

好了,万事开头搭环境难,后面不管是程序开发也好,使用IDE环境也好,都只是锦上添花的事情。

往期精彩

iMX6 yocto平台QT交叉编译环境搭建

搭建一套优秀的嵌入式软件框架必备的通用工具包

手把手教你从零开始搭建友善之臂ARM-tiny4412开发环境

保姆级快速搭建一套基于Linux环境下的MQTT开发程序模版

手把手教你快速使用Vmware虚拟机安装Linux操作系统实验环境

工欲善其事,必先利其器--Vscode嵌入式Linux开发远程开发设置

觉得本次分享的文章对您有帮助,随手点[在看]并转发分享,也是对我的支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Engineer-Bruce_Yang

谢谢您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值