關於移植過程中,存在大量LCD log(不定形參...)等除錯屬性函式巨集定義到printf
嵌入式開發過程中,遇到移植第三方協議棧,有時存在大量LCD log等除錯屬性函式。我們希望儲存原生的除錯輸出資訊,通過對LCDlog等除錯功能進行printf重新巨集定義。
在第三方程式存在大量的除錯屬性函式,如:
#define LCD_UsrLog(format, ...)
#define LCD_ErrLog(format, ...)
在沒有相應的LCD硬體支援,但我們希望儲存這些除錯輸出資訊,而不是重新去編寫除錯資訊。
此時,我們可以重新巨集定義到printf(format, ...),除錯輸出資訊列印到串列埠除錯軟體。
巨集定義如下:(##:但應用過程中不存在不定形參...時,消除“,”的錯誤)
#define LCD_UsrLog(format, ...) printf(format, ##__VA_ARGS__)
#define LCD_ErrLog(format, ...) printf("ERROR: "); printf(format, ##__VA_ARGS__)
實現除錯資訊列印到串列埠除錯軟體上。
附:
MDK hlep文件:
#define debug(format, ...) fprintf (stderr, format, __VA_ARGS__) void Variadic_Macros_0() { debug ("a test string is printed out along with %x %x %x\n", 12, 14, 20); }
#define MYSEG "YYY"
#define X(str)__no_alloc_str(str @ MYSEG)
extern void dbg_printf(unsigned long fmt, ...);
#define DBGPRINTF(fmt, ...)dbg_printf(X(fmt), __VA_ARGS__)
void
foo(int i, double d)
{
DBGPRINTF("The value of i is: %d, the value of d is: %f", i,d);
}