Build Type Bootloader config

    • menuconfig介绍
    • Build type
      • CONFIG_APP_BUILD_TYPE
      • CONFIG_APP_BUILD_TYPE_PURE_RAM_APP
      • CONFIG_APP_REPRODUCIBLE_BUILD
      • CONFIG_APP_NO_BLOBS
      • CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS
      • CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS
    • Bootloader config
      • Bootloader manager
        • CONFIG_BOOTLOADER_COMPILE_TIME_DATE
        • CONFIG_BOOTLOADER_PROJECT_VER
      • Application Rollback
        • CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
        • CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
        • CONFIG_BOOTLOADER_APP_SECURE_VERSION
        • CONFIG_BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD
        • CONFIG_BOOTLOADER_EFUSE_SECURE_VERSION_EMULATE
      • Bootloader Rollback
        • CONFIG_BOOTLOADER_ANTI_ROLLBACK_ENABLE
        • CONFIG_BOOTLOADER_SECURE_VERSION
      • CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION
      • CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE
      • CONFIG_BOOTLOADER_APP_TEST
        • CONFIG_BOOTLOADER_NUM_PIN_APP_TEST
        • CONFIG_BOOTLOADER_APP_TEST_PIN_LEVEL
      • Log
        • CONFIG_BOOTLOADER_LOG_LEVEL
        • Format
        • Settings
      • Serial Flash Configurations
        • CONFIG_BOOTLOADER_SPI_CUSTOM_WP_PIN
        • CONFIG_BOOTLOADER_SPI_WP_PIN
        • CONFIG_BOOTLOADER_FLASH_DC_AWARE
        • CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT
        • CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH
      • CONFIG_BOOTLOADER_VDDSDIO_BOOST
      • CONFIG_BOOTLOADER_FACTORY_RESET
        • CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET
        • CONFIG_BOOTLOADER_FACTORY_RESET_PIN_LEVEL
        • CONFIG_BOOTLOADER_OTA_DATA_ERASE
        • CONFIG_BOOTLOADER_DATA_FACTORY_RESET
        • CONFIG_BOOTLOADER_HOLD_TIME_GPIO
      • CONFIG_BOOTLOADER_HOLD_TIME_GPIO
      • CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE
      • CONFIG_BOOTLOADER_WDT_ENABLE
        • CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE
        • CONFIG_BOOTLOADER_WDT_TIME_MS
      • CONFIG_BOOTLOADER_WDT_TIME_MS
      • CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP
      • CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON
      • CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS
      • CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC
        • CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_IN_CRC
        • CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE

Bootloader config)

menuconfig介绍

最近的开发中,不可避免的要通过idf.py menuconfig来配置工程,但是官网文档这块做的比较杂,于是我决定自己把menuconfig完整看一遍

首先,简单介绍一下ESP-IDF的menuconfig,ESP-IDF 的 menuconfig 是一个基于 Kconfig 系统的编译时配置工具,用于定制项目功能和硬件设置。它通过文本用户界面(TUI)或图形界面(在支持的 IDE 中)提供交互式配置,生成 sdkconfig 文件,进而影响项目构建和功能实现。

至于menuconfig具体的选项,可以在官方文档网站看到
(备注,这部分文档针对最新版本的V5.5版本,建议非5.5版本的更新到5.5版本,离线的那个5.4.1版本,真的一言难尽,难评)

V5.4版本的文档无配置描述
Alt
V5.5版本新增配置描述
Alt

Configuration Options Reference - ESP32 - — ESP-IDF 编程指南 v5.5 文档

不过内容是全英文的,说实话这也是国产芯片之殇了,英文文档远多于中文,乐鑫已经算做的比较好的了。

接下来我们来逐项分析(翻译)一下
PS:(狗头保命,翻译来自AI,因为量大,所以和我项目无关的内容我基本只复制了,没有验证对不对)
由于内容过多(主要是bootload内容,这篇文章只介绍build type和bootload的内容)
而且我发现,实际menuconfig展示的内容,和文档描述顺序些许不同,但是选项含义应该是覆盖全的,本人学习ESP32不过半个月,具体原因也说不上来

Build type

在这里插入图片描述

CONFIG_APP_BUILD_TYPE

功能:选择应用构建方式(二进制文件+引导加载程序,或仅生成 ELF 文件直接加载到 RAM)。
选项:

CONFIG_APP_BUILD_TYPE_APP_2NDBOOT(默认):生成 FLASH 兼容的二进制文件,包含引导加载程序。
CONFIG_APP_BUILD_TYPE_RAM(实验性):生成 ELF 文件,加载到 RAM,需 JTAG/UART 调试,IRAM/DRAM 限制严格。

CONFIG_APP_BUILD_TYPE_PURE_RAM_APP

功能:禁用外部内存(PSRAM/SPI FLASH)初始化,节省约 26KB RAM,禁用 spi_flash 组件(如 app_update)。

CONFIG_APP_REPRODUCIBLE_BUILD

功能:消除构建中的日期、时间、路径信息,生成一致的二进制文件,自动创建 .gdbinit 文件。
说明:该选项有助于生成一致固件,方便版本控制和调试,但对运行时无直接影响。

CONFIG_APP_NO_BLOBS

功能:禁用 WiFi/Bluetooth 二进制库,WiFi 和 Bluetooth 功能将不可用。

CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS

功能:支持 ESP-IDF v2.1 之前的引导加载程序,增加约 1KB IRAM 使用。

CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS

功能:支持 ESP-IDF v3.1 之前的引导加载程序和分区表(无 MD5 校验)。

Bootloader config

在这里插入图片描述

Bootloader manager

CONFIG_BOOTLOADER_COMPILE_TIME_DATE

功能:引导加载程序是否包含编译时间戳,存储在描述结构中。
适用性:启用有助于固件版本追踪,禁用可生成一致二进制文件。
推荐:生产环境中禁用,调试时启用。
原因:生产环境需一致性,调试时时间戳便于追踪。

CONFIG_BOOTLOADER_PROJECT_VER

功能:设置引导加载程序版本号(uint32_t),存储在描述结构中。
范围:0 到 4294967295,默认 1。

Application Rollback

CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE

功能:支持应用回滚,OTA 更新后标记新应用为 PENDING_VERIFY,需用户代码确认有效性,否则回滚到上一版本。

CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK

功能:防止回滚到较低安全版本的固件,基于 eFuse 存储的安全版本号。
适用性:增强安全性,防止使用存在漏洞的旧固件。推荐启用

CONFIG_BOOTLOADER_APP_SECURE_VERSION

功能:设置应用的安全版本号,存储在 eFuse 中,引导加载程序选择更高或相等版本的应用。
适用性:与反回滚配合使用,需定义 OTA 分区(ota_0 + ota_1)。

CONFIG_BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD

功能:定义 eFuse 安全版本字段大小(ESP32S3 为 16 位)。
适用性:决定安全版本号的最大值,影响可升级次数。

CONFIG_BOOTLOADER_EFUSE_SECURE_VERSION_EMULATE

功能:模拟 eFuse 安全版本读写,仅用于测试,需分区表包含 emul_efuse 分区。
适用性:调试时可用,生产环境禁用以避免模拟漏洞。

Bootloader Rollback

CONFIG_BOOTLOADER_ANTI_ROLLBACK_ENABLE

功能:防止回滚到较低安全版本的引导加载程序,基于 eFuse 安全版本,增强引导加载程序安全性。

CONFIG_BOOTLOADER_SECURE_VERSION

功能:设置引导加载程序的安全版本号,ROM 引导程序检查版本。

CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION

功能:设置引导加载程序编译优化级别。
选项:

SIZE(-Os):优化大小。
DEBUG(-Og):便于调试。
PERF(-O2):优化性能。
NONE(-O0):无优化(已弃用)。

CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE

功能:保护未映射内存区域,防止意外访问触发异常。

CONFIG_BOOTLOADER_APP_TEST

备注:这三个APP_TEST内容一般来说调试时可用,生产环境通常禁用。
功能:通过 GPIO 触发从 TEST 分区启动测试应用

CONFIG_BOOTLOADER_NUM_PIN_APP_TEST

功能:指定测试分区启动的 GPIO 编号

CONFIG_BOOTLOADER_APP_TEST_PIN_LEVEL

功能:设置测试分区 GPIO 触发电平(高/低)。

Log

CONFIG_BOOTLOADER_LOG_LEVEL
CONFIG_BOOTLOADER_LOG_VERSION功能:选择引导加载程序日志版本(V1 或 V2)。CONFIG_BOOTLOADER_LOG_LEVEL功能:设置引导加载程序日志详细级别(无、错误、警告、信息、调试、详细)。
Format
CONFIG_BOOTLOADER_LOG_COLORS功能:启用 ANSI 颜色日志,需终端支持。
适用性:调试时便于阅读日志,生产环境无影响。CONFIG_BOOTLOADER_LOG_COLORS_SUPPORT功能:运行时动态启用颜色日志,增加少量 RAM/FLASH 使用。
适用性:调试时可选,生产环境禁用以节省资源。CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE功能:选择日志时间戳来源(无、毫秒计数)。
选项:NONE:无时间戳,节省资源。CPU_TICKS:从 RTOS 滴答计数,基于 APB 时钟或 REF_TICK。CONFIG_BOOTLOADER_LOG_TIMESTAMP_SUPPORT功能:运行时动态启用时间戳,增加少量 RAM/FLASH 使用。
适用性:调试时提供灵活性,生产时禁用。
Settings
CONFIG_BOOTLOADER_LOG_MODE功能:选择日志模式(文本或二进制)。
选项:TEXT:人类可读,适合调试。BINARY:减少 FLASH 使用(10%-35%),需主机工具解析。

Serial Flash Configurations

CONFIG_BOOTLOADER_SPI_CUSTOM_WP_PIN

功能:自定义 SPI FLASH WP 引脚(用于 QIO/QOUT 模式,eFuse 自定义引脚时)。

CONFIG_BOOTLOADER_SPI_WP_PIN

功能:指定自定义 WP 引脚的 GPIO 编号。

CONFIG_BOOTLOADER_FLASH_DC_AWARE

功能:允许应用调整 SPI FLASH 虚拟周期位以支持更高频率,强制引导加载程序使用 DOUT 模式。
适用性:高频 FLASH 操作可能需要,需验证硬件支持。

CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT

功能:支持 XMC 品牌 FLASH 芯片的启动流程。
适用性:若 FLASH 为 XMC 芯片,需启用;否则可禁用。

CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH

功能:启用对 32 位地址(>16MB)FLASH 的缓存访问,仅限四线 FLASH。

CONFIG_BOOTLOADER_VDDSDIO_BOOST

功能:设置 VDDSDIO LDO 电压,1.8V 时可提升至 1.9V 防止 FLASH 编程 brownout。
选项:

1_8V
1_9V

CONFIG_BOOTLOADER_FACTORY_RESET

功能:通过 GPIO 触发工厂重置,清除数据分区并从工厂分区启动。
适用性:便于设备恢复出厂设置,需定义 GPIO。

CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET

功能:指定工厂重置 GPIO 编号,启用内部上拉。

CONFIG_BOOTLOADER_FACTORY_RESET_PIN_LEVEL

功能:设置工厂重置 GPIO 触发电平(高/低)。
选项:

LOW:低电平触发。
HIGH:高电平触发。
CONFIG_BOOTLOADER_OTA_DATA_ERASE

功能:工厂重置时清除 OTA 数据,从工厂分区或 OTA0 启动。

CONFIG_BOOTLOADER_DATA_FACTORY_RESET

功能:指定工厂重置时清除的分区(如 NVS、phy_init)。

CONFIG_BOOTLOADER_HOLD_TIME_GPIO

功能:设置工厂重置或测试模式 GPIO 保持时间(秒)。
适用性:确保触发可靠,需测试时间设置。

CONFIG_BOOTLOADER_HOLD_TIME_GPIO

功能:设置工厂重置或测试模式 GPIO 保持时间(秒)。

CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE

功能:保护未映射内存区域,防止意外访问触发异常。

CONFIG_BOOTLOADER_WDT_ENABLE

功能:启用 RTC 看门狗,防止启动代码因电源不稳定锁死。

CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE

功能:允许用户代码禁用 RTC 看门狗。
适用性:需用户代码手动管理 WDT(如调用 wdt_hal_feed 或 wdt_hal_disable)。

CONFIG_BOOTLOADER_WDT_TIME_MS

功能:设置 RTC 看门狗超时时间(ms,0-120000,默认 9000)。

CONFIG_BOOTLOADER_WDT_TIME_MS

功能:设置 RTC 看门狗超时时间(ms,0-120000,默认 9000)。

CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP

功能:从深度睡眠唤醒时跳过固件校验(校验和、SHA256、签名)。

CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON

功能:上电重置时跳过固件校验。

CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS

功能:始终跳过固件校验。

CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC

功能:在 RTC FAST 内存中保留自定义数据区域,重启后保留(除断电)。

CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_IN_CRC

功能:自定义 RTC 内存是否包含在 CRC 计算中。

CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE

功能:设置 RTC FAST 内存自定义区域大小(需 4 字节对齐)。

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

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

相关文章

C++信息学奥赛一本通-第一部分-基础一-第3章-第1节

C信息学奥赛一本通-第一部分-基础一-第3章-第1节 2051 偶数 #include <iostream>using namespace std;int main() {int number; cin >> number;if (number % 2 0) {cout << "yes";} }2052 范围判断 #include <iostream>using namespace std…

自由学习记录(79)

PBRBRDF原理&Unity实现深入浅出_哔哩哔哩_bilibili 进行改进 一个像素点对应一个范围内的 一个微表面--一个由无数个起起伏伏的结构组成的物理结构 屏幕上的每一个像素点&#xff0c;在渲染时通常会被视为一个“微表面”的代表 比如在这个图中&#xff0c;只关心红色的区…

复杂路况误报率↓78%!陌讯轻量化模型在车辆违停识别的边缘计算优化​

一、行业痛点&#xff1a;动态交通场景的识别困境据《2024中国智慧交通白皮书》统计&#xff0c;城市核心路段违停误报率高达35%&#xff0c;主要源于两大难点&#xff1a;​​短暂停靠干扰​​&#xff1a;出租车临时停靠与违停行为特征重叠​​复杂背景干扰​​&#xff1a;树…

大语言模型提示工程与应用:提示词基础使用方式

提示词使用方式 学习目标 在本课程中&#xff0c;我们将学习更多关于提示词使用方式。 相关知识点 提示词使用 学习内容 1 提示词使用 1.1 文本摘要 语言模型最典型的应用场景之一就是文本摘要。我们可以通过以下提示实现基础摘要功能&#xff1a; 提示: 解释抗生素是什么回答&…

常见命令-资源查看-iostat命令实践

文章目录 系统中未安装 iostat 命令 1. 监控CPU与磁盘的基础负载 2. 诊断I/O性能瓶颈 3. 实时监控与动态采样 4. 特定设备或分区的精细化监控 5. 性能测试与基准数据生成 6. 结合其他工具进行综合调优 总结 结果输出速查表 第一部分:CPU统计信息 第二部分:设备/磁盘统计信息(…

WinForm 实战 (进度条):用 ProgressBar+Timer 打造动态进度展示功能

目录 核心控件解析​ ProgressBar 进度条​ Timer 定时器​ 实战案例 常见应用场景​ 总结​ 在 WinForm 桌面应用开发中&#xff0c;进度反馈是提升用户体验的关键环节。无论是文件处理、数据加载还是复杂计算&#xff0c;一个直观的进度条能让用户清晰了解任务状态&…

使用 ast-grep 精准匹配指定类的方法调用(以 Java 为例)

使用 ast-grep 精准匹配指定类的方法调用&#xff08;以 Java 为例&#xff09; 在代码重构、安全审计或静态分析的场景中&#xff0c;我们常常需要匹配某个特定类中定义的方法调用。而 ast-grep 作为一款基于语法树的代码搜索工具&#xff0c;提供了强大的模式匹配功能&#…

Dijkstra?spfa?SPstra?

带负权的无负环最短路问题 对于一张有负边权的图&#xff0c;普通 Dijkstra 就不能用了&#xff0c;比如&#xff1a;正常的 Dijkstra 扩散的节点依次为 1,3,2,41,3,2,41,3,2,4。 这时候可以发现&#xff0c;当点 222 扩散的时候&#xff0c;原本达到点 333 的路径长度是 111&a…

React函数组件灵魂搭档:useEffect深度通关指南!

你以为它只是替代componentDidMount&#xff1f;数据抓取、事件绑定、定时清理...&#xff1f;事实上&#xff0c;useEffect才是函数组件的“幕后操控者”&#xff01;但依赖数组的坑、闭包的陷阱&#xff0c;你真的玩转了吗&#xff1f; 告别“能用就行”&#xff0c;今天带你…

LabVIEW实验室测试框架

在实验室测试场景中&#xff0c;选用合适的 LabVIEW 框架能够极大提升测试效率、优化测试流程并保障测试结果的准确性。介绍几款常用且功能强大的 LabVIEW 测试框架&#xff1a;​TestStand​框架概述​TestStand 是 NI 公司专为测试系统开发设计的一款测试执行管理框架。它能够…

Kiro :从“规范”到“实现”的全流程 AI 助手

为什么是 Kiro Kiro 是一款面向“规范驱动开发”&#xff08;Spec-Driven Development&#xff09;的 AI 开发助手。与只在“写代码”环节辅助不同&#xff0c;Kiro 将“从需求到设计再到实现”的完整链路显性化&#xff0c;把需求、设计、任务分解、代码与测试、文档等全部纳…

【0基础PS】PS工具详解--矩形工具

目录前言一、矩形工具的基础认知​二、矩形工具的选项栏详解​三、矩形工具的绘制技巧​四、矩形工具的实际应用场景​五、常见问题与解决方案​总结前言 在 Photoshop&#xff08;简称 PS&#xff09;的众多绘图工具中&#xff0c;矩形工具是使用率极高的基础工具之一。无论是…

移动端app专项测试

学习目标&#xff1a;app专项测试知识点&#xff0c;其他知识扩充一、app专项&#xff08;app怎么测试/app侧重点在哪&#xff09;1.功能&#xff1a;跟前面功能测试一样&#xff08;跟需求文档提取测试点&#xff0c;编写测试用例&#xff09;2.安装1.不同品牌安装,不同操作系…

Spring Boot 结合 CORS 解决前端跨域问题

Spring Boot 结合 CORS 解决前端跨域问题 1. 背景 在前后端分离的项目中&#xff0c;前端&#xff08;例如 http://localhost:3000&#xff09;调用后端接口&#xff08;例如 http://localhost:8080&#xff09;时&#xff0c;浏览器会因为 同源策略 限制而阻止请求&#xff0c…

GPT-5 发布:微小进步难掩瓶颈,AI 行业或迎冷静

北京时间 8 月 8 日凌晨,OpenAI 的 GPT-5 在万众期待中登场。距离 GPT-4 发布已过去两年半,然而这场发布会却未重现 ChatGPT 初现时的惊艳,也没有 GPT-4 的跨越式升级,更无 o1 发布时的震撼。1 小时 20 分钟的发布会,充斥着不惊艳的测试数据、与竞品难分高下的用例展示,甚…

僵尸进程、孤儿进程、进程优先级、/proc 文件系统、CRC 与网络溢出问题处理(实战 + 原理)

僵尸进程 / 孤儿进程&#xff1a;是什么、为什么会出现、如何定位与清理进程优先级&#xff1a;nice/priority、CFS 与实时调度、I/O 优先级、cgroup 限流/proc 文件系统&#xff1a;最常用路径与诊断手法CRC 校验&#xff1a;在存储/网络里的作用与局限、抓包“校验错误”的常…

GPT-5 不仅是版本升级,它标志着 推理能力的商业化 和 Agent操作系统 的崛起,开启了 AI革命时代。

GPT-5 不仅是版本升级&#xff0c;它标志着 推理能力的商业化 和 Agent操作系统 的崛起&#xff0c;开启了 AI革命时代。 核心技术亮点&#xff1a; 商业化推理能力&#xff1a;AI不仅生成文本&#xff0c;还能 自动解决复杂任务&#xff0c;提升工作效率。 Agent操作系统&…

【C#】掌握并发利器:深入理解 .NET 中的 Task.WhenAll

在现代 .NET 应用程序开发中&#xff0c;异步编程&#xff08;Asynchronous Programming&#xff09;已成为提升性能、改善响应能力和充分利用多核处理器的关键技术。async 和 await 关键字极大地简化了异步代码的编写&#xff0c;而 Task 类则是这一模型的核心。在处理多个并发…

微型导轨在半导体制造中有哪些高精密应用场景?

微型导轨在半导体制造中用于晶圆对准和定位系统&#xff0c;确保晶圆在光刻、蚀刻等工艺中精确移动。其高精度、高刚性、低摩擦和紧凑设计等特性&#xff0c;使其成为半导体设备实现微米级运动控制的核心部件。光刻机&#xff1a;在光刻工艺中&#xff0c;微型导轨支撑并引导掩…

全栈:Tomcat 安装教程

Tomcat 安装教程 安装 Tomcat 的步骤因操作系统而异&#xff0c;以下是 Windows、Linux 和 Mac 系统的详细安装方法&#xff1a; 一、Windows 系统安装 Tomcat 下载 Tomcat 访问 Tomcat 官方网站&#xff08;http://tomcat.apache.org/&#xff09;&#xff0c;选择适合的版本…