云计算百科
云计算领域专业知识百科平台

RT-Thread 控制台输出选择:RTT 与 UART 配置

第 1.1 步:先选择 RTT(后期根据需要可以选择 UART 的指定串口)

第 2.1 步:选中 SEGGER RTT

第 2.2 步:选中开始选择版本(一般选择 1.1.0 版本,最新版本有可能下载不了)

第 3 步:选择 RT_USING_SERIAL_V1(为什么选择 V1 或 V2 看下面的注释说明)

贴合你当前 JLink Console 的场景

  • ✅ 调度前就能初始化,开机 logo、早期内核日志全部能打出来 V2 先天限制:只能调度起来之后初始化,开头一段日志直接丢,调试的时候少了最关键的启动阶段信息,排查硬启动、时钟、内存初始化问题很难受。
  • ✅ 老驱动成熟、坑最少 绝大多数 GD32 / AT32 / STM32 的 drv_usart 原生就是 V1,不用改驱动,切过去直接跑,不会出现注册失败、编译报错。
  • ✅ 只做打印、Finsh,V1 的短板对你几乎无影响 V1 的缺点:没有 TX 环形缓冲区,高速连续发送容易丢。但控制台本来就是人看的,打印速率不高、不会猛发大数据,丢包概率极低,日常调试完全够用。
  • ✅ 初始化代码简单:INIT_BOARD_EXPORT 放初始化函数,就是你注释里说的用法。
  • 什么时候才选 V2?

    满足下面任意一条,再考虑 V2:

    • 这个串口不是单纯调试打印,是业务串口:4G 模块 AT、Modbus、和外设通信,要求连续收发不丢包;
    • 需要 Linux 风格 tty 终端、termios 控制;
    • 项目长期维护,后续要上大量串口业务,统一新框架。

    V2 的代价:日志断头 + 驱动必须是 V2 版本,很多 BSP 要改驱动,凭空多工作量。

    极简选型口诀

    只调试打印、要看开机日志、不想改驱动 → V1;串口用来业务通信、要稳定 DMA 收发 → V2

    选择 V1 后,在 board.c 里面对应的宏定义如下:

    extern int rt_hw_jlink_console_init(void);

    #ifdef RT_USING_SERIAL_V1
    /* 调度前初始化,拿到早期开机日志 */
    INIT_BOARD_EXPORT(rt_hw_jlink_console_init);
    #endif

    #ifdef RT_USING_SERIAL_V2
    /* 调度后初始化,早期日志丢失 */
    INIT_APP_EXPORT(rt_hw_jlink_console_init);
    #endif

    上面的三大步设置完毕后,退出保存,开始执行:

    • pkgs –upgrade:更新软件包管理相关配置。

    • pkgs –update:获取配置所需的软件包。

    • scons –target=mdk5:生成工程命令。

    • 重新生成:改完 menuconfig 或 rtconfig.h 后,建议先 scons -c 清理,再执行生成命令,保证工程与配置同步。

    • 成功配置如下:

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » RT-Thread 控制台输出选择:RTT 与 UART 配置
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!