恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

ESP32的bootloader介绍

  • 首页
  • 资讯中心
  • /
  • ESP32的bootloader介绍

相关资讯

ifc转stp/fbx/rvt/osgb在线转换查看工具【免费】GLB/XYZ/GLTF格式fbx, 3ds, stl, ply, gltf, glb, 3dm, obj, wrl:用 TaoToke 2026/10/18 22:07:48
光照不均还能二值化吗?用华为云码道开发 OpenCV 自适应阈值工具 2026/10/18 22:07:48
macOS 12老Mac安装OpenClaw教程:解决Homebrew与Python兼容性坑 2026/10/18 22:07:48

最新资讯

Live555多路RTSP转发实战:从摄像头H.264拉到稳定会话管理
老声卡新系统驱动调优:小夜曲USB声卡v2.1安装与ASIO低延迟设置指南
3 步把加密短视频存到本地:res-downloader 资源下载教程
液冷数据中心产业链全景拆解:从冷板到CDU的落地路径与避坑指南
大模型拒答率与错误率平衡术:五步构建可落地的安全与体验最优解
提示词即代码:AI业务逻辑生成的工程化实践指南

今日推荐

基于GMM的语音识别系统原理与MATLAB实现详解
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

本周热门

基于GMM的语音识别系统原理与MATLAB实现详解
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

ESP32的bootloader介绍

发布时间:2026/10/18 22:07:48
ESP32的bootloader介绍 bootloader不是芯片里的 ROM 启动代码而是 ESP-IDF 二级引导程序second stage bootloader。ROM 里的一级 bootloader 固定不可改IDF 把真正选分区、加载 app、做安全校验的逻辑放在 flash 里的这份程序中。它在启动链里的位置上电后大致是三步一级 ROM bootloader芯片内部不可改读 strapping、配 SPI flash从 flash 偏移CONFIG_BOOTLOADER_OFFSET_IN_FLASH把二级 bootloader 拉进 RAM。二级 bootloader本组件产物是bootloader.bin读分区表、选 app、把镜像装进 IRAM/DRAM 或用 MMU 映射然后跳到 app。应用程序启动esp_system里的call_start_cpu0初始化 C 环境和 FreeRTOS最后进app_main。ESP32-S31 上二级 bootloader 烧在0x2000你工程sdkconfig里就是这个值。前面0x0000–0x1FFF留给 Key Manager / Flash Encryption不能当普通代码区用。分区表默认还在0x8000S31 允许把分区表往后推到最多0x17000给 bootloader 腾空间。这个目录实际装了什么它更像 独立子工程 烧录规则真正干活的代码很少路径作用CMakeLists.txt应用工程侧把bootloader.bin挂到idf.py flash偏移用CONFIG_BOOTLOADER_OFFSET_IN_FLASHKconfig.projbuild等日志级别、优化级别、出厂复位 GPIO、WDT、回滚、恢复 bootloader 等选项subproject/真正编译 bootloader 的独立 CMake 工程BOOTLOADER_BUILD1NON_OS_BUILD1subproject/main/bootloader_start.c入口call_start_cpu0()subproject/main/ld/chip/各芯片内存布局。S31 把 bootloader 塞进 ROM 共享缓冲之前的 SRAM避免踩 ROM.data/.bss和启动栈subproject/components/micro-ecc/Secure Boot 验签用的小型 ECC硬件初始化、读分区表、验镜像、装 app 在隔壁组件bootloader_support里。bootloader只编排流程。构建时应用工程会再跑一遍 CMake把subproject编成独立固件。能进 bootloader 的组件很少bootloader_support、hal、log、spi_flash、efuse、micro-ecc等没有 FreeRTOS 调度、没有一般驱动。项目若有bootloader_components/才会额外链进去。运行流程入口ROM 把二级 bootloader 装进 RAM 后跳到call_start_cpu0()void __attribute__((noreturn)) call_start_cpu0(void) { if (bootloader_before_init) { bootloader_before_init(); } // 1. Hardware initialization if (bootloader_init() ! ESP_OK) { bootloader_reset(); } if (bootloader_after_init) { bootloader_after_init(); } // ... deep sleep 快启、选分区、可选 TEE、加载 app ... bootloader_utility_load_boot_image(bs, boot_index); }对应步骤弱符号钩子bootloader_before_init/bootloader_after_init可在工程里覆盖。bootloader_init()关 cache、配 MMU、时钟/UART/SPI、打印 banner、开随机源、按配置开 RTC WDT。Deep sleep 快启可选上次已校验过的 app 地址存在 RTC FAST 里唤醒时跳过大量检查。读分区表按otadata选 factory / OTA0 / OTA1可 GPIO 长按出厂复位或进 test 分区。若开了 TEE先装 TEE 镜像。bootloader_utility_load_boot_image()把选中 app 的 RAM 段拷进去只读段用 flash MMU 映射校验完整性后跳转函数不返回。选分区逻辑还处理 OTA 回滚新固件没esp_ota_mark_app_valid的话下次启动会退回上一槽。它为什么存在ROM bootloader 只会从固定偏移装一段代码。二级 bootloader 才提供分区表factory / OTA / NVS / SPIFFS 等灵活布局OTA 选槽 回滚 / 反回滚Secure Boot、Flash Encryption 初始化验签、解密出厂复位、测试固件、自定义钩子ROM 用 bootloader 自己的镜像头 配 flash模式/频率还比较保守二级 bootloader 起来后会改用 当前选中 app 的镜像头 再配一次 SPI flash所以 OTA 可以改 flash 参数而不必重烧 bootloader。和本工程相关的默认配置当前 Alta / ESP32-S31 工程大致是偏移0x2000按 size-Os编译日志 Info开 RTC WDT超时 9 s防止启动卡死没开 factory reset、app test、secure boot recovery分区表在0x9000起才是 nvs从你之前的编译日志看nvs 0x9000bootloader 必须小于分区表起点否则会报Bootloader binary size is too large芯片也起不来。定制时要注意钩子实现弱符号即可。整份替换参考examples/custom_bootloader。只能用明确支持 bootloader 的 API普通driver不能直接链进来。体积很紧日志级别、优化、分区表偏移都会挤空间。OTA 能升 app不能可靠地 OTA 换 bootloader现场机器要当不可改固件看待。部分芯片还有 Recovery BootloadereFuse 指向另一份备份主 bootloader 头无效时 ROM 会去加载它。一句话components/bootloader是 无 OS 的独立小固件ROM 把它从0x2000S31拉起来后由它完成最小硬件初始化、读分区表、选并装 app再把 CPU 交给应用程序。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号