RT-Thread论坛
直播中

李凤津

8年用户 1063经验值
私信 关注
[问答]

想在bsp工程打印浮点数,结果找不到rt_vsnprintf_full软件包,怎么解决?

想在bsp工程打印浮点数,结果找不到rt_vsnprintf_full软件包

问题复现
使用env-windows-v2.0.0
执行pkgs --upgrade
打开menuconfig找不到rt_vsnprintf_full软件包
使用/搜索找到软件包但显示红色,不能操作,有没有大佬知道是什么原因,怎么解决

1.png

回帖(1)

刘艳

2025-6-19 18:03:28

在 RT-Thread 的 BSP 工程中打印浮点数时,遇到 rt_vsnprintf_full 软件包不可用的问题,通常是因为 该软件包已被废弃,其功能已整合到 RT-Thread 内核中。以下是解决方案:




方法 1:开启内核浮点数打印支持(推荐)




  1. 进入内核配置

    env 工具中执行 menuconfig,导航到以下路径:  


    RT-Thread Kernel → Kernel Device → Enable printf functions → [*] Enable printf float functions




  2. 保存配置

    按空格键勾选 Enable printf float functions,保存配置并退出 menuconfig




  3. 编译工程

    重新生成项目(scons --target=...)并编译。此时 rt_kprintfrt_snprintf 等函数已支持浮点数格式(如 %f)。






方法 2:手动修改配置文件(备选)


如果 menuconfig 中无此选项,需手动修改 rtconfig.h



  1. 在工程根目录下的 rtconfig.h 文件中添加:
    #define RT_PRINTF_USING_FLOAT

  2. 重新编译工程。




补充说明




  1. rt_vsnprintf_full 已废弃

    该软件包仅存在于旧版 RT-Thread(如 v3.x),在新版内核中已集成浮点数支持,不再需要额外软件包




  2. 确认内核版本

    执行 pkgs --update 更新软件包索引后,若仍无 rt_vsnprintf_full,说明当前内核版本(可能 ≥ v4.0.0)已内置支持。




  3. 资源占用提醒

    开启浮点数打印会增加 Flash 占用(约 10KB),若资源紧张,建议减少浮点数使用。






通过上述任一方法,即可在 BSP 工程中正常打印浮点数。推荐优先使用 方法 1(内核配置选项),无需额外软件包。

举报

更多回帖

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