用途:对 BVR 机器人外围控制所用两类 MCU 的 Rust 固件做代码评审,RP2350(Pico 2 W)负责 LED 控制器与 USB 外设,ESP32-S3(Heltec)负责工具附件、LoRa 通信与 OLED 显示;两者均为 no_std、受硬件运行时与内存限制。代码位于 mcu/bins/rp2350、mcu/bins/esp32s3 与 mcu/crates 下的 mcu-core、mcu-leds 等库。
主要能力:按平台核对关键模式。RP2350 使用 Embassy 异步(#[embassy_executor::main]、Spawner 派生任务、bind_interrupts!),无堆分配,只能用 StaticCell 固定缓冲与静态通道;WS2812 由 PIO 状态机驱动(注意 GRB 顺序、时钟分频、DMA 与 >50µs 复位);USB CDC-ACM 通过 awaited 读写。ESP32-S3 使用 #[main] 轮询循环,以 read_ready() 做非阻塞 UART 读并 delay_millis 计时;可用 esp_alloc 堆但应仅用于初始化与低频路径;WS2811/WS2812 用 RMT(注意时序与 64 项上限);SSD1306 OLED 走 I2C。共享部分包括 CAN 附件协议(ID 0x200–0x2FF,BASE+SLOT*0x10+OFFSET,8 类消息、1Hz 心跳)与 SLCAN 桥(t/T 帧、O/C/S/V/N 命令,\r 结尾)。
适用场景:评审上述固件中阻塞调用出现在异步上下文、堆类型误用、缓冲无界、LED 字节序或时序错误、SLCAN 解析校验缺失、内存余量不足等问题。
限制:资料仅给出评审要点与示例模式,未提供安装方式、版本要求、收费或效果数据;具体项目结构与内存数值以给出内容为限,其余暂未提供。