Rockchip · AI & Linux Hub

硬件接口

Rockchip RT-Thread UART 开发指南:串口、termios 测试与控制台

Rockchip RT-Thread UART 开发指南:串口、termios 测试与控制台 — V1.2.0, lts-v3.1.x / lts-v4.1.x

· ArmSoM Editorial · Rockchip source documentation · 2 分钟阅读

完整整理中文 RK-KF-YF-90 V1.2.0 第5–7页。原稿产品表标all,RT-Thread为lts-v3.1.x/master与lts-v4.1.x/master;示例驱动路径为rockchip-pisces,不能由all推断全部ArmSoM板卡已支持。作为平台参考,核对具体SoC/BSP、UART引脚、电压、时钟树与console占用;本篇不是Linux串口驱动说明。仅中文原稿,无独立技术图,四语保留全部代码。未运行串口或硬件测试。

原稿配置仅勾选UART0和UART2,但list_device例子列出uart0–uart7;它们是不同示例,不能据此保证同一配置下生成全部设备。最高4M/部分8M与1.5M以上需实测的说法同时保留,原稿未明确恰好1.5M的边界。

ArmSoM Docs · RT-Thread

1. Rockchip UART 功能特点

UART (Universal Asynchronous Receiver/Transmitter):

  • 兼容16550A。
  • 部分串口支持硬件自动流控,部分不支持,详见数据手册。
  • 支持中断传输与DMA传输模式。
  • 最高支持4M波特率,部分支持8M,详见数据手册。
  • 部分芯片支持硬件RS485,详见数据手册。

2. 软件

2.1 代码路径

串口框架:

components/drivers/include/drivers/serial.h
components/drivers/serial/serial.c 设备驱动
components/libc/termios/posix_termios.c 类似linux的tty配置
components/libc/termios/posix_termios.h

串口驱动适配层:

bsp/rockchip-pisces/drivers/drv_uart.c
bsp/rockchip-pisces/drivers/drv_uart.h

串口测试命令,串口用户程序完全可以参照以下驱动:

bsp/rockchip-common/tests/termios_test.c

2.2 配置

打开串口配置,同时会生成/dev/uart0..9设备。

RT-Thread rockchip RKxxxx drivers  --->
    [*] Enable UART
    [*]   Enable UART0
    [ ]   Enable UART1
    [*]   Enable UART2
    [ ]   Enable UART3
    [ ]   Enable UART4
    [ ]   Enable UART5
    [ ]   Enable UART6
    [ ]   Enable UART7
    [ ]   Enable UART8
    [ ]   Enable UART9

执行命令可以看到已经生成的串口设备:

msh >list_device
device         type         ref count
------ -------------------- ----------
uart7  Character Device     0
uart6  Character Device     0
uart5  Character Device     0
uart4  Character Device     2
uart3  Character Device     0
uart2  Character Device     0
uart1  Character Device     0
uart0  Character Device     0

2.3 串口测试

使能串口测试程序:

lts-v3.1.x:
RT-Thread Components  --->
    Device virtual file system  --->
        [*] Using device virtual file system
        -*- Using devfs for device objects
    POSIX layer and C standard library  --->
        [*] Enable termios feature

RT-Thread bsp test case  --->
    RT-Thread Common Test case  --->
        [*] Enable BSP Common TEST
            [*]   Enable BSP Common UART TEST

lts-v4.1.x:
RT-Thread Components  --->
    [*] DFS: device virtual file system  --->
        [*]   Using devfs for device objects
    C/C++ and POSIX layer  --->
        POSIX (Portable Operating System Interface) layer  --->
           [*] Enable POSIX file system and I/O
               [*]   Enable I/O Multiplexing select() <sys/select.h>
               [*]   Enable Terminal I/O <termios.h>

RT-Thread bsp test case  --->
    RT-Thread Common Test case  --->
        [*] Enable BSP Common TEST
            [*]   Enable BSP Common UART TEST

串口测试命令:

receive data:
termtest r /dev/uart4 115200
send data:
termtest s /dev/uart4 115200
receive then send:
termtest t /dev/uart4 115200
externel loopback:
termtest l /dev/uart4 115200

2.4 波特率支持

1.5M以下的波特率都可以支持,1.5M以上的波特率需要实际测试看支不支持,因为这跟CLK 时钟树有关。

2.5 console配置

RT-Thread Kernel  --->
    Kernel Device Object  --->
    [*] Using console for rt_kprintf
        (128) the buffer size for console log printf
        (uart2) the device name for console

浏览此主题 → · 入门路线 →