Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第4周 (2026-08-03 ~ 2026-08-07)

本周工作

1. SG2002 UART1/2 回环失败 — 时钟根因定位与修复

问题:UART1 (/dev/ttyS1) 和 UART2 (/dev/ttyS2) 回环测试,TX 发送 35 字节成功,RX 收到 0 字节。短接 A18/A19 已确认物理层连通。

根因

  • CLKGEN 的 CLK_EN_1 寄存器(offset 0x004)中 UART1/2 的 core clock 和 APB clock 未显式使能
  • RSTC 的 SOFT_RSTN_0(offset 0x000)中 UART1/2 复位位未释放
  • UART0 由 U-Boot 初始化所以正常工作,UART1/2 在内核里无人管

修复api/src/vfs/dev/tty_serial.rs):

  • 添加 CLKGEN_BASE (0x03002000) 和 RSTC_BASE (0x03003000) 常量
  • 添加 enable_uart1_clock_and_reset()enable_uart2_clock_and_reset() 函数
  • new_tty_s1()new_tty_s2() 开头调用
  • 编译通过(Rust nightly-2026-01-01, riscv64gc-unknown-none-elf),生成 boot.sd (1.55MB)

2. cpumask panic 修复

现象:板子启动后立即 panic:

panicked at cpumask-0.1.0/src/lib.rs:124:9:
assertion failed: index < SIZE

根因

  • axplat-riscv64-sg2002/src/init.rsaxplat::percpu::init_primary(0) 曾被注释掉
  • per-CPU 区域未初始化 → this_cpu_id() 返回垃圾值 → cpumask::CpuMask::one_shot() 硬断言失败
  • cpumask crate 更新后暴露了此问题(用的是硬断言 assert! 而非 debug_assert!,release 也会触发)

修复:取消注释 init_primary(0),重新编译。

3. 版本管理 — boot.sd 部署状态

修复版与旧版对比:

版本编译时间大小MD5状态
boot.sd(SD卡当前)8/6 11:481,549,772f45b0c8c...❌ 有 cpumask panic
boot.sd.v2(修复版)8/6 12:371,549,780b6909a12...✅ 待部署

SD 卡文件已整理备份,部署命令已准备:

sudo cp /mnt/sde1/boot.sd /mnt/sde1/boot.sd.bak_20260807
sudo cp /home/jiangyuyue/boot.sd.v2 /mnt/sde1/boot.sd
sync

4. 电机调试进展

  • PC 端 ESP32 直连验证:26/26 协议测试全部通过
    • INIT/CONFIG/SET_SPEED/STOP/BRAKE/RESET 全通
    • 编码器计数、ISR 触发、RPM 均正常
  • 结论:ESP32 固件 100% 正常,问题在 SG2002 ↔ ESP32 的 UART 通信链路

5. Windows 平台适配

  • motor_debug.py 双平台重写(pyserial + termios 兜底)
  • motor_driver.py Windows 适配完成
  • uart_loopback.py 板端回环诊断脚本新增

当前状态总览

组件PC端SG2002板端
ESP32 + 电机✅ 26/26 全通🔴 UART 待验证
UART 时钟修复🔴 已改待测
cpumask panic🔴 修复版待部署
TPU 管线✅ 5.2fps
Camera✅ 100ms 稳定
Servo✅ 驱动就绪

下周计划

  • SD 卡部署 boot.sd.v2,验证 cpumask panic 已修复
  • 短接 A18/A19 跑 UART1/2 回环测试,确认时钟修复生效
  • 回环通过后接回 ESP32 验证电机通信
  • 全管线联调(Camera → TPU → 电机/舵机)