A pointer to devUsartAvr0 or devUsartAvr1 must be passed to NutRegisterDevice() to bind the corresponding device driver to the Nut/OS kernel.
NutRegisterDevice(&devUsartAvr0, 0, 0); fp = fopen("uart0", "r+"); fprintf("Hello world!\n");
The AVR USART devices make use of the hardware independant USART Device Driver