Разбираюсь в чужом коде. Код написан красиво.
В критических секциях используется функции отладки типа:
Код
debug_mod1("\r\nNew Frame %LU %LU %U: PROT=%LX ", modem_next, modem_last, modem_overrun, frame->protocol);
debug_mod1("\r\nNO CARRIER HANGUP");
но по умолчанию отладка в некоторых файлах не используется, а описывается как
Код
#define debug_mod1
и при сборке компилятор вежливо предупреждает, что строка пропускается
Код
>>> Warning 207 "D:\Main_prj\stacktsk.c" Line 405(1,1): Code has no effect
Требуется эти строки отладки оживить, для это используется стандартная рабочая процедура типа
Код
fprintf(USER,"%U.%U.%U.%U",ip->v[0],ip->v[1],ip->v[2],ip->v[3]);
которя работает в цикле main() и отображет только маленькую часть служебной информации.
Как правильно связать эти фунции через #define ? там где используется передача нескольки параметров ?.
Мне удалось связать только часть отладочной информации типа:
Код
#define debug_stack(x) fprintf(USER, x);
но
Код
debug_stack(x)
содержит только текст без параметров
но есть в некоторых файлах вместе с списком параметров типа:
Код
debug_mod1("\r\nNew Frame %LU %LU %U: PROT=%LX ", modem_next, modem_last, modem_overrun, frame->protocol);
как такую функцию переопределить для fprintf() ?
Использую MPLAB CCS для PIC18
Не знаю стоит ли с параметрами залазить в
Код
#include <stdarg.h>
, может существует какоето более изящное рещение типа:
Код
#define debug_mod1(format, ...) fprintf (USER, format, ...);
???