嘉楠科技
直播中

王晾其

9年用户 1106经验值
私信 关注
[问答]

想在rtsmart中使用uart2,是不是只能通过修改设备树方法来实现uart2的复用呀?

我想在rtsmart中使用uart2,是不是只能通过修改设备树方法来实现uart2的复用呀?
修改设备树后如何只编译设备树文件?
编译生成的文件可以直接替换到庐山派里吗,具体替换路径在哪里呀?

回帖(1)

吴凡

2025-6-26 17:50:36

在 RT-Thread Smart (rtsmart) 中使用 UART2 确实需要通过修改设备树实现引脚复用,因为 UART2 的引脚可能默认被分配给其他功能(如 GPIO、SPI 等)。以下是完整解决方案:




1. 修改设备树配置




  • 步骤



    1. 找到设备树文件(通常位于 BSP 目录下,如 rtt-smart/bsp/你的板子型号/board/board.dts)。

    2. 添加 UART2 节点并启用引脚复用:

      /* 在 pinctrl 节点中配置引脚复用 */
      &pinctrl {
      uart2_pins: uart2-pins {
          rockchip,pins = <引脚编号>; /* 替换为 UART2 的实际引脚号(需查手册)*/
      };
      };


    / 启用 UART2 /
    &uart2 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&uart2_pins>;
    };



    **关键点**:
    - 引脚号需参考芯片手册(如 Rockchip RK3566),例如 UART2_TX 对应 `GPIO1_C1`。
    - 确保配置的引脚未被其他功能占用。





2. 单独编译设备树



  • 命令
    cd rtt-smart/bsp/你的板子型号  # 进入 BSP 目录
    scons --dtb=board.dtb          # 仅编译设备树

  • 输出文件:board.dtb(位于 bsp/你的板子型号 目录下)。




3. 替换庐山派的设备树文件



  • 替换路径

    • 庐山派默认设备树路径: /boot/board.dtb(或 /boot/dtbs/rockchip/ 下以具体板子命名的 dtb 文件)。


  • 操作步骤

    1. 将生成的 board.dtb 复制到庐山派的 /boot/ 目录:
      adb push board.dtb /boot/     # 通过 ADB 传输
      # 或挂载 SD 卡直接替换

    2. 重启系统:设备树在启动时加载。





4. 验证 UART2 是否生效



  • 检查设备节点

    • 系统启动后,在 RT-Thread 终端运行:
      ls /dev/uart*      # 查看是否有 /dev/uart2

    • 使用测试命令:
      echo hello > /dev/uart2  # 发送数据
      cat /dev/uart2           # 接收数据(需连接串口线验证)





注意事项



  1. 备份原设备树:替换前备份 /boot/board.dtb,以防配置错误导致系统无法启动。

  2. 引脚冲突

    • 确认 UART2 引脚未用于 SD 卡、以太网等关键功能。

    • 修改后若系统无法启动,需通过串口调试或恢复备份。


  3. 庐山派特定路径

    • 不同固件可能使用不同路径(如 /boot/dtbs/rockchip/rk3566-lubancat-2.dtb),需以实际文件名为准。





通过以上步骤即可在 RT-Thread Smart 中启用 UART2。如遇到启动失败,请检查设备树语法和引脚配置是否正确。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分