`armor/` 是它的 Rust 改写版,这一份留着当参考:ADC 阈值的 2000 就是从它标定出来的 (`.env.example` 里那句 "same as the reference firmware" 指的就是它),而且它的 README 记着实测设备与 MAC,换硬件时是有用的现场记录。 只收了 20 个源文件。它自带的 `.gitignore` 已经排掉 `build/`(211 MB 的 ESP-IDF 构建产物) 与生成的 `sdkconfig`,所以仓库里不会多出这些东西。 两处顺带处理: - `reference/armor/.git` 是一个**空的**仓库壳(`git init` 过,零提交、零 remote、零 ref), 而外层 git 正因为它的存在而拒绝索引 `reference/` 下的任何文件 (`error: 'reference/armor/' does not have a commit checked out`)。它被挪到 `desktop/.dev/backup/reference-armor-git`(可逆,且该目录已被忽略),不是删除。 - 它的 README 指着 `../armor-platformio-backup/`,那份备份并不存在。改成明说"没有进仓库", 免得以后有人照着找一个不存在的目录。 另外把 `/docs/` 加进 .gitignore:那是工作区里另起的一个 Astro 文档站,与本仓库无关。
210 lines
8.2 KiB
Plaintext
210 lines
8.2 KiB
Plaintext
# =============================================================================
|
||
# armor — ESP32-C3 / ESP-IDF v6.1 工程专用 .gitignore
|
||
# -----------------------------------------------------------------------------
|
||
# 取舍原则
|
||
# 1) 只忽略「本机生成物 + 本机专有配置 + 编辑器/系统杂物」;
|
||
# 源码、构建脚本、分区表、可复现配置一律入库。
|
||
# 2) 能用 "/" 锚定就用锚定模式,避免将来新增同名目录时被误伤。
|
||
# 3) 每段都写明理由,后人可据此判断能否删改。
|
||
# 4) 语法提醒:.gitignore 的 "#" 注释必须独占一行,不能写在模式后面;
|
||
# 行尾空格会被静默丢弃(或被当成模式的一部分),也不要加。
|
||
#
|
||
# 自检
|
||
# git status --short # 期望只列出应该入库的源文件
|
||
# git check-ignore -v <路径> # 查看某路径被哪条规则命中
|
||
# =============================================================================
|
||
|
||
|
||
# =============================================================================
|
||
# 1. ESP-IDF 构建输出(体积最大,本工作区约 17 MB,必须忽略)
|
||
# =============================================================================
|
||
|
||
# idf.py 默认在工程根目录生成 build/:CMake/Ninja 缓存、.o、静态库、固件
|
||
# 镜像、flasher_args.json、compile_commands.json 全在里面。
|
||
# 本工程路径是纯 ASCII,不会触发 idf.ps1 的「非 ASCII 路径 -> 外置构建目录」
|
||
# 逻辑,所以 build/ 就落在工程内。
|
||
/build/
|
||
|
||
# 其它常见构建目录命名:多配置构建、CMake 预设、CLion
|
||
/build-*/
|
||
/cmake-build-*/
|
||
|
||
# 仅当 IDF_BUILD_DIR 被指向工程内部时才会出现
|
||
# (idf.ps1 的默认兜底是 <盘符>:\esp-idf-build\armor,位于仓库之外)
|
||
/esp-idf-build/
|
||
|
||
# clangd --background-index 的索引缓存(.vscode 里启用了该选项)
|
||
/.cache/
|
||
|
||
# 根目录下零散的 CMake/Ninja 缓存(正常应在 build/ 内,保险起见)
|
||
/.ninja_deps
|
||
/.ninja_log
|
||
/CMakeCache.txt
|
||
/CMakeFiles/
|
||
|
||
|
||
# =============================================================================
|
||
# 2. ESP-IDF 生成的本机配置
|
||
# =============================================================================
|
||
|
||
# sdkconfig : menuconfig/构建时自动写出,代表「本机当前状态」,每台机器都可能不同
|
||
# sdkconfig.old : 上一次配置的备份
|
||
# 可复现的那份是 sdkconfig.defaults(已生成,见第 9 节),所以这两个都忽略。
|
||
/sdkconfig
|
||
/sdkconfig.old
|
||
|
||
# 提示:ESP-IDF 工具在 Windows 上写 sdkconfig / sdkconfig.defaults 用的是 CRLF,
|
||
# 这是工具行为、无需干预 —— 入库行尾由 .gitattributes 统一成 LF,
|
||
# 本地暂时出现 CRLF 不会让 git status 变脏(已实测)。
|
||
|
||
|
||
# =============================================================================
|
||
# 3. IDF Component Manager(引入 idf_component.yml 后才会出现)
|
||
# =============================================================================
|
||
|
||
# managed_components/ 是下载到本地的第三方组件副本,官方文档明确说它
|
||
# 「通常不纳入版本控制」;dependencies.lock 由工具自动求解生成、禁止手改。
|
||
# 若团队要锁定依赖版本,可注释掉 dependencies.lock 并把它提交入库。
|
||
/managed_components/
|
||
/dependencies.lock
|
||
|
||
# 工具导出的编译数据库副本(真正那份在 build/ 里,已随 build/ 忽略)
|
||
/compile_commands.json
|
||
|
||
|
||
# =============================================================================
|
||
# 4. 固件产物与运行日志
|
||
# =============================================================================
|
||
|
||
# 只锚定根目录,避免误伤将来放进 assets/ 之类的素材
|
||
/*.bin
|
||
/*.elf
|
||
/*.map
|
||
/*.hex
|
||
|
||
# README 里 monitor 打印的 CSV,属于采集到的运行数据,不入库
|
||
/logs/
|
||
*.log
|
||
|
||
|
||
# =============================================================================
|
||
# 5. 密钥类文件 —— 提交即泄密,且很难从历史里挽回
|
||
# =============================================================================
|
||
|
||
# 安全启动签名私钥 / Flash 加密密钥 / 证书私钥。
|
||
# 若仓库确实需要存放公开证书,请把下面的通配收窄成具体文件名。
|
||
*.pem
|
||
*.key
|
||
*.p12
|
||
*.pfx
|
||
|
||
|
||
# =============================================================================
|
||
# 6. 编辑器 / IDE(本机专有,往往含绝对路径)
|
||
# =============================================================================
|
||
|
||
# VS Code + ESP-IDF 扩展自动生成。当前 .vscode/settings.json 里是
|
||
# C:\esp\v6.1\esp-idf、d:\宣筹\...\build、COM10 这类本机绝对路径,
|
||
# 提交上去只会误导别人。
|
||
/.vscode/*
|
||
# 想共享「推荐扩展列表」时,取消下一行注释(上一行的 /.vscode/* 必须保留)
|
||
!/.vscode/extensions.json
|
||
|
||
/.idea/
|
||
/.vs/
|
||
*.code-workspace
|
||
*.sublime-project
|
||
*.sublime-workspace
|
||
|
||
# 编辑器临时/交换文件
|
||
*.swp
|
||
*.swo
|
||
*~
|
||
.#*
|
||
\#*#
|
||
|
||
|
||
# =============================================================================
|
||
# 7. Python 与测试/覆盖率工具缓存(ESP-IDF 工具链脚本产物)
|
||
# =============================================================================
|
||
__pycache__/
|
||
*.py[cod]
|
||
.venv/
|
||
venv/
|
||
/.mypy_cache/
|
||
/.pytest_cache/
|
||
/.ruff_cache/
|
||
|
||
# pytest-embedded、单元测试与尺寸报告(ESP-IDF 自身仓库也忽略这些)
|
||
pytest-embedded/
|
||
pytest_embedded_log/
|
||
TEST_LOGS/
|
||
XUNIT_RESULT*.xml
|
||
build_summary_*.xml
|
||
app_info_*.txt
|
||
size_info*.txt
|
||
.manifest_sha
|
||
|
||
# 覆盖率
|
||
*.gcda
|
||
*.gcno
|
||
*.gcov
|
||
coverage.info
|
||
coverage_report/
|
||
|
||
|
||
# =============================================================================
|
||
# 8. 操作系统杂物
|
||
# =============================================================================
|
||
Thumbs.db
|
||
ehthumbs.db
|
||
desktop.ini
|
||
$RECYCLE.BIN/
|
||
.DS_Store
|
||
.AppleDouble
|
||
._*
|
||
*.lnk
|
||
|
||
|
||
# =============================================================================
|
||
# 9. 必须入库的文件(切勿加入忽略列表)
|
||
# =============================================================================
|
||
# CMakeLists.txt / main/CMakeLists.txt
|
||
# main/*.cpp main/*.hpp main/*.c main/*.h
|
||
# idf.ps1 构建入口(含非 ASCII 路径 workaround)
|
||
# partitions.csv 自定义分区表
|
||
# README.md 工程文档(移植要点与踩坑记录)
|
||
# .clangd 工程级 clangd 配置
|
||
# sdkconfig.defaults 可复现配置来源(由 idf.py save-defconfig 生成)
|
||
# .gitattributes 行尾(CRLF/LF)与文本/二进制归属策略
|
||
#
|
||
# 提醒:ESP-IDF 自身仓库的 .gitignore 会忽略 .clangd 和 .vscode/;
|
||
# 本工程故意保留 .clangd(它是为 clangd 去掉 -f*/-m* 的项目配置),
|
||
# 不要照抄 IDF 仓库的规则。
|
||
|
||
|
||
# =============================================================================
|
||
# 10. sdkconfig.defaults 与 sdkconfig 的关系(2026-10-14 核对并修复)
|
||
# =============================================================================
|
||
# 忽略 sdkconfig 的前提是 sdkconfig.defaults 存在且正确。核对时发现:
|
||
# * README「目录结构」里列的 sdkconfig.defaults 当时并不存在;
|
||
# * 当时的 sdkconfig(以及 build/config/sdkconfig.h)是
|
||
# CONFIG_PARTITION_TABLE_SINGLE_APP=y、CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y,
|
||
# 即用的是默认 single-app 分区表,partitions.csv 根本没有生效;
|
||
# * 而 README「实测验证结果」的 boot log 却是 4 MB flash + 2 MB factory 分区。
|
||
# 已按文档修正(4 MB flash + CONFIG_PARTITION_TABLE_CUSTOM=y)重新配置,
|
||
# 并用 `idf.py save-defconfig` 生成 sdkconfig.defaults,内容就是最小差异:
|
||
# CONFIG_IDF_TARGET="esp32c3"
|
||
# CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||
# CONFIG_PARTITION_TABLE_CUSTOM=y
|
||
# (CONFIG_PARTITION_TABLE_CUSTOM_FILENAME 的 Kconfig 默认值本来就是
|
||
# "partitions.csv",所以 save-defconfig 不会重复写入。)
|
||
#
|
||
# 维护规则:
|
||
# * 改配置请改 sdkconfig.defaults(或 menuconfig 后重跑 save-defconfig),
|
||
# 不要把 sdkconfig 提交进来;
|
||
# * 想确认「相对 IDF 默认值改了什么」:重跑 idf.py save-defconfig 再看 diff;
|
||
# * 构建日志里分区表应为 nvs 0x9000 / phy_init 0xf000 / factory 0x10000 2M,
|
||
# 否则说明 defaults 没生效或 partitions.csv 没被采用。
|
||
# =============================================================================
|