一般rt-thread 发布的 bsp 库默认的 rt_kprintf 函数的输出设备是串口1,想要更改输出设备为串口1,以 stm32 为例步骤如下: 首先,打开 UART2 设备 其次,在 menuconfig 中 RT-Thread Kernel --- Kernel Device Object --- Using console for rt_kprintf 修改 the device name for console 的值为 uart2 最后...
调试界面如下。 这个第一个this board.c---rt_printfKKKKKKKKK!!! ,先打印这个主要是因为在board.c的初始化函数中,定义了这个语句,说明先执行这里。 然后,打印rt的版本信息。这个在一步步执行了这个函数。 如果在maiin函数中,用rt-kprintf输出一些信息,那么会延时1000ms就是1s进不断打印,main作为一个线程。 然...
rt_kprintf,采用不依赖标准C库的方式,主要目的是为了减少ROM(Flash)的占用 如果实际中需要浮点打印(如打印到串口、打印到文件),可以基于vsnprintf编写一个简单的全功能格式打印函数 RT-Thread ulog可以开启浮点支持,开启后使用:vsnprintf
我们在串口中再次输入'a',这次断点打在rt_serial_write()函数上,由于shell是对每输入个字符都要交互处理,所以这里触发了 rt_printf->rt_device()->write()->rt_serial_write(). 至此,RT-Thread串口驱动及其完整工作过程全部解析完成,才疏学浅,有任何不足或错误的地方,欢迎批评指正!
rtprintf("memory bandwidth: %s\n", buf); 64位长整型打印 官方的 RTT 支持64位的长整型打印,不过这个功能默认没有打开,可以通过如下方式启用: /* 修改 /path/to/rt-thread/src/kservice.c,在头部添加如下宏定义 */ #define RT_PRINTF_LONGLONG...
RT- printf !学习学习!
注释 kservice.c 中的 rt_vsnprintf 重新编译并运行rt_kprintf 和LOG_I,浮点数打印正常 原作者:...
通常情况下,开发调试使用硬件调试器和printf日志来显示。但在某些情况下,这两种方法并不是很有用,因为它是从运行的内容中抽象出来的,而且它们可能很难解析。不过 RT-Thread 是一个多线程系统,当你想知道一个正在运行的线程的状态,或者手动控制系统的当前状态时,这很有帮助。因为它是多线程的,所以你能够拥有一个交...
#include<stdio.h>intmain(void){printf("_DATE_ is:%s\r\n",__DATE__);printf("_TIME_ is:%s\r\n",__TIME__);return0;} 编译运行,测试结果如下: RT-Thread的源码实现如下,是不是用__DATE__这个宏定义实现: 代码语言:javascript 复制 ...
vsnprintf只是用于把浮点格式化到字符串,只要字符串长度不溢出,理论上不会造成死机 如果发现死机,需要确认打印的环境,如中断中,尤其在串口输出的情况下 测试例程 RT-Thread Studioarm-none-eabi-gcc环境:未发现死机现象 Keil MDK5 环境:未发现死机现象 cygwin gcc 环境:未发现死机现象 ...