关注

Arduino IDE 离线安装 ESP32 开发板支持(3.3.10)

Arduino IDE 离线安装 ESP32 开发板支持(3.3.10)

背景

Arduino IDE 通过 package_esp32_index.json 定义 ESP32 的依赖链。添加开发板时,IDE 从 GitHub Releases 逐个拉取文件。国内网络环境下单线程下载速度约 30KB/s,395MB 的编译器需要 3 小时以上,整个依赖链 28GB 全部下完在实际操作中基本不可行。

IDE 的下载逻辑是一个文件一个文件校验的:检查 %LOCALAPPDATA%\Arduino15\ 下目标路径是否已有对应文件,有则跳过。利用这一点,提前把文件放到正确位置即可绕过下载。

依赖链

package_esp32_index.jsonesp32:[email protected] 的依赖如下:

esp32:[email protected]
├─ ① xtensa-esp-elf-gcc         14.2.0+20260121   395MB   C/C++ → Xtensa 机器码
├─ ② esp32-arduino-libs-idf     5.5-129cd0d2      425MB   WiFi/BLE/FreeRTOS/LWIP
├─ ③ esp32-libs                  3.3.10             42MB   外设驱动(SPI/I2C/UART/GPIO/ADC)
├─ ④ esp32-core                  3.3.10             44MB   Arduino API 封装 + bootloader
└─ ⑤ esptool                     5.3.0              61MB   USB-Serial 烧录

合计 967MB。IDE 自动下载还会拉取其他 7 种芯片的 libs、32 位工具链、RISC-V GCC、各版本 OpenOCD、mkspiffs 等不需要的文件,总量约 28GB。

文件清单

① 编译器

项目
文件名xtensa-esp-elf-14.2.0_20260121-x86_64-w64-mingw32.zip
分卷xtensa_compiler_part_00.zip ~ _04.zip(5 卷,90MB×4 + 35MB)
合并copy /b xtensa_compiler_part_00.zip + xtensa_compiler_part_01.zip + xtensa_compiler_part_02.zip + xtensa_compiler_part_03.zip + xtensa_compiler_part_04.zip xtensa-esp-elf-14.2.0_20260121-x86_64-w64-mingw32.zip
解压到%LOCALAPPDATA%\Arduino15\packages\esp32\tools\xtensa-esp-elf\14.2.0+20260121\

② IDF 框架库

项目
文件名esp32-arduino-libs-idf-v5.5.zip
分卷idf_libs_part_00.zip ~ _04.zip(5 卷,90MB×4 + 66MB)
合并copy /b idf_libs_part_00.zip + idf_libs_part_01.zip + idf_libs_part_02.zip + idf_libs_part_03.zip + idf_libs_part_04.zip esp32-arduino-libs-idf-v5.5.zip
解压到%LOCALAPPDATA%\Arduino15\packages\esp32\tools\esp32-arduino-libs-idf\5.5-129cd0d2\

③ 芯片驱动库

项目
文件名esp32-libs-3.3.10.zip
分卷无,单文件
放到%LOCALAPPDATA%\Arduino15\staging\packages\esp32-libs-3.3.10.zip(不解压)

Arduino IDE 的安装流程中对这个文件做了特殊处理:下载到 staging/packages/ 后校验 SHA256,通过后自动解压。所以直接放 ZIP 本身即可,IDE 检测到文件存在就会跳过下载并自行解压。

④ Arduino 核心

项目
文件名esp32-core-3.3.10.zip
分卷无,单文件
解压到%LOCALAPPDATA%\Arduino15\packages\esp32\hardware\esp32\3.3.10\

⑤ 烧录工具

项目
文件名esptool-v5.3.0-windows-amd64.zip
分卷无,单文件
解压到%LOCALAPPDATA%\Arduino15\packages\esp32\tools\esptool_py\5.3.0\

操作步骤

1. 获取文件

编号组件CSDN 下载链接
编译器download.csdn.net/download/llm765800916/93107209
IDF 框架download.csdn.net/download/llm765800916/93107213
芯片驱动download.csdn.net/download/llm765800916/93107214
Arduino Coredownload.csdn.net/download/llm765800916/93107215
烧录工具download.csdn.net/download/llm765800916/93107243

付费资源,¥6.90/个。下载后得到 ZIP 文件,解压密码 csdn2026,解压后内含 download.txt(蓝奏云直链 + 合并说明)。

2. 合并分卷

①和②是大文件拆分。所有分卷下载到同一目录后,CMD 执行:

copy /b xtensa_compiler_part_00.zip + xtensa_compiler_part_01.zip + xtensa_compiler_part_02.zip + xtensa_compiler_part_03.zip + xtensa_compiler_part_04.zip xtensa-esp-elf-14.2.0_20260121-x86_64-w64-mingw32.zip

copy /b idf_libs_part_00.zip + idf_libs_part_01.zip + idf_libs_part_02.zip + idf_libs_part_03.zip + idf_libs_part_04.zip esp32-arduino-libs-idf-v5.5.zip

PowerShell 下用 cmd /c "copy /b ..." 包裹。

3. 创建目录结构

%LOCALAPPDATA%\Arduino15\ 下创建以下目录(如果不存在):

mkdir %LOCALAPPDATA%\Arduino15\packages\esp32\tools\xtensa-esp-elf\14.2.0+20260121
mkdir %LOCALAPPDATA%\Arduino15\packages\esp32\tools\esp32-arduino-libs-idf\5.5-129cd0d2
mkdir %LOCALAPPDATA%\Arduino15\packages\esp32\hardware\esp32\3.3.10
mkdir %LOCALAPPDATA%\Arduino15\packages\esp32\tools\esptool_py\5.3.0
mkdir %LOCALAPPDATA%\Arduino15\staging\packages

4. 解压

逐个解压到对应目录。③号不解压,直接把 ZIP 文件放到 staging\packages\

完成后目录结构如下:

%LOCALAPPDATA%\Arduino15\
├── staging\
│   └── packages\
│       └── esp32-libs-3.3.10.zip
└── packages\
    └── esp32\
        ├── hardware\
        │   └── esp32\
        │       └── 3.3.10\
        │           ├── boards.txt
        │           ├── platform.txt
        │           ├── cores/
        │           ├── libraries/
        │           └── ...
        └── tools\
            ├── xtensa-esp-elf\14.2.0+20260121\
            │   └── bin\
            │       ├── xtensa-esp-elf-gcc.exe
            │       └── ...
            ├── esp32-arduino-libs-idf\5.5-129cd0d2\
            └── esptool_py\5.3.0\

5. 验证

重启 Arduino IDE。工具 → 开发板 → 开发板管理器,搜索 esp32,版本选 3.3.10,点击安装。IDE 会逐个校验文件,已就位的直接跳过,应该在 30 秒内完成。

工具 → 开发板 → ESP32 Arduino → ESP32 Dev Module,编译 Blink:

void setup() { pinMode(2, OUTPUT); }
void loop() { digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); delay(500); }

编译通过且不触发任何下载,说明离线安装成功。


其他芯片型号

上面 5 个包对应经典 ESP32(单模组 Xtensa 双核)。用到其他芯片时只需替换③号:

芯片③号包文件名架构
ESP32-S3esp32s3-libs-3.3.10.zipXtensa LX7
ESP32-C3esp32c3-libs-3.3.10.zipRISC-V
ESP32-C6esp32c6-libs-3.3.10.zipRISC-V
ESP32-S2esp32s2-libs-3.3.10.zipXtensa LX7

①、②、④、⑤仍用上面列的文件,不换。

RISC-V 芯片(C3/C5/C6/H2/P4)还需要 ⑥号包:RISC-V GCC 编译器(riscv32-esp-elf-14.2.0_20260121-x86_64-w64-mingw32.zip),路径为 packages\esp32\tools\riscv32-esp-elf\14.2.0+20260121\。本文不展开,留作后续。


原理

Arduino IDE 的 Boards Manager 安装流程:

1. 解析 package_esp32_index.json → 获取文件列表 + URL + SHA256
2. 遍历 files[]:
   a. 检查目标路径 / staging 路径是否已有文件
   b. 已有且 SHA256 匹配 → 跳过
   c. 没有 → 从 GitHub 下载 → 校验 → 解压
3. 全部完成 → 显示 INSTALLED

关键在第 2.a 步:IDE 不区分文件是手动放的还是自己下载的。只要文件在预期位置且校验通过,就认为是已下载。这就是整个离线安装的基础。

③号包(芯片驱动)不走解压——它在 JSON 里的 archiveFileName 指向 staging/packages/,IDE 下载完原样保留 ZIP,编译时按需引用。其他 4 个包的 archiveFileName 指向 packages/ 下的工具目录,下载后自动解压到对应版本号子目录。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/llm765800916/article/details/162795455

文章来源crawl

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--