Debugging Macros
[Common Utility Headers - LUFA/Drivers/Common/Common.h]

Defines

#define JTAG_DEBUG_POINT()   asm volatile ("NOP" ::)
#define JTAG_DEBUG_BREAK()   asm volatile ("BREAK" ::)
#define JTAG_DEBUG_ASSERT(x)   MACROS{ if (!(x)) { JTAG_DEBUG_BREAK(); } }MACROE
#define SERIAL_STREAM_ASSERT(x)

Detailed Description

Macros for debugging use.


Define Documentation

#define JTAG_DEBUG_ASSERT (  )     MACROS{ if (!(x)) { JTAG_DEBUG_BREAK(); } }MACROE

Macro for testing condition "x" and breaking via JTAG_DEBUG_BREAK() if the condition is false.

 
#define JTAG_DEBUG_BREAK (  )     asm volatile ("BREAK" ::)

Defines an explicit JTAG break point in the resulting binary via the ASM BREAK statement. When a JTAG is used, this causes the program execution to halt when reached until manually resumed.

 
#define JTAG_DEBUG_POINT (  )     asm volatile ("NOP" ::)

Defines a volatile NOP statement which cannot be optimized out by the compiler, and thus can always be set as a breakpoint in the resulting code. Useful for debugging purposes, where the optimizer removes/reorders code to the point where break points cannot reliably be set.

#define SERIAL_STREAM_ASSERT (  ) 
Value:
MACROS{ if (!(x)) { printf_P(PSTR("%s: Function \"%s\", Line %d: "   \
                                                                "Assertion \"%s\" failed.\r\n"),   \
                                                                __FILE__, __func__, __LINE__, #x); \
                                            } }MACROE

Macro for testing condition "x" and writing debug data to the serial stream if false. As a prerequisite for this macro, the serial stream should be configured via the Peripheral/SerialStream driver.

The serial output takes the form "{FILENAME}: Function {FUNCTION NAME}, Line {LINE NUMBER}: Assertion {x} failed."

Generated by  doxygen 1.6.3