这一块代码本来就写好了、根 README 里也按"已实现"描述,但一直没有进仓库, 只存在于工作区里。同一个提交里带上 `.env.example` 的两个新变量(ARMOR_TEAM、 ARMOR_THRESHOLD)——它们的说明文字就是为这套固件写的。 内容: - armor-protocol:规则层(血量、每板独立 50ms 受击冷却、受击后只有那一路灯带全黑、 按键 FSM、上报编码)。纯计算,主机上 22 个测试,已跑通。 - armor-firmware:四路压电片 ADC 连续采样、四路 WS2812(C3 只有一个 RMT 通道可用, 靠 rmt_tx_switch_gpio 轮流驱动)、NVS、BOOT 键、WiFi + UDP 广播。 - scripts:build_armor.sh / flash_armor.sh / armor_probe.py(不开界面单看广播)。 armor/ 是独立 workspace(目标 RISC-V 的 ESP32-C3),与外层 Xtensa 的图传固件互不相干, 各自 .cargo/config.toml 就是这条边界。构建产物由根 .gitignore 的 `/armor/target/` 覆盖, 本次没有把任何 target/ 或 build/ 下的东西加进来。 顺带把 `.DS_Store` 加进 .gitignore。
31 lines
1.3 KiB
Plaintext
31 lines
1.3 KiB
Plaintext
# 构建产物。
|
||
#
|
||
# 每一行都必要:根目录是 firmware crate,protocol/ 也是独立的 crate(有自己的
|
||
# .cargo/config.toml 与 target 目录),armor/ 是一套独立 workspace(协议层 +
|
||
# ESP32-C3 固件),同理。所以只写 `target/` 匹配不到它们。
|
||
#
|
||
# 全部锚定在根目录(前置 /),这是有意的:components/esp32-camera/target/ 看着
|
||
# 像构建产物,其实是上游组件的**按芯片分目录**(esp32/ esp32s2/ esp32s3/ …),
|
||
# 里面是 ll_cam.c 等源码,包含本项目打的补丁。不要把它一起忽略掉。
|
||
#
|
||
# desktop/ 自己还有一份 .gitignore(node_modules、dist、三个 crate 的 target)。
|
||
/target/
|
||
/protocol/target/
|
||
/armor/target/
|
||
|
||
# 本机专属的 cargo 注册表缓存。
|
||
#
|
||
# 这个仓库所在的目录树在 DSH 的文件沙箱里可写,而 ~/.cargo 不可写,所以 desktop/ 的
|
||
# 构建把 CARGO_HOME 指到了这里(里面是从 ~/.cargo 搬过来的 crates 缓存)。它是几 GB 的
|
||
# 机器状态,不是项目的一部分。
|
||
/.cargo-home/
|
||
|
||
# WiFi 凭据,编译期由 env! 读取。不要提交。
|
||
.env
|
||
|
||
# pnpm 在本机把 store 落在了工作区里(沙箱下 HOME 里的 store 不可写)。
|
||
/.pnpm-store/
|
||
|
||
# macOS 的目录元数据。不锚定,子目录里的也一起忽略。
|
||
.DS_Store
|