Catch missing CPU earlier.
[bertos.git] / drv / kdebug.c
index ee09a74732d5f7b30c5e73d3b3ef0595cdf8a843..27e365116552155a5a85789215fd0f4e4a621eb2 100755 (executable)
 
 /*#*
  *#* $Log$
+ *#* Revision 1.24  2005/04/12 01:36:37  bernie
+ *#* Add hack to enable TX line at module initialization.
+ *#*
+ *#* Revision 1.23  2005/04/11 19:10:27  bernie
+ *#* Include top-level headers from cfg/ subdir.
+ *#*
  *#* Revision 1.22  2005/02/18 11:18:33  bernie
  *#* Fixes for Harvard processors from project_ks.
  *#*
  *#* Rename UNUSED() to UNUSED_ARG().
  *#*/
 
-#include <debug.h>
-#include <cpu.h>
-#include <macros.h> /* for BV() */
-#include <config.h>
+#include <cfg/debug.h>
+#include <cfg/cpu.h>
+#include <cfg/macros.h> /* for BV() */
+#include <cfg/config.h>
 #include <hw.h>
 
 #include <mware/formatwr.h> /* for _formatted_write() */
                /*
                 * Support for special bus policies or external transceivers
                 * on UART0 (to be overridden in "hw.h").
+                *
+                * HACK: if we don't set TXEN, kdbg disables the transmitter
+                * after each output statement until the serial driver
+                * is initialized.  These glitches confuse the debug
+                * terminal that ends up printing some trash.
                 */
                #ifndef KDBG_UART0_BUS_INIT
-               #define KDBG_UART0_BUS_INIT  do {} while (0)
+               #define KDBG_UART0_BUS_INIT  do { \
+                               UCSR0B = BV(TXEN); \
+                       } while (0)
                #endif
                #ifndef KDBG_UART0_BUS_RX
                #define KDBG_UART0_BUS_RX    do {} while (0)
                /*
                 * Support for special bus policies or external transceivers
                 * on UART1 (to be overridden in "hw.h").
+                *
+                * HACK: if we don't set TXEN, kdbg disables the transmitter
+                * after each output statement until the serial driver
+                * is initialized.  These glitches confuse the debug
+                * terminal that ends up printing some trash.
                 */
                #ifndef KDBG_UART1_BUS_INIT
-               #define KDBG_UART1_BUS_INIT  do {} while (0)
+               #define KDBG_UART1_BUS_INIT  do { \
+                               UCSR1B = BV(TXEN); \
+                       } while (0)
                #endif
                #ifndef KDBG_UART1_BUS_RX
                #define KDBG_UART1_BUS_RX    do {} while (0)