「ESP32 矿机固件深度解析」第 1/15 篇
从入口函数看系统边界
PSRAM 检查I2C 初始化并保持 ASIC ResetADC、NVS、eFuse 身份初始化识别设备型号和硬件版本自检/量产模式分流Wi-Fi、云端客户端、显示和电源外设电源管理、运行时诊断、REST、TCP、BAP等待网络ASIC 初始化Stratum、作业生成、ASIC 收发、算力统计任务
GlobalState:便利的共享上下文
控制平面与数据平面
矿池 JSON -> mining_notify -> bm_job -> ASIC UARTASIC Nonce -> 难度计算 -> mining.submit
NVS/REST/BAP -> 频率、电压、风扇、矿池参数传感器/PMBus -> 热控、故障系统、Web 状态、量产判定OTA -> 停止挖矿、关闭电源、写分区、切换启动分区
任务优先级透露出的实时需求
架构亮点与改进方向
-
为共享状态建立单写者和快照约定,避免靠“通常不会同时发生”维持正确性。
-
把启动流程显式建模为状态机,替代散落的布尔量和等待循环。
-
建立统一资源生命周期:任务创建、队列初始化、睡眠退出和恢复重建应成对出现。