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文件夹,看…

electron实现静默打印(各种踩坑解决)

前车之鉴 也是阅读了很多资料和前人踩的坑,直接使用webContent.print方法进行打印。其他方式要不就是Bug多,官方修复也有问题;要不就是官方升级版本后不再支持等 不赘述 需求思路 在main里面实现printerHandle,暴露给渲染线程去…

基于单片机的羽毛球计分器(含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…

阿里云难题学习笔记

1、下列内存区段增长方是向低地址方向的有( )? A: 文本段 B: 数据段 C: 堆区 D: 栈区 解析: 在内存管理中,不同的内存区段增长方向是不同的。栈区(Stack)的增长方向是向低地址方向的&…

Nacos和Eureka有什么区别!!!

一致性模型: Eureka:采用的是 AP(Availability, Partition Tolerance)模型,即在面临网络分区或部分节点故障时优先保证系统的可用性,牺牲一定的数据一致性。Eureka 通过自我保护机制,允许在节点…

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

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

go的内存分配机制

Go 语言的内存分配机制可以分为几个主要类别,每个类别都有其特定的行为和优化: 1. 栈(Stack)分配 局部变量:在函数内部定义的变量通常分配在栈上。大小限制:栈的大小有限,适用于生命周期短、大…

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

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

pandas 读取JSON字符串解析长整形丢失数据精度,读取值与实际值不一致

目录 背景: JSON字符串 解析代码 解决方案 背景: 在使用pandas read_json方法读取JSON存为Excel文件时,发现Excel中order_no的值与JSON字符串中的值不一致,开始怀疑是Excel保存精度问题,但是Excel输出实际为字符串…

【OceanBase系列】—— 常用 SQL

作者简介: 花名:绪宁,OceanBase 数据库解决方案架构师 对使用OB过程中常用的一些SQL进行了整理,对应的版本是 4.x。 集群信息 查看版本 show variables like version_comment; 查看集群ID和集群名 show parameters like %clust…

函数的查询

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 是什…

设计模式学习笔记 - 开源实战四(下):总结Spring中用到的11种设计模式

概述 上篇文章,讲解了 Spring 中支持扩展功能的两种设计模式:观察者模式和模板模式。这两种模式帮助我们创建扩展点,让框架的使用者在不修改源码的情况下,基于扩展点定制化框架功能。 实际上,Spring 框架中用到的设计…

vue项目中定位组件来源的查找思路

vue项目中定位组件来源的查找思路 先去【package.json】里面看看有没有看【a】开头或者【a-】开头的插件名 例如:如果我不知道【el-tree】,先去【package.json】里面找【el】或者【el-】开头的插件名,结果知道了【element-ui】这样就可以直接…

更新至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" #…