Arduino中增加修改ESP32烧录固件的速度

在Arduino中,默认对ESP32-S3芯片的烧录速度只支持115200、230400、460800、921600这几种速率。只能够在 工具->Upload Speed中选择这些。

有的时候烧录还是觉得太慢了。那么能否更快一些呢?

首先你的USB转串口芯片要支持高速的。常见的芯片速率支持如下:看看你的芯片是否支持。我的芯片是CH343G

然后,由于我是MacOS,打开路径

~/Library/Arduino15/packages/esp32/hardware/esp32/2.0.11/boards.txt

Windows系统的话,请自己寻找类似的这个文件了。还有这个是Arduino1.8.19版本,如果你用的Arduino 2.X版本的话,路径可能不一样。

找到这个文件中的esp32s3.menu.UploadSpeed的位置,增加你想要的速度,我增加了1000000、1500000、2000000、3000000、4000000的速度。

esp32s3.menu.UploadSpeed.4000000=4000000
esp32s3.menu.UploadSpeed.4000000.upload.speed=4000000
esp32s3.menu.UploadSpeed.3000000=3000000
esp32s3.menu.UploadSpeed.3000000.upload.speed=3000000
esp32s3.menu.UploadSpeed.2000000=2000000
esp32s3.menu.UploadSpeed.2000000.upload.speed=2000000
esp32s3.menu.UploadSpeed.1500000=1500000
esp32s3.menu.UploadSpeed.1500000.upload.speed=1500000
esp32s3.menu.UploadSpeed.1000000=1000000
esp32s3.menu.UploadSpeed.1000000.upload.speed=1000000
esp32s3.menu.UploadSpeed.921600=921600
esp32s3.menu.UploadSpeed.921600.upload.speed=921600
esp32s3.menu.UploadSpeed.115200=115200
esp32s3.menu.UploadSpeed.115200.upload.speed=115200
esp32s3.menu.UploadSpeed.256000.windows=256000
esp32s3.menu.UploadSpeed.256000.upload.speed=256000
esp32s3.menu.UploadSpeed.230400.windows.upload.speed=256000
esp32s3.menu.UploadSpeed.230400=230400
esp32s3.menu.UploadSpeed.230400.upload.speed=230400
esp32s3.menu.UploadSpeed.460800.linux=460800
esp32s3.menu.UploadSpeed.460800.macosx=460800
esp32s3.menu.UploadSpeed.460800.upload.speed=460800
esp32s3.menu.UploadSpeed.512000.windows=512000
esp32s3.menu.UploadSpeed.512000.upload.speed=512000

然后,重新打开Arduino的IDE后,就多了这些速度可选。

经过我的测试,大概4000000可以选择,更高的不行了。

然后试了下,烧录速度快了非常多,同一个项目做一下写入对比,使用4000000通讯速率,擦除3.3秒,写入3.4秒钟,如下:

项目使用了 540285 字节,占用了 (41%) 程序存储空间。最大为 1310720 字节。
全局变量使用了22224字节,(6%)的动态内存,余留305456字节局部变量。最大为327680字节。
esptool.py v4.5.1
Serial port /dev/cu.wchusbserial575B0415701
Connecting....
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: dc:da:0c:10:b5:a0
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 4000000
Changed.
Configuring flash size...
Erasing flash (this may take a while)...
Chip erase completed successfully in 3.3s
Compressed 14016 bytes to 9746...
Writing at 0x00000000... (100 %)
Wrote 14016 bytes (9746 compressed) at 0x00000000 in 0.1 seconds (effective 1017.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 1761.9 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 2615.0 kbit/s)...
Hash of data verified.
Compressed 540656 bytes to 340302...
Writing at 0x00010000... (4 %)
Writing at 0x000155de... (9 %)
Writing at 0x0001abd0... (14 %)
Writing at 0x00020451... (19 %)
Writing at 0x00025e40... (23 %)
Writing at 0x0002b3dd... (28 %)
Writing at 0x00030a44... (33 %)
Writing at 0x000363be... (38 %)
Writing at 0x0003b8c3... (42 %)
Writing at 0x00040ec0... (47 %)
Writing at 0x00046e51... (52 %)
Writing at 0x00054c74... (57 %)
Writing at 0x0005d949... (61 %)
Writing at 0x00063407... (66 %)
Writing at 0x00068de9... (71 %)
Writing at 0x0006e86a... (76 %)
Writing at 0x00074131... (80 %)
Writing at 0x00079406... (85 %)
Writing at 0x0007f7d0... (90 %)
Writing at 0x00089d74... (95 %)
Writing at 0x0008f596... (100 %)
Wrote 540656 bytes (340302 compressed) at 0x00010000 in 3.4 seconds (effective 1275.1 kbit/s)...
Hash of data verified.Leaving...
Hard resetting via RTS pin...

如果没有修改速度的话,一般用使用的460800的速度写入对比具体如下,需要擦除4.8秒写入竟然要7.8秒:

项目使用了 540285 字节,占用了 (41%) 程序存储空间。最大为 1310720 字节。
全局变量使用了22224字节,(6%)的动态内存,余留305456字节局部变量。最大为327680字节。
esptool.py v4.5.1
Serial port /dev/cu.wchusbserial575B0415701
Connecting....
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: dc:da:0c:10:b5:a0
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Erasing flash (this may take a while)...
Chip erase completed successfully in 4.8s
Compressed 14016 bytes to 9746...
Writing at 0x00000000... (100 %)
Wrote 14016 bytes (9746 compressed) at 0x00000000 in 0.3 seconds (effective 377.6 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 1365.3 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 2273.4 kbit/s)...
Hash of data verified.
Compressed 540656 bytes to 340306...
Writing at 0x00010000... (4 %)
Writing at 0x000155dc... (9 %)
Writing at 0x0001abcd... (14 %)
Writing at 0x0002044f... (19 %)
Writing at 0x00025e3f... (23 %)
Writing at 0x0002b3da... (28 %)
Writing at 0x00030a42... (33 %)
Writing at 0x000363be... (38 %)
Writing at 0x0003b8bc... (42 %)
Writing at 0x00040ebc... (47 %)
Writing at 0x00046e4c... (52 %)
Writing at 0x00054c58... (57 %)
Writing at 0x0005d947... (61 %)
Writing at 0x00063404... (66 %)
Writing at 0x00068de7... (71 %)
Writing at 0x0006e862... (76 %)
Writing at 0x0007412e... (80 %)
Writing at 0x00079403... (85 %)
Writing at 0x0007f7cd... (90 %)
Writing at 0x00089d72... (95 %)
Writing at 0x0008f593... (100 %)
Wrote 540656 bytes (340306 compressed) at 0x00010000 in 7.8 seconds (effective 551.2 kbit/s)...
Hash of data verified.Leaving...
Hard resetting via RTS pin...

以上。用更高的速度写入后,只要不出错,可以大大提高的烧录的效率。速度提升不止一半。本来Arduino编译就慢点不行,烧录也慢等的挺讨厌。

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

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

相关文章

Java | 选择排序算法实现

大家可以关注一下专栏,方便大家需要的时候直接查找,专栏将持续更新~ 题目描述 编写一个Java程序,实现选择排序算法。程序需要能够接收一个整型数组作为输入,并输出排序后的数组。 选择排序是一种简单直观的排序算法&#xf…

机械臂模型更换成自己的urdf模块

1.将urdf生成slx文件 smimport(rm_65_flange.urdf);%生成Simscape物理模型 2.更换joint部分(对应与几个输入几个输出)(依次更换) 3.更改关节部分(依次更换) 找到urdf文件夹下的meshes文件夹,看…

基于单片机的羽毛球计分器(含proteus仿真和程序)

目录 完整文本及仿真、程序可私信我获取 前言 第一章 设计任务及方案 1.1 设计任务 1.2 总体设计分析 1.3 功能模块方案设计 1.4 方案确定 第二章、硬件设计 2.1 AT89C51 单片机芯片介绍 2.1.1 主要特性 2.1.2 管脚说明 2.1.3 元件清单 2.2 电路介绍 2…

自动化测试用例设计

知人者智,自知者明。大家好,给大家分享一下关于自动化测试用例的设计心得,首先完整的熟悉业务是第一步要做的,不熟悉业务的前提下不会设计出高效且合理的用例,其次是我们要有明确的测试目标,确保我们写的每…

Redis(单/多)线程

一、 Redis 单线程 与 多线程 怎么说? (1)重要的版本迭代 redis4 之前仅支持 单线程, redis 4之后慢慢 支持多线程, 直到redis6/7后才稳定 (2)redis 的 工作线程 是 单线程的 &#xff08…

Python构建学生信息管理系统:构建RESTful API - 学生信息管理系统的后端逻辑

在之前的博客里,我们已经完成了项目初始化,在本篇博客中,我们将深入探讨如何使用Flask框架实现学生信息管理系统的后端逻辑,特别是通过RESTful API来实现学生信息的增删改查(CRUD)操作。 Flask RESTful AP…

C系统编程:从零手搓一个shell

背景 这么久没更新就是在干这件事!!因为系统编程已经学的差不多了,所以想找几个项目练练手,之前就一直想写一个自己的shell!!现在终于有机会实现了。 首先说明一下我的操作系统:Arch linux 服务…

函数的查询

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在实际使用中经常会需要查询数据库中已有的函数或者某一个函数的内容,下面就介绍一下如何查询函数。 和存储过程类似,这也需要使用到数据字典user_s…

Spring - 4 ( 11000 字 Spring 入门级教程 )

一:Spring IoC&DI 在前⾯的章节中, 我们学习了 Spring Boot 和 Spring MVC 的开发, 可以完成⼀些基本功能的开发了, 但是什么是 Spring 呢? Spring, Spring Boot 和 SpringMVC 又有什么关系呢? 咱们还是带着问题去学习.我们先看什么是Spring 1.1 Spring 是什…

更新至2022年上市公司数字化转型数据合集(四份数据合集)

更新至2022年上市公司数字化转型数据合集(四份数据合集) 一、2000-2022年上市公司数字化转型数据(年报词频、文本统计) 二、2007-2022年上市公司数字化转型数据(年报和管理层讨论)(含原始数据…

微前端是如何实现作用域隔离的?

微前端是如何实现作用域隔离的? 一、前言 沙箱(Sandbox)是一种安全机制,目的是让程序运行在一个相对独立的隔离环境,使其不对外界的程序造成影响,保障系统的安全。作为开发人员,我们经常会同沙…

UE5 GAS开发P35,36,37,38,39 将药水修改为AbilitySystem效果

这几节课都是将药水修改成更方便使用的AbilitySystem效果的Actor,分别为增加血量,增加蓝量,暂时获得最大生命值上限 AuraEffectActor.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #…

介绍一个开源IOT组态项目

项目介绍 金合可视化平台是一款强大而操作简便的低代码平台,专为满足物联网领域的可视化开发需求而设计。通过该平台,用户可以利用拖拽配置的方式,轻松创建个性化的可视化大屏,无需熟练的编程技能,大幅提高了开发效率。…

图搜索的经典启发式算法A星(A*、A Star)算法详解

文章目录 1. 引言2. 广度优先搜索3. Dijkstra 算法4. 启发式优先搜索(Heuristic)4.1 贪心最佳优先搜索4.2 A*搜索 1. 引言 在许多场景中,我们常会遇到一类问题,即“找到一个位置到另一个位置的距离最短(用时最少&…

使用 Rust 后,我​​使用 Python 的方式发生了变化

使用 Rust 后,我​​使用 Python 的方式发生了变化 Using type hints where possible, and sticking to the classic “make illegal state unrepresentable” principle. 尽可能使用类型提示,并坚持经典的“使非法状态不可表示”原则。 近年来&#xff…

【Pytorch】(十三)PyTorch模型部署: TorchScript

文章目录 (十三)PyTorch模型部署Pytorch动态图的优缺点TorchScriptPytorch模型转换为TorchScripttorch.jit.tracetorch.jit.scripttrace和script的区别总结script 和 trace 混合使用保存和加载模型 (十三)PyTorch模型部署 Pytorc…

科学高效备考AMC8和AMC10竞赛,吃透2000-2024年1850道真题和解析

如何科学、有效地备考AMC8、AMC10美国数学竞赛?多做真题,吃透真题是科学有效的方法之一,通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的…

成功解决ImportError: cannot import name ‘builder‘ from ‘google.protobuf.internal

成功解决ImportError: cannot import name builder from google.protobuf.internal 目录 解决问题 解决思路 解决方法 解决问题 ImportError: cannot import name builder from google.protobuf.internal 解决思路 导入错误:无法从“google.protobuf.internal”导入名称“…

在React函数组件中使用错误边界和errorElement进行错误处理

在React 18中,函数组件可以使用两种方式来处理错误: 使用 ErrorBoundary ErrorBoundary 是一种基于类的组件,可以捕获其子组件树中的任何 JavaScript 错误,并记录这些错误、渲染备用 UI 而不是冻结的组件树。 在函数组件中使用 ErrorBoundary,需要先创建一个基于类的 ErrorB…

网络通信安全

一、网络通信安全基础 TCP/IP协议简介 TCP/IP体系结构、以太网、Internet地址、端口 TCP/IP协议简介如下:(from文心一言) TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议&#xff0…