Add troubleshooting page to the build system section of the documentation.
[pub/USBasp.git] / LUFA / Common / ArchitectureSpecific.h
index f7dca66..d92cda9 100644 (file)
@@ -18,7 +18,7 @@
   advertising or publicity pertaining to distribution of the
   software without specific, written prior permission.
 
-  The author disclaim all warranties with regard to this
+  The author disclaims all warranties with regard to this
   software, including all implied warranties of merchantability
   and fitness.  In no event shall the author be liable for any
   special, indirect or consequential damages or any damages
                /* Macros: */
                        #if (ARCH == ARCH_AVR8) || (ARCH == ARCH_XMEGA) || defined(__DOXYGEN__)
                                #if (ARCH == ARCH_AVR8) || defined(__DOXYGEN__)
+                                       /** Re-enables the AVR's JTAG bus in software, until a system reset. This will re-enable JTAG debugging
+                                        *  interface after is has been disabled in software via \ref JTAG_DISABLE().
+                                        *
+                                        *  \note This macro is not available for all architectures.
+                                        */
+                                       #define JTAG_ENABLE()                  MACROS{                                      \
+                                                                                                                                       __asm__ __volatile__ (               \
+                                                                                                                                       "in __tmp_reg__,__SREG__" "\n\t"     \
+                                                                                                                                       "cli" "\n\t"                         \
+                                                                                                                                       "out %1, %0" "\n\t"                  \
+                                                                                                                                       "out __SREG__, __tmp_reg__" "\n\t"   \
+                                                                                                                                       "out %1, %0" "\n\t"                  \
+                                                                                                                                       :                                    \
+                                                                                                                                       : "r" (MCUCR & ~(1 << JTD)),         \
+                                                                                                                                         "M" (_SFR_IO_ADDR(MCUCR))          \
+                                                                                                                                       : "r0");                             \
+                                                                                                                       }MACROE
+
                                        /** Disables the AVR's JTAG bus in software, until a system reset. This will override the current JTAG
                                         *  status as set by the JTAGEN fuse, disabling JTAG debugging and reverting the JTAG pins back to GPIO
                                         *  mode.
@@ -79,7 +97,7 @@
                                                                                                                                        "out __SREG__, __tmp_reg__" "\n\t"   \
                                                                                                                                        "out %1, %0" "\n\t"                  \
                                                                                                                                        :                                    \
-                                                                                                                                       : "r" (1 << JTD),                    \
+                                                                                                                                       : "r" (MCUCR | (1 << JTD)),          \
                                                                                                                                          "M" (_SFR_IO_ADDR(MCUCR))          \
                                                                                                                                        : "r0");                             \
                                                                                                                        }MACROE