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

向内核设备树添加新UART传感器遇DTS编译错误求助

解决STM32MP13 UART8子节点DTS编译错误

首先你提供的DTS代码存在语法错误,这是编译失败的直接原因:

  • sensor节点内的status = "okay"行末尾缺少分号
  • sensor节点末尾缺少分号

修正后的DTS代码如下:

&uart8 {
    pinctrl-names = "default", "sleep", "idle";
    pinctrl-0 = <&uart8_pins_a>;
    pinctrl-1 = <&uart8_sleep_pins_a>;
    pinctrl-2 = <&uart8_idle_pins_a>;
    /delete-property/dmas;
    /delete-property/dma-names;
    status = "okay";
    sensor: sensor@0 {
        compatible = "vendor,sensor";
        status = "okay";
        current-speed = <115200>;
    };
};

除语法问题外,还需排查以下关键点:

  • 引脚配置节点有效性:确认uart8_pins_a、uart8_sleep_pins_a、uart8_idle_pins_a这些引脚节点在STM32MP13官方DTSI文件(如stm32mp13xx-pinctrl.dtsi)中存在,若不存在需自行定义正确的引脚复用配置。
  • compatible字符串匹配:内核驱动的of_match_table必须与DTS中的"vendor,sensor"完全一致(包括大小写、格式),否则驱动无法识别设备节点。
  • Yocto构建配置:确保修改的DTS文件是Yocto构建流程中加载的目标文件,比如确认在meta-st-stm32mp层对应板卡的配置中已指定该DTS,或自定义DTS已正确添加到构建项。
  • 属性合法性:检查current-speed是否是你的传感器驱动支持的属性,部分UART子设备可能使用baud-rate而非current-speed,需根据驱动逻辑调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:57:11