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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions