You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32MP157a自定义开发板Yocto项目启动异常排查求助

问题

手上有一块基于STM32MP157a芯片的本地厂商自定义开发板(非ST官方开发板),学习Yocto项目时,基于基础Yocto编译了core-image-full-cmdline镜像,在local.conf中设置machine为stm32mp1,按教程烧录镜像到SD卡(分区确认无误),但启动时卡在U-Boot阶段,日志如下:

NOTICE:  CPU: STM32MP157AAC Rev.B
  NOTICE:  Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
  INFO:    PMIC version = 0x21            
  INFO:    Reset reason (0x15):           
  INFO:      Power-on Reset (rst_por)     
  INFO:    FCONF: Reading TB_FW firmware configuration file from: 0x2ffe2000
  INFO:    FCONF: Reading firmware configuration information for: stm32mp_io
  INFO:    Using SDMMC                    
  INFO:      Instance 1                   
  INFO:    Boot used partition fsbl1      
  NOTICE:  BL2: v2.6-stm32mp1-r2.0(debug):v2.6-dirty(a1f02f4f)
  NOTICE:  BL2: Built : 13:14:26, Nov 23 2021
  INFO:    BL2: Doing platform setup
  INFO:    RAM: DDR3-DDR3L 16bits 533000kHz
  INFO:    Memory size = 0x20000000 (512 MB)
  INFO:    BL2: Loading image id 1
  INFO:    Loading image id=1 at address 0x2ffff000
  INFO:    Image id=1 loaded: 0x2ffff000 - 0x2ffff226
  INFO:    FCONF: Reading FW_CONFIG firmware configuration file from: 0x2ffff000
  INFO:    FCONF: Reading firmware configuration information for: dyn_cfg
  INFO:    FCONF: Reading firmware configuration information for: stm32mp1_firewall
  INFO:    BL2: Loading image id 4
  INFO:    Loading image id=4 at address 0x2ffc5000
  INFO:    Image id=4 loaded: 0x2ffc5000 - 0x2ffd9820
  INFO:    BL2: Skip loading image id 8
  INFO:    BL2: Skip loading image id 9
  INFO:    BL2: Loading image id 2
  INFO:    Loading image id=2 at address 0xc0500000
  INFO:    Image id=2 loaded: 0xc0500000 - 0xc051cdf8
  INFO:    BL2: Loading image id 16
  INFO:    Loading image id=16 at address 0x2ffc0000
  INFO:    Image id=16 loaded: 0x2ffc0000 - 0x2ffc44d2
  INFO:    BL2: Loading image id 5
  INFO:    Loading image id=5 at address 0xc0100000
  INFO:    Image id=5 loaded: 0xc0100000 - 0xc01ece88
  NOTICE:  BL2: Booting BL32
  INFO:    Entry point address = 0x2ffc5000
  INFO:    SPSR = 0x1d3
  NOTICE:  SP_MIN: v2.6-stm32mp1-r2.0(debug):v2.6-dirty(a1f02f4f)
  NOTICE:  SP_MIN: Built : 13:14:26, Nov 23 2021
  INFO:    ARM GICv2 driver initialized
  INFO:    Set calibration timer to 60 sec
  INFO:    stm32mp1 IWDG1 is secure
  INFO:    ETZPC: CRYP1 (9) could be non secure
  INFO:    SP_MIN: Initializing runtime services
  INFO:    SP_MIN: Preparing exit to normal world


  U-Boot 2021.10-stm32mp-r2 (Oct 04 2021 - 15:09:26 +0000)

  CPU: STM32MP157AAC Rev.B
  Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
  Board: stm32mp1 in trusted mode (st,stm32mp157a-dk1)
  DRAM:  512 MiB
  Clocks:
  - MPU : 650 MHz
  - MCU : 208.878 MHz
  - AXI : 266.500 MHz
  - PER : 24 MHz
  - DDR : 533 MHz
  WDT:   Started with servicing (32s timeout)
  NAND:  0 MiB
  MMC:   STM32 SD/MMC: 0
  Loading Environment from MMC... *** Warning - bad CRC, using default environment

  In:    serial
  Out:   serial
  Err:   serial
  Previous ADC measurements was not the one expected, retry in 20ms
  **************************************************** 
  * ERROR USB TYPE-C connection in unattached mode   *
  * Check that USB TYPE-C cable is correctly plugged *
  *     Current too low, use a 3A power supply!      *
  ****************************************************

想知道问题出在哪里,遗漏了哪些步骤,是否需要为自定义板开发专属BSP才能正常运行?

分析与解决建议
  • 核心问题:复用了官方开发板的硬件配置
    日志显示BL2和U-Boot均识别当前板为STM32MP157A-DK1 Discovery Board,但你的自定义板在电源电路、外设布局等硬件设计上和官方板存在差异,直接使用官方stm32mp1机器配置必然出现兼容性问题。

  • 当前启动卡住的直接原因:电源检测逻辑不匹配
    日志末尾的USB Type-C供电报错,是因为U-Boot的电源检测逻辑是针对DK1开发板设计的,自定义板的电源电路(比如供电能力、ADC采样参数)与官方板不同,导致U-Boot误判供电异常,进而中断启动流程。

  • 必须补充的关键步骤

    1. 优先获取厂商提供的适配BSP:联系本地厂商索要该自定义板的Yocto BSP层,里面包含适配好的U-Boot、TF-A(BL2/BL32)配置及设备树,这是最快解决问题的方式。
    2. 无厂商支持时自行适配BSP:
      • 基于官方meta-st-stm32mp层,创建自定义机器配置(例如命名为stm32mp1-custom);
      • 修改U-Boot和TF-A的板级配置,适配自定义板的DDR参数、电源检测逻辑、外设引脚等硬件参数;
      • 编写或修改设备树文件,匹配自定义板的硬件布局;
      • 在local.conf中设置MACHINE = "stm32mp1-custom"后重新编译镜像。
    3. 临时调试方案(仅验证启动):若需快速验证系统能否启动,可修改U-Boot源码,注释掉USB Type-C供电检测的报错逻辑,重新编译U-Boot并烧录,但这只是临时 workaround,长期必须完成硬件适配。
  • 结论:自定义板必须使用适配的专属BSP才能正常运行,直接复用官方开发板的配置无法兼容硬件差异。

内容的提问来源于stack exchange,提问作者radium88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 20:23:15