stdio für den UART
Dank der AVR Libc kann die stdio sehr einfach für Debugging genutzt werden. Um das ganze so transparent wie möglich zu gestalten, habe ich ein bisschen Quellcode für die Verwendung der UART im Atmel Mega8 geschrieben. Der Trick besteht in den Attributen der Initialisierungs-Routine. Diese wird in die Section .init8 gelegt und damit automatisch vor der main aufgerufen.
void console_init(void) __attribute__((naked)) __attribute__((section (".init8")));
|
Zur Initialisierung des UARTs sind zwei Defines notwendig. Mit #define F_CPU wird die Taktfrequenz des Controller in Hertz angegeben. Beispiel: #define F_CPU 16000000UL für eine Taktfrequenz von 16MHz. Mit #define BAUD wird dann die Baudrate gesetzt. Voreingestellt sind eine Taktfrequenz von 16MHz und eine Baudrate von 9600 Baud.
Makefile
console.c
main.c