首页 > 其他分享 >【ESP32 项目】使用 gitee 镜像在 unbuntu 搭建esp-idf 环境

【ESP32 项目】使用 gitee 镜像在 unbuntu 搭建esp-idf 环境

时间:2023-12-26 23:34:33浏览次数:38  
标签:ESP ESP32 esp gitee IDF idf 搭建

推荐先看文章:

《ESP32,使用gitee搭建 ESP-IDF 开发框架》

链接:https://blog.csdn.net/weiqifa0/article/details/119066253?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170359954116800185837038%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=170359954116800185837038&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-119066253-null-null.nonecase&utm_term=esp&spm=1018.2226.3001.4450

 

乐鑫官方提供的文档,以及网上大部分ESP32环境搭建的文章,在搭建开发环境获取源码的时候,由于使用了国外知名的程序员交友平台github,往往会导致源码获取中断或失败,github访问失败是一些特别的原因导致的。

正因为这样,很多开发者在搭建开发环境上浪费了很多时间,甚至还没开始就想放弃。为了解决国内开发者从github上获取ESP相关仓库缓慢的问题,乐鑫提供了在gitee上获取ESP-IDF源码的方法。

在windows上搭建ESP-IDF开发环境的时候,可以使用乐鑫提供的ESP-IDF工具安装器,指定优先选择Espressif的下载服务器,上面提供的博客文章,已经有提及,本文主要是使用Linux命令行的方式搭建开发环境。

为什么使用Linux命令行搭建开发环境,主要是因为自由度高,虽然操作略复杂,但乐鑫官方很多资料和文档,都是基于Linux或windows命令行的方式开发的,因此,建议开发者学习一下如何使用命令行搭建ESP32的开发环境。

阅读本文需要有一定的Linux或windows命令行操作基础,需要掌握一定的git命令使用,以及具备一些脚本使用的基础知识。ESP32的开发环境搭建,均使用了git命令,Linux命令行,以及可执行脚本。

建议先阅读 ESP-IDF 编程指南快速入门 的相关章节,对开发环境搭建有一个基本的了解,并且已经完成第一步的安装准备工作,再执行本文的相关操作。

本文使用的操作系统是ubuntu18.04,操作目录是/opt/esp32,使用root用户进行操作,如果没有特别说明,操作路径均是相对路径,在执行命令的时候,重点注意命令的执行路径是相对路径还是绝对路径。

 

准备工作

在/opt目录下创建esp32文件夹:mkdir esp32

第一步:下载 esp-idf 源码和子模块下载工具

进入esp32目录,执行git clone 命令,获取ESP-IDF在gitee上托管的源码和工具,注意,这次的git clone仅仅是获取ESP-IDF的源码,还没有包含ESP-IDF的子模块,ESP-IDF的源码需要结合子模块才能使用,子模块在后面的步骤进行获取。

cd esp32/

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git          
git clone https://gitee.com/EspressifSystems/esp-idf.git

第二步:用esp-gitee-tools下载子模块

在esp-gitee-tools工具包里面,提供了一个submodule-update.sh脚本,用来更新ESP-IDF框架的子模块,这个脚本主要是使用了gitee作为镜像源,更新ESP-IDF框架必要的子模块,避免了在github下载缓慢或出错的情况。

cd esp-gitee-tools/
export EGT_PATH=$(pwd)

cd ../esp-idf/
$EGT_PATH/submodule-update.sh

第三步:安装编译调试工具链

还需要下载和设置ESP相关的工具,比如编译器,调试器,Python包,等等。由于github下载缓慢,可以优先选用乐鑫的下载服务器进行github资源下载。

export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"

./install.sh

编译器、调试器和Python包这些工具,默认下载在/root/.espressif目录下,也可以通过修改环境变量来改变这个下载目录。

第四步:设置环境变量

需要设置环境变量,让操作终端知道当前的工具包位置,根据下载完成的提示,需要在esp-idf目录下,执行export.sh脚本,来完成环境变量的配置,如下图所示。

. ./export.sh

(注意,命令开始的“.”与export.sh脚本之间,有一个空格)

为了方便在任何终端使用配置好的环境变量,不用每次重新打开终端窗口都敲一堆指令去,可以为该脚本创建一个别名,在/root/.bashrc或者~/.bashrc 添加以下指令,重启终端后,就可以用get_idf指令来刷新环境变量了。

alias get_idf='. /opt/esp32/esp-idf/export.sh'

 

扩展:编译工程的一般步骤

第一步: 设置 menuconfig

cd /opt/esp32/hello_world       #具体的工程文件夹

idf.py set-target esp32
idf.py menuconfig

第二步:编译工程

执行idf.py build构建和编译工程,这个命令可以编译helloworld应用程序和ESP-IDF所有组件,并且会生成bootloader、分区表和应用程序的二进制文件。

idf.py build

第三步:下载烧录

编译完成后,可以使用以下命令,将刚刚生成的二进制文件,烧录到开发板上,/dev/ttyUSB0是开发板在ubuntu18.04的串口端口号,需要根据实际情况进行设置。

idf.py -p /dev/ttyUSB0 flash monitor

标签:ESP,ESP32,esp,gitee,IDF,idf,搭建
From: https://www.cnblogs.com/FBsharl/p/17929605.html

相关文章

  • Spring Boot学习随笔- RestFul API(@RestController、@RequestBody、@PathVariable),使用
    学习视频:【编程不良人】2021年SpringBoot最新最全教程第十六章、RestFulAPI什么是RESTREST全称是ResourceRepresentationalStateTransfer,中文意思是表述性状态转移,它首次出现在2000年RoyFielding的博士论文中,RoyFielding是HTTP规范的主要编写者之一。他在论文中表......
  • 深入理解 Docker 核心原理:Namespace、Cgroups 和 Rootfs
    通过这篇文章你可以了解到Docker容器的核心实现原理,包括Namespace、Cgroups、Rootfs等三个核心功能。如果你对云原生技术充满好奇,想要深入了解更多相关的文章和资讯,欢迎关注微信公众号。搜索公众号【探索云原生】即可订阅后续文章会演示如何从零实现一个简易的Docker,......
  • Gitlab仓库推送到Gitee仓库的一种思路
    文章目录Gitlab仓库推送到Gitee仓库的一种思路1、创建Gitee的ssh公钥(默认已有Gitlab的ssh公钥)2、添加Gitlab远程仓库地址3、添加Gitee远程仓库地址4、拉取Gitlab远程仓库指定分支到本地仓库指定分支(以test分支为例)5、推送本地仓库指定分支到Gitee远程仓库指定分支(以test分支为例)6......
  • jmeter 压力机端口不够用Response code:Non HTTP response code: java.net.NoRouteToH
    四  压测机异常,修改配置后重试Responsecode:NonHTTPresponsecode:java.net.NoRouteToHostException原因:Jmeter发压机的端口不够用解决办法:1.netstat|grepTIME_WAIT|wc-l查看目前处在TIME_WAIT状态的值大不大2.检查系统sysctl中配置项:(/etc/sysctl.conf)net.ipv4.t......
  • Java登陆第二十九天——HttpServletRequest和HttpServletResponse
    HttpServletRequestTomcat会自动将客户端请求报文封装为HttpServletRequest对象。HttpServletRequest中请求行常用方法方法描述StringgetMethod()获取请求方法StringgetProtocol()获取请求协议及版本号StringgetRequestURI()获取请求的具体资源StringB......
  • BeanFactory后置处理器之PropertySourcesPlaceholderConfigurer
    有的时候,我们需要读取配置文件中的属性,将其作为成员变量赋给对应的Bean,如下通过xml配置:<beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close"><propertyname="url"val......
  • ESP-IDF的PowerShell窗口有时无法打开
    ESP-IDF的PowerShell窗口有时无法打开可能是由于多种原因引起的。以下是一些可能的解决方案:检查网络连接:确保您的计算机与互联网正常连接,并且没有任何防火墙或代理服务器阻止了PowerShell的访问。重启计算机:有时候,重新启动计算机可以解决临时的软件问题。尝试重新启动计算机......
  • 应用程序内部的代码级别的读写分离CQRS(Command Query Responsibility Segregation)直
    产品代码都给你看了,可别再说不会DDD(十):CQRS  这是一个讲解DDD落地的文章系列,作者是《实现领域驱动设计》的译者滕云。本文章系列以一个真实的并已成功上线的软件项目——码如云(https://www.mryqr.com)为例,系统性地讲解DDD在落地实施过程中的各种典型实践,以及在面临实际业务场......
  • 在 Linux 上以 All-in-One 模式安装 KubeSphere
    1、什么是KubeSphere KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的IT自动化运维能力,简化企业的DevOps工作流。它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)......
  • 将本地代码添加到gitee
    新建仓库,将代码加入gitee根据提示创建仓库填写完成后创建readme文件,目的为了初始化分支。现在按照下面命令操作#进入本地项目文件夹cdxxxgitinitgitremoteaddoriginhttps://gitee.com/zcjlq/test1.gitgitpullgitaddxxxgitcommit-m"xxx"gitpush已有gitee仓库,将......