X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Favr%2Fdrv%2Fkdebug_avr.c;h=81e78530b30ead1ed66f766447ef75d31959abf6;hb=e9e5371a9d12d313525fb8ce91886e79f9c7bba2;hp=11d983d0cba55a1d1ab89c1c20209e22be21fbae;hpb=0f2a55976024328d266b3349cc011ea02ce82c8c;p=bertos.git diff --git a/bertos/cpu/avr/drv/kdebug_avr.c b/bertos/cpu/avr/drv/kdebug_avr.c index 11d983d0..81e78530 100644 --- a/bertos/cpu/avr/drv/kdebug_avr.c +++ b/bertos/cpu/avr/drv/kdebug_avr.c @@ -33,13 +33,12 @@ * * \brief AVR debug support (implementation). * - * \version $Id$ * \author Bernie Innocenti * \author Stefano Fedrigo * \author Francesco Sacchi */ -#include "hw/hw_cpu.h" /* for CLOCK_FREQ */ +#include /* for CPU_FREQ */ #include "hw/hw_ser.h" /* Required for bus macros overrides */ #include "cfg/cfg_debug.h" @@ -73,7 +72,7 @@ #define KDBG_UART0_BUS_TX do {} while (0) #endif - #if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281 || CPU_AVR_ATMEGA168 + #if CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281 || CPU_AVR_ATMEGA168 || CPU_AVR_ATMEGA328P #define UCR UCSR0B #define UDR UDR0 #define USR UCSR0A @@ -171,7 +170,7 @@ #define KDBG_RESTORE_IRQ(old) do { IRQ_RESTORE((old)); } while(0) typedef cpu_flags_t kdbg_irqsave_t; - #define KDBG_DELAY (((CLOCK_FREQ + CONFIG_KDEBUG_BAUDRATE / 2) / CONFIG_KDEBUG_BAUDRATE) + 7) / 14 + #define KDBG_DELAY (((CPU_FREQ + CONFIG_KDEBUG_BAUDRATE / 2) / CONFIG_KDEBUG_BAUDRATE) + 7) / 14 static void _kdebug_bitbang_delay(void) { @@ -190,7 +189,7 @@ /** * Putchar for BITBANG serial debug console. * Sometimes, we can't permit to use a whole serial for debugging purpose. - * Since debug console is in output only it is usefull to use a single generic I/O pin for debug. + * Since debug console is in output only it is useful to use a single generic I/O pin for debug. * This is achieved by this simple function, that shift out the data like a UART, but * in software :) * The only requirement is that SER_BITBANG_* macros will be defined somewhere (usually hw_ser.h) @@ -230,7 +229,7 @@ INLINE void kdbg_hw_init(void) SER_BITBANG_INIT; #else /* CONFIG_KDEBUG_PORT != 666 */ /* Compute the baud rate */ - uint16_t period = DIV_ROUND(CLOCK_FREQ / 16UL, CONFIG_KDEBUG_BAUDRATE) - 1; + uint16_t period = DIV_ROUND(CPU_FREQ / 16UL, CONFIG_KDEBUG_BAUDRATE) - 1; #if (CPU_AVR_ATMEGA64 || CPU_AVR_ATMEGA128 || CPU_AVR_ATMEGA1281) #if CONFIG_KDEBUG_PORT == 0 @@ -245,17 +244,30 @@ INLINE void kdbg_hw_init(void) #error CONFIG_KDEBUG_PORT must be either 0 or 1 #endif - #elif CPU_AVR_ATMEGA168 - UBRR0H = (uint8_t)(period>>8); - UBRR0L = (uint8_t)period; - KDBG_UART0_BUS_INIT; + #elif CPU_AVR_ATMEGA168 || CPU_AVR_ATMEGA328P + #if CONFIG_KDEBUG_PORT == 0 + UBRR0H = (uint8_t)(period>>8); + UBRR0L = (uint8_t)period; + KDBG_UART0_BUS_INIT; + #else + #error Only CONFIG_KDEBUG_PORT 0 is supported for this cpu + #endif + #elif CPU_AVR_ATMEGA8 || CPU_AVR_ATMEGA32 - UBRRH = (uint8_t)(period>>8); - UBRRL = (uint8_t)period; - KDBG_UART0_BUS_INIT; + #if CONFIG_KDEBUG_PORT == 0 + UBRRH = (uint8_t)(period>>8); + UBRRL = (uint8_t)period; + KDBG_UART0_BUS_INIT; + #else + #error Only CONFIG_KDEBUG_PORT 0 is supported for this cpu + #endif #elif CPU_AVR_ATMEGA103 - UBRR = (uint8_t)period; - KDBG_UART0_BUS_INIT; + #if CONFIG_KDEBUG_PORT == 0 + UBRR = (uint8_t)period; + KDBG_UART0_BUS_INIT; + #else + #error Only CONFIG_KDEBUG_PORT 0 is supported for this cpu + #endif #else #error Unknown CPU #endif