Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
printf_P(PSTR("%s: Function \"%s\", Line %d: " \
"Assertion \"%s\" failed.\r\n"), \
__FILE__, __func__, __LINE__, #Condition); } }MACROE
#if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
/** Reads a pointer out of PROGMEM space on the AVR8 architecture. This is currently a wrapper for the
printf_P(PSTR("%s: Function \"%s\", Line %d: " \
"Assertion \"%s\" failed.\r\n"), \
__FILE__, __func__, __LINE__, #Condition); } }MACROE
#if !defined(pgm_read_ptr) || defined(__DOXYGEN__)
/** Reads a pointer out of PROGMEM space on the AVR8 architecture. This is currently a wrapper for the
* to a pointer variable or used in pointer arithmetic without further casting in C. In a future
* avr-libc distribution this will be part of the standard API and will be implemented in a more formal
* manner.
* to a pointer variable or used in pointer arithmetic without further casting in C. In a future
* avr-libc distribution this will be part of the standard API and will be implemented in a more formal
* manner.
#define JTAG_DEBUG_POINT() __asm__ __volatile__ ("nop" ::)
#define JTAG_DEBUG_BREAK() __asm__ __volatile__ ("breakpoint" ::)
#define JTAG_ASSERT(Condition) MACROS{ if (!(Condition)) { JTAG_DEBUG_BREAK(); } }MACROE
#define JTAG_DEBUG_POINT() __asm__ __volatile__ ("nop" ::)
#define JTAG_DEBUG_BREAK() __asm__ __volatile__ ("breakpoint" ::)
#define JTAG_ASSERT(Condition) MACROS{ if (!(Condition)) { JTAG_DEBUG_BREAK(); } }MACROE
printf("%s: Function \"%s\", Line %d: " \
"Assertion \"%s\" failed.\r\n"), \
__FILE__, __func__, __LINE__, #Condition); } }MACROE
printf("%s: Function \"%s\", Line %d: " \
"Assertion \"%s\" failed.\r\n"), \
__FILE__, __func__, __LINE__, #Condition); } }MACROE