#include #ifndef NDEBUG #define ITMSTDERR (0) #define ITMSIGNAL (1) #define ITMCMDRSP (2) #define ITMCHANNELS (3) #define dbgPrint(fmt, ...) fprintf(stderr, "%s: " fmt, GetLogStamp(), ##__VA_ARGS__); #define dbgPrintAppend(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__); #define itmPrint(__channel, fmt, ...) fprintf(g_itm[__channel], "%s: " fmt, GetLogStamp(), ##__VA_ARGS__); #define itmPrintAppend(__channel, fmt, ...) fprintf(g_itm[__channel], fmt, ##__VA_ARGS__); #else #define dbgPrint(fmt, ...) ((void)0) #define dbgPrintAppend(fmt, ...) ((void)0) #endif #define logError(fmt, ...) dbgPrint("[ERROR] %s (%s@%u) - " fmt, __func__, __FILE__, __LINE__, ##__VA_ARGS__); #define logWarning(fmt, ...) dbgPrint("[WARNING] %s (%s@%u) - " fmt, __func__, __FILE__, __LINE__, ##__VA_ARGS__); #define logInfo(fmt, ...) dbgPrint("[Info] %s (%s@%u) - " fmt, __func__, __FILE__, __LINE__, ##__VA_ARGS__); extern char logStampStr[40]; extern void* g_itm[ITMCHANNELS]; #define ITMFILENO (4) #define ITMCHANNELNO (32) void ITM_Out(uint32_t port, uint8_t ch); char* GetLogStamp(void); int BlueButtonTransitionDetected(void); void SetDutyCycleIndicator(bool on); void KillUSBLink(void); void SetRealTimeClock(time_t tm); void ReadMcuInfo(unsigned char* serial, uint16_t *flashSize, uint16_t *mcuType, uint16_t *mcuRev); void PerformSystemReset(void); void InitializeITM();