I have:

 usart_open(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_BRGH_LOW &
              USART_CONT_RX & USART_EIGHT_BIT & USART_ASYNCH_MODE
              ,25);

But doesn't links.

I tried to see in the SDCC source files about anything that say me why isn't finding _usart_open in the libraries.

Making the project, returns:
...
"/usr/local/bin/sdcc"  --debug-ralloc -Wl-c -Wl-m --use-non-free --pstack-model=small -mpic16 -p18f24k22 build/default/production/main.o build/default/production/board.o build/default/production/globalvars.o build/default/production/isr.o  -odist/default/production/impc2-sdcc.X.production.cof 
message: using default linker script "/usr/local/share/gputils/lkr/18f24k22.lkr"
error: missing definition for symbol "_usart_open", required by "build/default/production/main.o"
make[2]: ** [dist/default/production/impc2-sdcc.X.production.hex] Erro 1
make[2]: Saindo do diretório `/home/sysop/games/impc2/impc2-sdcc.X'
make[1]: ** [.build-conf] Erro 2
make[1]: Saindo do diretório `/home/sysop/games/impc2/impc2-sdcc.X'
make: ** [.build-impl] Erro 2
...

I can edit usart.h and uopen.c adn others if necessary, and recompile SDCC.


About how to use the second USART, I'm thinking use PUTCHAR  as a user defined stream.

Regards,

Antonio Augusto Todo Bom Neto
Boole Embedded