Zephyr杂谈

捣鼓记录

Posted by BY moment on June 20, 2026

屎?!

zpehyr的D:\CODES\Zephyr\zephyr\drivers\clock_control\clock_stm32_ll_h7.c 有个自动配置VOS(电源配置)等级的函数,但是它没完全实现,默认拉起就是VOS0(最高级电源)

烧录过程中遇到过的问题:

比较懒,就用AI总结了 目前遇到的问题

  • west 初始不可用:当前终端一开始找不到 west,后来确认是用 Activate.ps1 或直接调用 west.exe
  • 工具链环境未自动就绪:激活 .venv 只解决 west/python不会自动设置 ZEPHYR_TOOLCHAIN_VARIANTGNUARMEMB_TOOLCHAIN_PATH
  • 自定义板 build 本身没问题:apps/base_frame/CMakeLists.txt:3 已追加 BOARD_ROOT,板级文件也能被识别,west build 成功过
  • 一开始缺少 board.cmake:导致只有 build 能用,west flash/debug 缺少板级 runner 配置入口
  • 加完 board.cmake 后旧构建目录没更新:因为 board.cmake 属于 CMake 配置输入,必须 west build -p always ... 才会重新生成 runners.yaml
  • 重新 pristine build 时又报工具链错误:因为那次只激活了 .venv,没设 ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb,Zephyr 转而去找未安装的 Zephyr SDK
  • pyocd 第一次失败是目标名不对:stm32h723zg 不被本机 pyocd 识别,实际支持的是 stm32h723xx
  • 修正目标名后 pyocd 仍失败:探针能识别、SWD 能连上、目标也能识别,但卡在 safe_reset_and_halt
  • 详细日志显示失败点在复位链路:DP IDR = 0x6ba02477 正常,但 pyOCDSTM32H723xx 目标类在 safe_reset_and_halt() 里要求 is_reset_asserted() 成立,当前 DAPLink/CMSIS-DAP 这一步不满足
  • 目前的实际结论:Zephyr runner 配置已基本打通,剩下的主要问题是 pyocd + DAPLink + STM32H723 的复位/接管兼容性,不是普通的 build 配置问题