ESP32-IDF 在 Ubuntu 下的配置

news2024/11/15 11:25:06

目录

  • 一、安装准备
  • 二、获取 ESP-IDF
  • 三、设置工具
  • 四、使用案例


参考资料:官方文档:Linux 和 macOS 平台工具链的标准设置。

一、安装准备

参照官方文档,首先下载编译 ESP-IDF 所需要的软件包:

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

二、获取 ESP-IDF

首先创建一个目录用来作为 esp32 的工作目录:

[projectsauron]:~$ mkdir esp32_idf
[projectsauron]:~$ cd esp32_idf/

为了解决国内开发者从 Github 克隆 esp 相关仓库慢的问题,官方已将 esp-idf 和部分重要仓库及其关联的子模块镜像到了 jihu,这些仓库将自动从原始仓库进行同步。

所以先获取官方的工具:(相关信息见 乐鑫开源/esp-gitee-tools)

[projectsauron]:~/esp32_idf$ git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

使用如下命令即可使用镜像的 URL:

[projectsauron]:~/esp32_idf$ . ./esp-gitee-tools/jihu-mirror.sh set 

然后就可以克隆远程仓库了:(经过上面的设置后,很快就可以下好了)

[projectsauron]:~/esp32_idf$ git clone -b v5.3 --recursive https://github.com/espressif/esp-idf.git

三、设置工具

首先,如果 python 没有换国内源的话,下载速度会非常慢,而且很容易下载失败,所以先给 pip 换国内源:

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com

除了 ESP-IDF 本身,还需要为支持 ESP32 的项目安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等。

[projectsauron]:~/esp32_idf$ cd ~/esp/esp-idf
[projectsauron]:~/esp32_idf/esp-idf$ ./install.sh espc3

注意,./install.sh espc3 后面跟的参数是你所要开发的 ESP32 的芯片型号;当然一次性也可以定多个目标,比如:./install.sh esp32,esp32s2;如果需要一次性为所有支持的目标芯片安装工具,可以运行如下命令:./install.sh all

可选的芯片如下:esp32 esp32s2 esp32c3 esp32s3 esp32c2 esp32c6 esp32h2 esp32p4 esp32c5 esp32c61

如果途中发送了错误,就执行如下命令:

rm -rf ~/.espressif/

然后再重新执行上面的下载脚本即可。

下载完后,最终显示如下:

注意,在每次刚打开终端是,先执行如下命令才能就行编译:

[projectsauron]:~/esp32_idf/esp-idf$ . ./export.sh

四、使用案例

我这里先直接使用官方的例程进行编译运行:

[projectsauron]:~/esp32_idf$ cp -r ./esp-idf/examples/get-started/hello_world/ .
[projectsauron]:~/esp32_idf$ cd hello_world/

注意,编译时要在对应的目录里进行

首先要选择目标芯片(选择自己的芯片型号):

[projectsauron]:~/esp32_idf/hello_world$ idf.py set-target esp32c3

然后运行工程配置工具 menuconfig:

[projectsauron]:~/esp32_idf/hello_world$ idf.py menuconfig

大家根据自己的芯片信号进行配置,配置界面如下:

按下 J、K 键分别是向下、向上移动,H 键是返回键,L 键或空格键是选中。

我的设备是 ESP32-C3,这里改一个配置就可以了:进入 Serial flasher config -> Flash size(2MB)


将光标移到 4 MB,按下空格即可。

然后按 S 键保存,再按下 ESC 键或 q 键即可退出。

现在就配置完成,可以进行编译了,运行如下命令可以编译应用程序和所有 ESP-IDF 组件,接着生成引导加载程序、分区表和应用程序二进制文件。:

[projectsauron]:~/esp32_idf/hello_world$ idf.py build

编译完成结果如下:


然后将开发板连接到电脑(我是在 VMware 下运行的 Ubuntu):

连接上开发板后,VMware 弹出如下窗口,选中连接到主机:

点击 VMware 右下角的图标,就可以将开发板连接到虚拟机了:


最后,通过如下命令将刚才生成的二进制文件烧录到开发板上,并同时打开监视器,监视 “hello_world” 工程的运行情况。

[projectsauron]:~/esp32_idf/hello_world$ idf.py flash monitor

结果如下则表示烧录成功:

最后,按下 Ctrl+] 即可退出。


如果想自己创建一个工程项目,可以使用如下命令:

[projectsauron]:~/esp32_idf$ idf.py create-project test

该命令表示创建一个名为 test 的工程,然后在文件 ,./test/main/test.c 下写自己的代码即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用ssm实现基于Java的共享客栈管理系统

TOC ssm058基于Java的共享客栈管理系统jsp 第1章 绪论 1.1 课题背景 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。所以各…

一篇快速搞懂 JavaSE 高级特性(代码块,注解,枚举,异常处理,多线程,集合框架,泛型,反射,IO ......)

JavaSE 高级 一、面向对象(高级)1、单例模式(Singleton)2、代码块1)静态代码块2)非静态代码块 3、关键字 final4、抽象类与抽象方法(abstract)5、模板方法设计模式(Templ…

利用GPT绘制流程图(无需下载任何软件

目录 什么是Flowchart Fun?如何利用GPT绘制流程图?步骤1:确定流程图的目的和内容步骤2:训练GPT编写流程图的文本描述步骤3:转换文本格式为可视化的流程图步骤4:调整和优化 结论小结: 什么是Flow…

SpringBoot【重修之HTTP协议】

request 请求,response 响应! HTTP-协议的解析: 客户端:浏览器已经会自动解析了 服务端:通过Web服务器来解析!【Tomcat , Jetty , WebLogic , WebSphere 】 Tomcat的研究学习 SpringBoot Web快速入门…

AIxBoard部署BLIP模型进行图文问答

一、AIxBoard简介 AIxBoard(X板)是一款IA架构的人工智能嵌入式开发板,体积小巧功能强大,可让您在图像分类、目标检测、分割和语音处理等应用中并行运行多个神经网络。它是一款面向专业创客、开发者的功能强大的小型计算机&#xf…

[Linux CMD] 查看系统资源 (持续更新中)

概述 在Linux中,有许多命令和工具可用于查看系统的资源使用情况。以下是一些常用的方式: top:top命令是最常见的实时系统监视工具之一。它显示了当前运行的进程列表,以及每个进程的CPU、内存使用情况、nice值等信息。top命令还会…

【Linux】简易日志工具项目

有些鸟儿是不应该被关在笼子里的, 因为他们的羽毛太丰润了。 当他们飞走,你会由衷地庆贺他获得自由。 --- 肖申克的救赎》--- 从零开始构建简易日志系统 1 日志1.1 什么是日志1.2 日志的意义1.3 为什么要构建自己的日志工具 2 构建自己的日志工具2.1…

带有限制编辑的PDF文件怎么取消编辑限制

在日常工作和学习中,我们经常会遇到一些带有“限制编辑”的PDF文件。这些文件由于设置了密码保护,使得我们无法直接编辑、复制或打印其中的内容,给信息的处理和利用带来了诸多不便。然而,通过一些有效的方法和工具,我们…

C++—八股文总结(25秋招期间一直更新)

1、const 1.1 指针常量和常量指针 说说const int *a, int const *a, const int a, int *const a, const int *const a分别是什么,有什么特点。 const int *aint const *a; //可以通过 a 访问整数值,但不能通过 a 修改该整数的值,指针本身是…

【AI赋能游戏】《黑神话:悟空》专属黑悟空无限创意生成器!(整合包分享)

最近最火的话题,肯定就是《黑神话:悟空》了!这游戏实在是忒火火火了。。。全网破圈霸屏,连官媒央视都给了无死角宣传! 《黑神话:悟空》登顶Steam历史售卖榜,同时在线玩家冲到了最高**222**万人&…

8.22-docker的部署及其使用

docker 1.docker环境部署以及语法 [rootdocker ~]# cat << EOF | tee /etc/modules-load.d/k8s.conf> overlay> br_netfilter> EOFoverlaybr_netfilter[rootdocker ~]# modprobe overlay[rootdocker ~]# modprobe br_netfilter[rootdocker ~]# cat /etc/module…

【个人学习】JVM(8): 对象的实例化、内存布局、访问定位

对象的实例化内存布局与访问定位 对象的实例化 对象创建的方式 new&#xff1a;最常见的方式、单例类中调用getInstance的静态类方法&#xff0c;XXXFactory的静态方法Class的newInstance方法&#xff1a;在JDK9里面被标记为过时的方法&#xff0c;因为只能调用空参构造器&am…

Ignition Gateway配置

Config-System backup和restore&#xff1a; backup可以直接备份整个gateway配置&#xff0c;包括所有项目。 restore可以恢复gateway配置&#xff0c;包括所有项目。

pytorch基础学习

环境安装 mac安装conda&#xff08;为什么安装conda? conda类似沙箱&#xff0c;将一个一个环境隔离起来&#xff0c;解决Python工程之前的包冲突问题&#xff09; 下载Miniconda安装器:https://docs.conda.io/en/latest/miniconda.html 执行dmg安装。 安装完成后&#xff0c…

C++对象初始化

背景 最近在编译一个库的时候发现有个编译错误&#xff0c;最后发现是初始化对象的时候出了问题&#xff0c;这里简单记录一下&#xff1a; #include <iostream>class A { public:int m_a; }; class C { public:int m_c;operator A(){}; }; class B { public:B(){};B (…

探寻孩子自闭症之因:为 “星星的孩子” 寻找答案

在这个丰富多彩的世界里&#xff0c;有一群特殊的孩子&#xff0c;他们仿佛来自遥远的星球&#xff0c;沉浸在自己的独特世界中&#xff0c;难以与外界进行有效的沟通和互动。他们是自闭症儿童&#xff0c;也被称为 “星星的孩子”。那么&#xff0c;为什么孩子会患上自闭症呢&…

大语言模型私有化部署和个性化调优的技术实践

简介 本文介绍如何在不依赖任何三方服务的情况下&#xff0c;私有化部署和使用大语言模型&#xff0c;以及如何以较低成本让大语言模型使用自己的数据来产生个性化输出。 本文偏技术向&#xff0c;读者需要具备一定技术背景&#xff0c;如有不懂之处&#xff0c;欢迎留言交流…

ARM——驱动——inmod加载内核模块

在上一篇文章的代码上添加出错处理 #include <linux/init.h> // 包含初始化宏和函数 #include <linux/kernel.h> // 包含内核函数和变量 #include <linux/fs.h> // 包含文件操作的结构和函数 #include <linux/kdev_t.h> /…

记忆化搜索与状态压缩:优化递归与动态规划的利器

记忆化搜索是解决递归和动态规划问题的一种高效优化技术。它结合了递归的灵活性和动态规划的缓存思想&#xff0c;通过保存已经计算过的子问题结果&#xff0c;避免了重复计算&#xff0c;大幅提升了算法的效率。当问题状态复杂时&#xff0c;状态压缩技术可以进一步优化空间使…

密码生成器(HTML+CSS+JavaScript)

&#x1f30f;个人博客主页&#xff1a;心.c ​ 前言&#xff1a;前两天写了密码生成器&#xff0c;现在跟大家分享一下&#xff0c;大家如果想使用随便拿&#xff0c;如果哪里有问题还请大佬们给我指出&#xff0c;感谢支持 &#x1f525;&#x1f525;&#x1f525;专题文章&…