做小项目时我以前的习惯是:灯不亮、协议不对、状态机要改,就回去改 C,全量编译再擦写。板子在架子上、下载器要重新夹的时候,一轮就好几分钟,思路也断了。后来改成两层。底座固件只保留启动、联网和一块能跑脚本的运行时,烧一次。会经常改的部分,比如采集周期、阈值、简单的状态跳转,放到脚本里。我在 ESP32 上用的是 Lua,电脑侧一个 Agent 通过局域网 HTTP 把脚本发下去,几秒就能换一套行为,不用按 BOOT。这样拆有几个好处。现场改阈值不用重编。同一块板子可以上午当采集节点,下午换成一个小控制器。脚本出错通常是软重启,不容易把分区表写花。当然不是什么都该脚本化。时序很紧的中断、DMA、加密启动还是留在 C 里,脚本只拿业务。另外分区表要和 Flash 容量一致,下发接口只开在自己的局域网。这套我收成了 OnlyClaws,感兴趣可以搜 onlyclaws.world,看看是不是你的菜。
