使用DEBUG_ANNOTATE打印PRINT6ADDR

问题描述 投票:0回答:1

我正在与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
c debugging contiki
1个回答
0
投票

Sky mote由于内存有限,无法处理大量日志。您可以在所需的文件(例如“ tcpip.c”)中启用LOG。要打印IPv6地址,请在所需文件中使用LOG_INFO_6ADDR()和#define LOG_LEVEL LOG_LEVEL_INFO。

© www.soinside.com 2019 - 2024. All rights reserved.