基于ubuntu18.04搭建100ASK-ESP32开发环境并成功点灯

前面搭了一个ubuntu18.04的服务器+远程vscode开发环境,最终就是为了玩板:
工欲善其事,必先利其器--vscode嵌入式linux开发远程开发设置(适用于多平台)
如下所示,这是韦东山老师推出esp32开发板:
相关资料链接:
https://esp32.100ask.net/
然而官方推出的是一个集成好的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
如上所示,开发esp-idf的环境安装成功。
2、python3.8安装
这一步比较关键,如果选择3.8以下的版本去编译esp-idf工程的话就会编译不过。在安装python环境之前,先要安装zlib相关的,不然会报错,这是因为没有指定zlib源码的路径导致的,这就间接导致了python的zlib包无法使用,因为python编译的过程中会用到zlib包相关的功能,如下所示:
解决方法:
wget http://zlib.net/zlib-1.2.13.tar.gztar -zxvf zlib-1.2.13.tar.gz && cd zlib-1.2.13/./configure && make -j8sudo make install  
python的话我下的是3.8.6的版本,最好的方法是到python官方去下载源代码,然后手动配置编译安装到自己的服务器上,这里我下的是python3.8.6:https://www.python.org/downloads/source/,将代码压缩包下下来以后,然后解压后配置、编译并安装到当前系统上:
tar -xzvf python-3.8.6.tgzsudo ./configure --enable-optimizationssudo make -j8sudo make install
3、升级最新版本的cmake
由于编译esp-idf官方的cmake构建版本要求是至少基于3.16以上的,如下所示:
因此我们需要将ubuntu系统上的cmake环境升级到最新版本,解决方案如下:
wget https://cmake.org/files/v3.21/cmake-3.21.4.tar.gztar -zxvf cmake-3.21.4.tar.gzcd cmake-3.21.4/./bootstrapmake -j8sudo make install  
4、拉取乐鑫官方v5.0版本的的esp-idf源码并设置环境
git clone -b release/v5.0 https://gitee.com/espressifsystems/esp-idf.git
在esp-idf源代码的根目录下执行:
./install.sh esp32s3  
如下所示:
然后根据终端提示在esp-idf根目录下运行:. ./export.sh
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环境所依赖的包能够安装成功:
然后再次编译esp-idf的hello world工程,如下所示,编译成功:
6、下载最简单hello world项目
先设置目标芯片:
idf.py set-target esp32s3
将开发板连接到pc机上,然后通过dmesg查看具体是哪个设备接了进来,如下图所示,是/dev/ttyacm0
然后使用idf.py -p /dev/ttyacm0 flash进行工程下载,如果发现有相关权限的问题,参考乐鑫相关的文档,将当前用户添加到linux dialout组。如下所示:
下载成功如下所示:
然后使用idf.py -p /dev/ttyacm0 monitor监控工程:
7、编译并下载led闪烁项目
切换到blink_led demo路径下:
配置工程,选择为gpio输出模式,通过io高低电平的方式来循环点亮和熄灭led灯:
idf.py menuconfig
然后按esc后保存退出进行工程编译:
执行idf.py -p /dev/ttyacm flash将编译好的二进制文件烧录到开发板上去,然后使用idf.py -p /dev/ttyacm monitor监控串口数据:
下载完毕后可以看到板子上连接的led灯已经以一定的周期闪烁变化。
好了,万事开头搭环境难,后面不管是程序开发也好,使用ide环境也好,都只是锦上添花的事情。


Linux运维应知必会的23个命令
三菱PLC选型的七大标准
realme X 新机细节首次曝光,将采用全面屏+升降摄像头具备旗舰实力
FORESEE嵌入式存储,智能穿戴背后的耕耘者
电瓶修复——脉冲小电流可以解决电池平衡性(收藏备用)
基于ubuntu18.04搭建100ASK-ESP32开发环境并成功点灯
Pre-IPO融资:100多家资本抢投大疆无人机,比预计翻了一倍
智能工厂自动化设备如何将数据采集到物联网云平台上
关于英特尔与合作伙伴助力智慧交通的相关消息介绍
中晶股份拟募集资金用于投资三个项目 将提升半导体单晶硅抛光片的研发和制造能力
微雪电子圆形一体式电容指纹开发模块简介
17款新车加持 宝马集团依旧将坚持“2+4”战略
人工智能全球女性榜单 美国学者数量最多
PCB通孔怎么修复 PCB修复步骤教程分享
台系LED封装厂亿光8字应对市场杀价压力
荣耀9发布会倒计时:荣耀9外观,配置已确定,荣耀9发布会3大亮点!荣耀9价格即将揭晓
LED产业走向集约化进程中存在的市场忧患
忘其兴叹的工业遥控器市场——客户真的只是关心价格吗?
疑似小米6详细参数曝光,将会搭载松果二代高性能处理器?
如何选购游戏控制器