RT-Thread 浮点打印和64位长整型打印

浮点打印

官方的 RT-Thread (后面简称 RTT )不支持浮点打印,毕竟相当一部分 MCU 甚至连浮点指令都不支持,如果在调试过程中需要用到浮点打印,可以通过如下步骤实现:

Step1: 把 libc 从nano版本切换到标准版本:

# 修改 BSP 主目录下的 rtconfig.py,例如:bsp/rockchip/rk2108/rtconfig.py

    # 删掉 LFLAGS 中 ‘--specs=nano.specs’ 的标志,具体如下:

    # LFLAGS = DEVICE + ' -lm -lgcc -lc' + ' --specs=nano.specs -nostartfiles -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler '

    LFLAGS = DEVICE + ' -lm -lgcc -lc' + ' -nostartfiles -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler '

Step2: 用 sprintf 函数把浮点输出到字符串,再通过 rtprintf 打印:

   float mem_bw;

    uint32_t time_ms;

    uint32_t bytes;

    char buf[16];

    mem_bw = ((bytes * 1.0) / time_ms) * 1000;

    sprintf(buf, "%.4f", mem_bw);

    rtprintf("memory bandwidth: %s\n", buf);



64位长整型打印

  官方的 RTT 支持64位的长整型打印,不过这个功能默认没有打开,可以通过如下方式启用:

/* 修改 /path/to/rt-thread/src/kservice.c,在头部添加如下宏定义 */

#define RT_PRINTF_LONGLONG

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容