This is a surprisingly common question. When using WinAVR, how do you get printf() working on an Atmel Xmega processor? Hopefully this post will help explain how.
First of all, this documentation page has some good information regarding the different flavours of WinAVR printf:
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html
Note the existence of the printf_P() function, which makes it easy to work [...]