我正在与Contiki一起使用rpl-collect示例。我正在尝试打印调试消息,打印rpl的启动和DAG的格式。
我通过将宏DEBUG_NONE
更改为DEBUG_PRINT
启用了调试打印,但是它拒绝编译,因为它将打印过多,并且天空尘土没有足够的内存。
我将宏更改为DEBUG_ANNOTATE
,虽然我不知道它是如何工作的,但它启用了某些打印。我确实发现使用printf
而不是PRINTF
也会启用打印输出,因此我对此进行了管理。
我面临的问题是我无法打印任何PRINT6ADDR
语句,有没有办法做到这一点?
由于打印输出太多,我想知道是否可以通过Contiki中的coffee文件系统写入文件?
[如果有人能对这段代码中的宏DEBUG_ANNOTATE
的参数及其最佳操作方式有所了解,我也将不胜感激:
#if (DEBUG) & DEBUG_ANNOTATE
#include <stdio.h>
#ifdef __AVR__
#include <avr/pgmspace.h>
#define ANNOTATE(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
#else
#define ANNOTATE(...) printf(__VA_ARGS__)
#endif
#else
#define ANNOTATE(...)
#endif
Sky mote由于内存有限,无法处理大量日志。您可以在所需的文件(例如“ tcpip.c”)中启用LOG。要打印IPv6地址,请在所需文件中使用LOG_INFO_6ADDR()和#define LOG_LEVEL LOG_LEVEL_INFO。