- /* External 485 transceiver on UART0 (to be overridden in "hw.h"). */
- #if !defined(SER_UART0_485_INIT)
- #if defined(SER_UART0_485_RX) || defined(SER_UART0_485_TX)
- #error SER_UART0_485_INIT, SER_UART0_485_RX and SER_UART0_485_TX must be defined together
- #endif
- #define SER_UART0_485_INIT do {} while (0)
- #define SER_UART0_485_TX do {} while (0)
- #define SER_UART0_485_RX do {} while (0)
- #elif !defined(SER_UART0_485_RX) || !defined(SER_UART0_485_TX)
- #error SER_UART0_485_INIT, SER_UART0_485_RX and SER_UART0_485_TX must be defined together
+ /*
+ * 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 { \
+ UCSR0B = BV(TXEN); \
+ } while (0)
+ #endif
+ #ifndef KDBG_UART0_BUS_RX
+ #define KDBG_UART0_BUS_RX do {} while (0)
+ #endif
+ #ifndef KDBG_UART0_BUS_TX
+ #define KDBG_UART0_BUS_TX do {} while (0)