Skip to content

[Bug] STM32 BSP 模板目录下 Kconfig 的 RTT_DIR 路径无法正确解析 #11341

@moment-NEW

Description

@moment-NEW

RT-Thread Version

Latest

Hardware Type/Architectures

/

Develop Toolchain

Other

Describe the bug

问题描述

STM32 BSP 模板目录下的 Kconfig 文件中,RTT_DIR 设置为 ../../..(向上 3 级),这在正常 BSP 目录下可以正确工作,但如果用户直接在模板目录下运行 menuconfig,会报错找不到 Kconfig 文件。

错误信息

menuconfig: Kconfig:9: '../../../Kconfig' not found (in 'source "$(RTT_DIR)/Kconfig"').
Check that environment variables are set correctly

原因分析

目录结构对比:

目录位置 向上 3 级 (../../..) 结果
正常 BSP (bsp/stm32/stm32h7xx-myboard/) ✓ 到达 rt-thread/ 根目录
模板目录 (bsp/stm32/libraries/templates/stm32h7xx/) ✗ 只到达 bsp/stm32/,缺少一层

模板目录比正常 BSP 多了一层 libraries/templates/,导致相对路径计算错误。

建议解决方案

使用 osource(optional source)语句尝试多个路径,按优先级排列:

mainmenu "RT-Thread Configuration"

BSP_DIR := .

PKGS_DIR := packages

# 优先尝试模板路径(向上 4 级),如果不存在则尝试正常 BSP 路径(向上 3 级)

osource "../../../../../Kconfig"  
osource "../../../Kconfig"  

osource "$PKGS_DIR/Kconfig"  
rsource "../libraries/Kconfig"  

if !RT_USING_NANO  
rsource "board/Kconfig"  
endif

优点:

模板目录和正常 BSP 目录都能正确工作
无需用户手动修改路径
不依赖环境变量

影响范围

所有 STM32 BSP 模板目录:

  • bsp/stm32/libraries/templates/stm32f10x/
  • bsp/stm32/libraries/templates/stm32f4xx/
  • bsp/stm32/libraries/templates/stm32h7xx/
    等其他系列模板...

相关文档

《STM32系列BSP制作教程》中未提及此问题,导致制作者(我)很困惑。

Other additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions