Baji_Rtc_Toy/sdkconfig.defaults
Rdzleo 672506e7c7 feat(rtc-only): Phase 1 - 通过 CONFIG_BAJI_BADGE_MODE 屏蔽电子吧唧模式
按 GSD 框架 .planning/milestones/digital_human_rtc/ 规划完成 Phase 1。
源代码全部保留,通过 Kconfig 开关 + CMakeLists 条件编译 + #ifdef 调用点保护
实现"吧唧模式不进固件但代码可恢复"。

## 核心变更

### Kconfig 开关(默认关闭)
- 新增 CONFIG_BAJI_BADGE_MODE(main/Kconfig.projbuild)
- sdkconfig.defaults 默认 =n
- =y 时恢复双模式(电子吧唧 + AI 对话)
- =n 时仅 AI 数字人 RTC 模式

### CMakeLists 剥离(剥离式不重写)
- 9 个 dzbj/ 吧唧专属 + 9 个 ui/screens/ 吧唧 UI 进入 if(CONFIG_BAJI_BADGE_MODE) 条件块
- 公共保留: dzbj/lcd.c, ai_chat_ui.c, sprite_demo.c, dual_gif_demo.c,
  bg_gif_demo.c, pages_pwm.c, dzbj_init.c, fatfs.c
- 修正 PLAN 漏判:dzbj_init/fatfs 公共化(AI 模式调用 dzbj_hw_display_init/DecodeImg)

### 调用点 #ifdef 保护
- application.cc: L20 include, L63-66 background_task, L536 device_mode 分支
- movecall_moji_esp32s3.cc: dzbj headers, init_spiffs_image_list extern,
  dzbj_boot_click_handler extern, device_mode_is_badge 分支, InitializeBadgeMode,
  InitializeBadgeModeButtons, mode_switch_combo 注册, device_mode_in_switch_suppress
- 保留公共 extern: ai_chat_screen_init, ai_chat_resume_animation, pwm_init

### 整体文件级 #ifdef 包裹
- dzbj/dzbj_button.c/h
- dzbj/sleep_mgr.c
- sleep_mgr/include/sleep_mgr.h

### 6 个文件显式 #include "sdkconfig.h"
- ESP-IDF 不会 force-include,必须手动 include 才能拿到 CONFIG_* 宏

## G7 验收双向编译

- =n 模式 build:  EXIT=0(数字人 RTC 单一形态)
- =y 模式 build:  EXIT=0(双模式恢复可用)

## 固件大小变化

| 段 | =n | =y | 节省 |
|----|-----|------|------|
| .text | 2.03 MB | 2.06 MB | 27 KB |
| .rodata | 2.48 MB | 3.87 MB | 1.39 MB |
| Total | 4.63 MB | 6.05 MB | 1.45 MB |

## GSD 文档(同时提交)

- .planning/milestones/digital_human_rtc/MILESTONE.md
- .planning/milestones/digital_human_rtc/ROADMAP.md
- .planning/milestones/digital_human_rtc/INTEL.md
- .planning/milestones/digital_human_rtc/phases/phase_01_kconfig_isolation/PLAN.md
- .planning/milestones/digital_human_rtc/phases/phase_01_kconfig_isolation/SIZE_REPORT.md
- .planning/milestones/digital_human_rtc/phases/phase_01_kconfig_isolation/BADGE_MODE_ISOLATION_MAP.md
- 编译大小原始数据: size_*.txt

## 已知事项

- =n 固件 4.63 MB 仍 > 4 MB 目标,Phase 2 调整分区 + Phase 3 物理移除图片资源解决
- main/dzbj/ 下所有源文件完整保留,无任何物理删除
2026-05-13 10:22:48 +08:00

182 lines
5.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CONFIG_COMPILER_CXX_EXCEPTIONS=y
CONFIG_COMPILER_CXX_EXCEPTIONS_EMG_POOL_SIZE=1024
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF=y
CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS=y
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
# Boot ROM Behavior - 禁用Boot ROM日志输出 新增禁用日志配置(生产环境)
# =====================================================================
CONFIG_BOOT_ROM_LOG_ALWAYS_OFF=y
# 彻底禁用启动阶段和系统组件日志
CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2048
CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y
CONFIG_ESP_MAIN_TASK_AFFINITY=0x0
# 禁用coexist组件日志
CONFIG_ESP_COEX_LOG_LEVEL_NONE=y
# 禁用WiFi相关日志
CONFIG_ESP_WIFI_LOG_LEVEL_NONE=y
# 禁用蓝牙日志
CONFIG_BT_LOG_LEVEL_NONE=y
# 彻底禁用底层组件日志输出
CONFIG_ESP_CONSOLE_UART_NONE=y
CONFIG_ESP_CONSOLE_NONE=y
CONFIG_FREERTOS_USE_TRACE_FACILITY=n
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=n
# 禁用coexist固件版本输出
CONFIG_ESP_COEX_POWER_MANAGEMENT=n
CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE=n
# 禁用wakenet模型加载日志
CONFIG_SR_MODEL_WN9_QUANT=n
CONFIG_ESP_SR_RUN_TEST=n
# 彻底禁用所有printf输出
CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=n
CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=n
CONFIG_VFS_SUPPORT_IO=n
# 禁用系统启动信息
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
CONFIG_ESP_TASK_WDT_TIMEOUT_S=5
# 禁用ROM启动日志
CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP=y
CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
# =====================================================================
CONFIG_HTTPD_MAX_REQ_HDR_LEN=2048
CONFIG_HTTPD_MAX_URI_LEN=2048
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_ESP_TASK_WDT_TIMEOUT_S=10
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_MBEDTLS_DYNAMIC_BUFFER=y
CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=n
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
CONFIG_ESP_WIFI_IRAM_OPT=n
CONFIG_ESP_WIFI_RX_IRAM_OPT=n
CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER=y
CONFIG_CODEC_I2C_BACKWARD_COMPATIBLE=n
# LVGL 9.2.2
CONFIG_LV_OS_NONE=y
CONFIG_LV_USE_OS=0
CONFIG_LV_USE_CLIB_MALLOC=y
CONFIG_LV_USE_CLIB_STRING=y
CONFIG_LV_USE_CLIB_SPRINTF=y
CONFIG_LV_USE_IMGFONT=y
# Use compressed font
CONFIG_LV_FONT_FMT_TXT_LARGE=y
CONFIG_LV_USE_FONT_COMPRESSED=y
CONFIG_LV_USE_FONT_PLACEHOLDER=y
# Disable extra widgets to save flash size
CONFIG_LV_USE_ANIMIMG=n
CONFIG_LV_USE_CALENDAR=n
CONFIG_LV_USE_CALENDAR_HEADER_ARROW=n
CONFIG_LV_USE_CALENDAR_HEADER_DROPDOWN=n
CONFIG_LV_USE_CHART=n
CONFIG_LV_USE_KEYBOARD=n
CONFIG_LV_USE_LED=n
CONFIG_LV_USE_LIST=n
# Volcano RTC Configuration
CONFIG_CONNECTION_TYPE_MQTT_UDP=y
# CONFIG_CONNECTION_TYPE_WEBSOCKET is not set
# CONFIG_CONNECTION_TYPE_VOLC_RTC is not set
CONFIG_VOLC_INSTANCE_ID=""
CONFIG_VOLC_PRODUCT_KEY=""
CONFIG_VOLC_PRODUCT_SECRET=""
CONFIG_VOLC_BOT_ID=""
CONFIG_VOLC_DEVICE_NAME=""
CONFIG_LV_USE_MENU=n
CONFIG_LV_USE_MSGBOX=n
CONFIG_LV_USE_SPAN=n
CONFIG_LV_USE_SPINBOX=n
CONFIG_LV_USE_SPINNER=n
CONFIG_LV_USE_TABVIEW=n
CONFIG_LV_USE_TILEVIEW=n
CONFIG_LV_USE_WIN=n
CONFIG_LV_BUILD_EXAMPLES=n
# Audio Processing Configuration for AEC+VAD Echo-Aware Optimization
CONFIG_USE_AUDIO_PROCESSOR=n
CONFIG_USE_REALTIME_CHAT=y
CONFIG_USE_WAKE_WORD_DETECT=n
CONFIG_USE_CUSTOM_WAKE_WORD=n
CONFIG_WAKE_WORD_NONE=y
# Standard ESP-IDF Audio and Logging Configuration
# CONFIG_LOG_DEFAULT_LEVEL_INFO=y 原有打印日志配置 恢复原有日志打印可以取消注释
# 彻底禁用所有日志输出 新增禁用日志配置(生产环境)
# =====================================================================
CONFIG_LOG_DEFAULT_LEVEL_NONE=y
CONFIG_LOG_MAXIMUM_LEVEL_NONE=y
CONFIG_LOG_COLORS=n
# 禁用启动任务日志
CONFIG_ESP_TASK_WDT_EN=n
CONFIG_ESP_INT_WDT_EN=n
# 禁用所有组件的详细日志
CONFIG_LWIP_ESP32_ETHERNET=n
CONFIG_ESP_ERR_TO_NAME_LOOKUP=n
# 禁用调试和监控功能
CONFIG_ESP_DEBUG_STUBS_ENABLE=n
CONFIG_ESP_GDBSTUB_ENABLED=n
# =====================================================================
# Bluetooth Configuration for BluFi Provisioning
CONFIG_BT_ENABLED=y
CONFIG_BT_CONTROLLER_ENABLED=y
CONFIG_BT_CONTROLLER_ONLY=n
CONFIG_BT_BLUEDROID_ENABLED=y
CONFIG_BT_CLASSIC_ENABLED=n
CONFIG_BT_BLE_ENABLED=y
CONFIG_BT_GATTS_ENABLE=y
CONFIG_BT_GATTC_ENABLE=y
CONFIG_BT_BLE_SMP_ENABLE=y
CONFIG_BT_STACK_NO_LOG=n
CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=n
CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=n
CONFIG_BT_RESERVE_DRAM=0x10000
# BluFi 未被代码使用(两种模式均用自定义 GATT Server关闭以兼容 BLE 5.0
CONFIG_BT_BLUFI_ENABLED=n
CONFIG_BT_BLE_BLUFI_ENABLE=n
# BLE 5.0 启用 2M PHY 支持(图传速度翻倍)
CONFIG_BT_BLE_50_FEATURES_SUPPORTED=y
# 同时保留 BLE 4.2 legacy advertising两种模式的广播和 GATT 都依赖)
CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y
# Bluetooth and WiFi Coexistence
CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y
CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y
# === Baji RTC Toy 模式开关 ===
# 数字人 RTC 单一形态固件CONFIG_BAJI_BADGE_MODE=n
# 双模式AI + 电子吧唧固件CONFIG_BAJI_BADGE_MODE=y
CONFIG_BAJI_BADGE_MODE=n